template<typename T> using L = T(*)(T); 中的 (*) 是什么意思?
What is the meaning of (*) in template<typename T> using L = T(*)(T);?
我一直在使用这段代码进行一些测试,我明白它的作用,但我突然想到,我不知道 (*)
在这种情况下应该做什么...
template<typename T>
using L = T(*)(T);
我试过删除它,没有它代码运行得很好。我认为这可能与指针有关,但我不确定。我使用代码段来定义传递的 lambda 函数的参数和 return 值
是的,它是一个指针类型。 T(*)(T)
是指向函数 T(T)
的指针,它接受 T
和 returns T
.
没有它,即T(T)
是函数类型。你说它也有效,因为在很多情况下它可以 decay 指向指向函数的指针 T(*)(T)
。例如定义函数参数类型为T(T)
,则调整为T(*)(T)
.
An lvalue of function type T can be implicitly converted to a prvalue pointer to that function.
我一直在使用这段代码进行一些测试,我明白它的作用,但我突然想到,我不知道 (*)
在这种情况下应该做什么...
template<typename T>
using L = T(*)(T);
我试过删除它,没有它代码运行得很好。我认为这可能与指针有关,但我不确定。我使用代码段来定义传递的 lambda 函数的参数和 return 值
是的,它是一个指针类型。 T(*)(T)
是指向函数 T(T)
的指针,它接受 T
和 returns T
.
没有它,即T(T)
是函数类型。你说它也有效,因为在很多情况下它可以 decay 指向指向函数的指针 T(*)(T)
。例如定义函数参数类型为T(T)
,则调整为T(*)(T)
.
An lvalue of function type T can be implicitly converted to a prvalue pointer to that function.