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

Can I use decltype without any instance variables?

本文关键字:情况下 decltype 变量 任何 实例 我可以      更新时间:2023-10-16

我从一个具有宏输出类型的库中使用了一个函数:

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

我想定义一个变量,该变量将接受此返回值,而无需先声明Type1Type2

我希望这样的事情会起作用:

decltype(the_function(Type1, Type2)) return_value;

但它不起作用。我可以在不弄清楚宏的计算结果并且不先声明几个变量的情况下执行此操作吗?

这正是

std::declval的用途:

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