【发布时间】:2014-02-05 11:46:09
【问题描述】:
有时,代码中会出现复杂的表达式。例如,大量使用 Boost 库会吸引这些表达式。如果我想typedef这些表达式的类型,我需要写出它的类型。有没有办法在编译时(edit: 或运行时)知道这种类型?也许,Boost 提供了适当的功能。我想用它喜欢
#pragma message (...expression...)
编辑:如果编译时类型检测存在问题,那么运行时类型检测也适用。例如,像下面这样的函数将适合
template <typename T> std::string detectExpressionType(T t);
【问题讨论】:
-
c++11 添加了 decltype 关键字,但是当您标记问题 c++03...
-
请大家不要再提
decltype()了。该问题被标记为 C++03,所以问题实际上是:我没有 C++11 decltype,sp 如何在编译时检测表达式的类型? -
@Manu343726
decltype至少是一个有用的搜索词,可用于查找 C++11 之前的非标准关键字和类似的笨拙技术,这些技术促成了decltype的标准化。