C++17模板的新用法,完全看不懂,请大佬帮忙讲解一下
namespace Ubpa::USRefl {//
// attribute for field, class, enum
//
// T value (T == void -> no value)
template<typename Name, typename T>
struct Attr;
template<typename Name>
Attr(Name)->Attr<Name, void>;
template<typename Name, typename Value>
Attr(Name, Value)->Attr<Name, Value>;
}
一开始的嵌套命名空间勉强看的懂,下面那个模板结构Attr和下面的两个似乎是构造函数一样的东西就完全看不懂了- -。
求助! 这个是用户定义的推导指引( Deduction guides ),用来指导(自定义)类的模板参数推导(选择)。
相信您可以找到对应资料,相关内容在标准中包括 和 等。 dolly_yos2 发表于 2022-8-6 15:16
这个是用户定义的推导指引( Deduction guides ),用来指导(自定义)类的模板参数推导(选择)。
相信您 ...
可以仔细说一下,这个struct Attr;这种没有内容的结构体是用来做什么的么,我搜了一下还是没看明白。非常感谢 vigilDawn 发表于 2022-8-6 16:12
可以仔细说一下,这个struct Attr;这种没有内容的结构体是用来做什么的么,我搜了一下还是没看明白。非常 ...
抱歉那一部分我没看懂意图,去搜索了一下这个库也没找到相关的内容……等等看有没有大佬懂吧 本帖最后由 傻眼貓咪 于 2022-8-7 14:18 编辑
. 没有内容说明这只是个前置声明,其它地方应该有完整定义,可以找找看。
后面那个用户定义的推导指引,可参考:https://zhuanlan.zhihu.com/p/252392895
https://zh.cppreference.com/w/cpp/language/class_template_argument_deduction
页:
[1]