摘要:
原文 进一步化简: alias VErr = char*; ref front_r(ref VErr r) { return r; } ref front_p(VErr* p) { return *p; } ref front_s(VErr[] s) { return s[0]; } VErr g; 阅读全文
posted @ 2023-02-09 09:34
zjh6
阅读(15)
评论(0)
推荐(0)
摘要:
原文 即,抱怨的是构建和测试的顺序. 有个测试包来测试编译器.数百个此测试.每个测试都是独立的,只有几行长.也即,已化简和隔离了它们.(大多数来源是已修复的漏洞.),当某个测试失败时,一般可直接找到问题. 但测试包的运行方式是: 1.构建编译器 2.用它编译druntime,砰,编译器崩溃了,现在你 阅读全文
posted @ 2023-02-07 11:20
zjh6
阅读(24)
评论(0)
推荐(0)
摘要:
原文 import std.meta : AliasSeq; //`"args"`的前半部分是"第一个参数",后半是第2个 // 可生成多组. template staticMap2(alias fun, args...) { alias firsts = args[0 .. $ / 2]; ali 阅读全文
posted @ 2023-02-07 10:53
zjh6
阅读(18)
评论(0)
推荐(0)
摘要:
原文 别名参数的约束检查是否编译时,它实例化函数字面模板.这会触发用户函数字面中的在IFTI实例化它之前无法检测到的潜在错误. 这些错误随后会导致约束失败,因为不能编译字面.约束随后会从要用的候选列表中删除匹配模板. void f(alias a)() if (is(typeof(a()))) {} 阅读全文
posted @ 2023-02-04 11:08
zjh6
阅读(17)
评论(0)
推荐(0)
摘要:
原文 const std::vector<int> v1{1, 2, 5, 5, 5, 9}; const std::vector<int> v2{2, 5, 7}; std::vector<int> diff; std::set_difference(v1.begin(), v1.end(), v 阅读全文
posted @ 2023-02-04 10:22
zjh6
阅读(31)
评论(0)
推荐(0)
摘要:
这里为用法 主要原因是,C++的函数模板功能不够强大,不能单独使用函数模板名,那么就只有借助C++的静态构函数模板来增强它!如: 构 XX基{ 元<类 T>静 空 合并(向量<串>&一,串&名){ T::合并(一,名); } }; 这里,就可以用XX基的子类作为模板参数来提高抽象层级! 要求必须是静 阅读全文
posted @ 2023-02-03 22:20
zjh6
阅读(17)
评论(0)
推荐(0)
摘要:
构 A{ 元<类 T>静 空 g(串&a){ T::h(a);打印(a,"a"); } }; 构 B:公 A{ 静 空 h(串&a){ 打印(a,"b"); } }; 空 主(){ 向量<串> a{"啊","呼","呀"}; 批向量3<&B::g<B>>(3,a);//必须要有啊. //B::g<B 阅读全文
posted @ 2023-02-03 21:12
zjh6
阅读(12)
评论(0)
推荐(0)
摘要:
原文 对: byte[3][3] myArr; 可: myArr[0] = 5; 并有了: 5,5,5 0,0,0 0,0,0 可类似赋值列吗?myArr[][0] = 5没用. 所有的东西,都在内存中且是并排的,示例(类似数组)涵盖了该问题: import std.stdio; void main 阅读全文
posted @ 2023-02-02 09:50
zjh6
阅读(18)
评论(0)
推荐(0)
浙公网安备 33010602011771号