我正在使用一个库中的函数,该函数具有宏输出类型:
STRANGE_MACRO(something) the_function(Type1 t, Type2 u);
我想定义一个变量,它将采用此返回值,而无需先声明 Type1
或 Type2
。
我希望这样的事情能奏效:
decltype(the_function(Type1, Type2)) return_value;
但它不起作用。我可以在不弄清楚宏的计算结果并且不先声明几个变量的情况下执行此操作吗?
最佳答案
这正是std::declval
用于:
decltype(the_function(std::declval<Type1>(), std::declval<Type2>())) return_value;
关于c++ - 我可以在没有任何实例变量的情况下使用 decltype 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44187711/