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

Can I use decltype without any instance variables?

我正在使用一个库中的函数,该函数具有宏输出类型:

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

我想定义一个变量,它将采用此 return 值,而无需先声明 Type1Type2

我希望这样的事情能奏效:

decltype(the_function(Type1, Type2)) return_value;

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

这正是 std::declval 的用途:

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