如何从未知类型的变量访问嵌套类型

How to access a nested type from a variable of unknown type?

本文关键字:变量 访问 嵌套类型 类型 未知      更新时间:2023-10-16

如何获取未知类型变量的类的成员类型?应该用什么代替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。

根据我自己的经验,你的代码中"自动"越多,它的可读性就越差。