我可以使用没有任何实例变量的decltype吗?

时间:2017-05-25 18:43:07

标签: c++ decltype

我正在使用具有宏观输出类型的库的函数:

STRANGE_MACRO(something) the_function(Type1 t, Type2 u);

我想定义一个变量来获取此返回值,而不先声明Type1Type2

我希望这样的东西能起作用:

decltype(the_function(Type1, Type2)) return_value;

但它不起作用。我可以在不知道宏评估的内容而不首先声明几个变量的情况下这样做吗?

1 个答案:

答案 0 :(得分:9)

这正是std::declval的用途:

decltype(the_function(std::declval<Type1>(), std::declval<Type2>())) return_value;