react 前端框架如何驱动企业数字化转型与创新发展
607
2022-11-16
d匹配模板类型结构实例
原文
import core.stdc.stdio;Test!(T, "mode1") make_test(T)(T data) { Test!(T, "mode1") t = { data }; return t;}struct Test(T, string mode = "ref") { T data; }extern (C) void main() { auto obj = make_test(20); static if (is(typeof(obj) == Test)) { printf("YES!!!!!!!\n"); }}
我可以:
static if (is(typeof(obj) == Test!(int, "mode1"))) { printf("YES!!!!!!!\n"); }
这样:
static if (is(typeof(obj) == Test!T, T)) { printf("YES!!!!!!!\n"); }//超过1个模板参数,要求括号
多参,这样:
static if (is(typeof(obj) == Test!Args, Args...))
还可这样:
import std.traits;static if (isInstanceOf!(Test, typeof(obj))) { printf("YES!!!!!!!\n"); }//这样.
现在,可简化日志为:
struct LOG(T...) { T[0] id; T[1] data;}void main(){ auto obj = //make_test(20);/* make_test('T');//*/ alias typ = //typeof(obj);/* LOG!(int, char);//*/ "Type: ".write; if(isInstanceOf!(LOG, typ)/* is(typ : Template!Args, alias Template, Args...)//*/ ) "LOG".writeln;}
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~