如果我有一个包含未知类容器的迭代器,我是否可以通过以下方式声明一个未知类型的变量:
*Iterator unknown_type_var;unknown_type有默认的ctor,所以这不是问题所在。但是像这样的方法确实存在吗?或者有没有其他方法来声明一个类型的变量,我有一个容器的迭代器,它保存了这个类型。
发布于 2016-02-03 03:10:23
如果它是一个符合标准的容器,那么它有一个名为value_type的嵌套类型定义函数,该类型定义给出了所包含的值的类型。该类型定义也可以通过iterator_traits:std::iterator_traits<iterator_type>::value_type获得。迭代器类型可以作为容器中的嵌套类型使用。
发布于 2016-02-03 03:13:06
如果你没有可用的value_type,并且你不能使用auto,因为你没有立即赋值(试着找到一种方法),那么你可以使用decltype:
decltype(*declval<Iterator>()) unknown_type_var;https://stackoverflow.com/questions/35161871
复制相似问题