我猜是这样的:
template <class T>
void print_type() {
using F = reflexpr(print_type<T>);
std::cout << get_display_name_v<F> << std::endl;
}
你必须这样
reflexpr
一件特别的事情,没有办法得到“这个函数我发现我自己在”-所以这就是
print_type<T>
. 文档只是说这是实现定义的。
如果你想把这些都写出来,你可以:
template <class T>
void print_type() {
std::cout << "void "
<< get_name_v<reflexpr(print_type<T>)> // guaranteed "print_type"
<< "() [with T = "
<< get_display_name_v<reflexpr(T)>
<< "]" << std::endl;
}
我不清楚是什么
get_name_v<reflexpr(const volatile int&)>
实际上是的。好像是空的-
T
简单类型说明符
get_display_name_v
.
反身
提供一个类型,您必须在其中执行基于类型的元编程。语言本身最终可能采用的方法是
-基于反射-即
反身
constexpr!
支持
constexpr