如何解决使用L = T*T;在template <typename T>中的*是什么意思?
我一直在使用此代码段进行一些测试,我了解它的作用,但是它只是发生在我的头上,我不知道在这种情况下(*)
应该做什么……
template<typename T>
using L = T(*)(T);
我尝试将其删除,如果没有它,代码可以正常运行。我认为这可能与指针有关,但我不确定。我使用代码段定义了传递的lambda函数的参数和返回值
解决方法
是的,它是指针类型。 T(*)(T)
是指向函数T(T)
的指针,该函数接受T
并返回T
。
没有它,即T(T)
是一种函数类型。您说它也是有效的,因为在许多情况下它可以decay指向功能为T(*)(T)
的指针。例如,如果您将T(T)
定义为函数参数类型,则将其调整为T(*)(T)
。
函数类型T的lvalue可以隐式转换为prvalue pointer to that function。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。