【发布时间】:2018-09-11 23:27:09
【问题描述】:
我有一个未知键和值类型的映射,我想在事先不知道键类型的情况下确定值类型的typeid(...).name():
std::map<K, V> aMap;
// This gives me the typeid(...).name(), but requires knowing the key type
typeid(aMap[0]).name();
有没有什么方法可以在不知道K 是什么类型的情况下获得V 的typeid(...).name()?
需要注意的是,我仅限于C++03;但是,如果有办法在 C++11 或更高版本中执行此操作,那么知道会很酷。
【问题讨论】:
-
decltype(aMap)::mapped_type? -
@basil XY-问题?更好地描述您想要实现的目标,而不是如何实现目标?
-
@Justin 我正在寻找 V 的类型名称作为字符串,即 typeid(...).name(),但我不知道 K 是什么类型。
-
@basil:再次:
typeid(decltype(aMap)::mapped_type).name() -
@NeilButterworth:在我看来,这取决于你在写什么类型的东西。在调试器中依赖它(或类似的东西)似乎完全合理(但我当然同意这是仅有的少数个很好的例子之一)。
标签: c++ dictionary reflection stdmap c++03