如何从未知类型的变量访问嵌套类型
How to access a nested type from a variable of unknown type?
如何获取未知类型变量的类的成员类型?应该用什么代替type_of
.
auto v = get_container();
type_of(v)::value_type x;
出于可维护性的原因,我想使用auto
,这样,如果get_container
的返回类型改变了,什么也不会破坏
我知道你们正在寻找:
decltype(v)::value_type x;
decltype
是c++ 11中一个非常强大的工具。
如果你想让你的代码更容易维护,我不同意同时使用auto和decltype。如果您希望坚持编译时方法绑定,并避免由于代码的时间关键部分而使用虚方法和接口,我更倾向于使用具有描述性名称的类型定义,说明该容器应该用于什么,并使用定义的类型。如果以后发生更改,您只需要更改typedef。
根据我自己的经验,你的代码中"自动"越多,它的可读性就越差。
相关文章:
- 从不同C++类的成员变量访问成员函数
- 在主函数中C++私有变量访问
- 互锁变量访问(在布尔值上)和 std::atomic_flag 之间的区别
- C++中的变量访问内联函数
- 无法使用子类变量访问超类公共成员
- 优化成员变量访问
- Ifstream:打开可使用变量访问的文件
- 使用'this->'成员变量访问的性能
- 从成员变量访问静态 constexpr 成员,GCC 错误?
- TLS变量访问的结果未缓存
- 通过const成员变量访问内联函数
- 获取通过环境变量访问的文件的位置
- 静态变量访问
- 从函数变量访问结构变量的成员
- 从另一个变量访问变量
- 使用变量访问结构中的任何数据
- 如何使用另一个变量访问对象的变量/方法
- 使用用户变量访问结构的成员?C++
- 我需要通过基类静态变量访问派生类成员
- 如何将一个文件中存在的全局常量变量访问到另一个文件