12 2021 档案
摘要:C++的逗号表达式,在...编程中,可能需要表达式,此时可借助逗号表达式,即下面编译不过. 元<整 F,整...I>整 最大项(){ 整 i=F;(i=最大(i,I),...);中 i; } 加上括号,构成逗号表达式,就编译过了. 元<整 F,整...I>整 最大项(){ 整 i=F;((i=最大(
阅读全文
摘要:js清单: },{ "matches": ["https://*.zhongguowangshi.com/*","https://*.xinhuaxmt.com/*"], "js": ["cy.js","xhs.js"] } 同一个网站,居然两个域名.
阅读全文
摘要:点一个不行时,点两个: function ff(){ ysa(".content-more-btn .m-icon"); } setTimeout("ff()",1000);
阅读全文
摘要:原文 代码: struct Foo{ bool opCast(T : bool)()const{ assert(0); } ~this(){} } struct Bar{ const Foo foo; } void main(){ } 错误,opCast!(Foo)模板实例不匹配opCast(T :
阅读全文
摘要:必须设定函数为静,所有参数为共享.不允许tls. import std.concurrency; import core.thread; import std.stdio:writeln; void main() { Test.getInstance.run; } class Test { priv
阅读全文
摘要:如(总大小(小)>8)中 假; 如(均大小<4,2>(小))中 假;//汉字1个算2 中 真; 我代码是对了的,可是就是反反复复生不成正确结果. 对,说的就是微软的Cl编译器.
阅读全文
摘要:enum instantiate(string type, string expr) = type ~ "(" ~ expr ~ ")"; pragma(msg, instantiate!("RVector!(SEXPTYPE.REALSXP)", "x"));
阅读全文
摘要:原文 该问题的修复避免了通过返回值转义,但有个已知限制:即使不能通过参数/或返回值转义,仍可放纯函数参数进异常并抛出: void f_throw(string x) @safe pure { throw new Exception(x);//参数进异常,逃逸. } void escape_throw
阅读全文
摘要:原文 Mike Parker: 除非C11改变了嵌套初化规则,应可编译.可显式嵌套: stb_easy_font_color c = { {255,255,255,255} }; 如未提交相应问题,请报告. "标签"是跟在构或联关键字后名: struct Foo {}; 这里,Foo是标签.必须按s
阅读全文
摘要:原文 import std; void main() { static foreach(Foo; ["Abc", "def"]) {{ string str = Foo; writeln("Hello D ", str, __VERSION__); }} } //输出 Hello D Abc2098
阅读全文
摘要:name "dj" description "no" authors "Ste" license "mit" buildType "release" targetType "library" sourcePaths "dcollections" dub.sdl瞬间编译好了.
阅读全文
摘要:import std.stdio; //this print args in reverse order: void print(T...)(string prompt, T args) { void print_arg(size_t index){ switch(index){ static fo
阅读全文
摘要:原文 -vasm选项,给dmd加了个为每个函数显示生成汇编代码的基于数字火星反汇编程序的内置反汇编器. 为什么? Godbolt要你准备小示例代码来上传.很麻烦. obj2asm工作,但打印出了目标文件中所有内容,信息太多.工作量很大. 让用户很易查看函数生成代码,鼓励它熟悉自己构造了啥代码.使用户
阅读全文
摘要:vim利用临时寄存器搞事情. @a/@b/...等操作都是临时操作. fun! LJdx() "前面1个L表示临时用的函数 map <silent> ddd :call F(参数等)<CR> let @a='\y3f|ddd' let @b='\y2f|ddd' let @c='\yddd' end
阅读全文
摘要::noremap . @ :noremap @ . "交换.号与@,因为@号不好按 利用.号来表示@,更强大,用..表示复制. 然后.+几十个寄存器随便用. 比如,我们可以在1个函数中定义: fun! Jdx() "化简命令,简单些命令,执行后,直接输入@a或@b来执行命令. let @a='\y3
阅读全文
摘要:import core.stdc.stdio: putc, stdout; void print(T...)(string prompt, T args) { foreach (a; args) { alias A = typeof(a); static if (is(A : string)) {
阅读全文
摘要:#include <常用> 枚 a{啊,哈,呀}; 用 量=向量<整>; 元<整 I>要求(I==啊) 空 f(量&i){打印("f1");打印(i);} 元<整 I>要求(I==哈) 空 f(量&i,无序集<整>&a){打印("f2");转集(i,a);} 元<整 I>要求(I==呀) 空 f(量
阅读全文
摘要:元<极 B,整 K>常式 动 双交换(){ 如 常式(B){//满足条件 中 双{序列<K>(),序列<>()}; }异{ 中 双{序列<>(),序列<K>()}; } } 元<极 B,整 K,整...I,整...J> 常式 动 双交换(双<序列<I...>,序列<J...>>&t){ 如 常式(B
阅读全文
摘要:import addle; import std.range; // 从另一模块导入构 import mylib: MyStruct; // 定义区间原语 bool empty(MyStruct a) { return false; } string front(MyStruct a) { retu
阅读全文
摘要:元<元<整>类 G>构 分序列{//类版本,不搞那么难. 元<整 M,整 F,整...I>静 常式 动 动作(){ //返回两个,都是位置. 常式 整 N=型长...(I);常式 整 K=M-N-1; 如 常式(G<F>::动作()){//满足条件 如 常式(!N)//0个,最后1个. 中 双{序列
阅读全文
摘要:#include "分序列.cpp" 枚 a{啊,哈,呀}; 元<整...I,整...J> 空 g0(序列<I...>a,序列<J...>b){ 打印序列(a);打印(" ");打印序列(b); }//不用常,就要复制.否则,就是用常来打印,太恶心. 元<整 J>常式 整 是啊(){中(J==啊);
阅读全文
摘要:#include <常用> 枚 a{啊,哈,呀}; 元<整 I>要求 (I==啊) 空 f(整 i){ 打印(i); } 元<整 I>要求 (I==哈) 空 f(整 i){ 打印(i*2); } 元<整 I>要求 (I==呀) 空 f(整 i){ 打印(i*3); } 元<整...J> 空 g(整
阅读全文
摘要:打印("三配置:当前目录/标记/文件类型"); 向量<串>b{"当前目录.txt","标记.txt","文件类型.txt"};//想办法把配置搞好. 看见这样的代码怕不怕,你必须要有3个文件,太吓人了. 所以必须想办法搞成一个文件.用单个文件来配置多个文件.
阅读全文
摘要:1,无序集写成无序映了, 2,可恶的常,每次都要写两遍,恶心得很: 空 切换(串&b){最后();初化(b);} 空 切换(常 串&b){串 c=b;切换(b);} //又来了.写两遍,太恶心了. 3,找不到符号,把函数放在后面,这是C++特色. 4,找不到初化(),加一个: 虚 空 初化(){}/
阅读全文
摘要:对(串 行:t){冲+=行+"\n";}出<<冲; 为啥这里不能加引号&行,为啥呢?
阅读全文
摘要:有点类似函数的概念,要求有几个函数,但这里是继承的,不是只需要满足几个函数: 类 处理目录:公 当目文{ 公: 空 处理(){//继承它的提供. 初化();整 j=们.大小(); 对(整 i=0;i<j;i++){ 单处理(们[i]); } 后处理(); } 虚 空 初化(){}//改为{} 虚 空
阅读全文
摘要:原文 不变类,并不一定保存在只读区. 析构器,只是对象终止时,调用的一片代码,析构器不应访问对象成员. struct S { ~this() { import std.stdio; writeln("done"); } } void main() { immutable a = S(); auto
阅读全文
摘要:enum is_same(alias value, T) = is(typeof(value) == T);
阅读全文
摘要:注意了,不要随意升级浏览器,因为清单3版,可能都过滤不了广告了,毕竟chrome是广告公司. 这里
阅读全文
摘要:写完程序,一般都要测试,这时,不要用太多文件来测试,刚写完程序,有很多漏洞,因此,要反复测试. 可以先从正式要测试文件中复制几个来测试,测试前,一定要记得压缩一下,这样,测试过程中出错,直接解压下,就可以再测试了. 这样,就避免了正式处理大量文件时,遇到的各种问题,每处理大量文件,就要消耗很久时间,
阅读全文
摘要:符 c{'\''},e{'\"'}; 串 单前=超.前串(c),双前=超.前串(e); 串 网=加一网站(),单后=超.后串(c,网),双后=超.后串(e,网); 压多(替,单前,单后,双前,双后); 打印(替); 如题,静串,主要就是只赋值1次,因而,可以先保存在向量中,借向量来处理它,这样,就好
阅读全文
摘要:空 替换(串&a,串&b){ ::替换(冲,a,b);大小=冲.大小(); }//可以多次替换,再保存 加个::,就可以了.
阅读全文
摘要:参考地址 试了几次不成功. 后来终于成功了,要点是yes/1/1,然后去掉disable. 当然电子邮件地址要填写正确. 如果,你不愿意试试,直接这里
阅读全文
摘要:原文 Jan:在D中有个extern(C++)类: extern(C++) class A { ~this(); // ... } 及一个带const引用A的函数: void CppFunc(const A& arg); 我该如何在D中绑定它? extern(C++) void CppFunc(A
阅读全文
摘要:如下代码: import std.stdio:writeln; struct S{ @disable this(); ~this(){ writeln("dtor!"); } } void main(){ S s = void; } RazvanN: 过去出现过,人们同意,如果用void初化,则由你
阅读全文
摘要:原文 Steven Schveighoffer: 提问者想:给定从限定值隐式转换为非限定值的值类型,生成仅接受非限定值函数. 可这样包装: void foo2(T)(T v) if (!is(Unqual!T == T)) { foo(Unqual!T(t)); } 如果直接调用则会内联. 但D目前
阅读全文
摘要:原文 rumbu:想理解编译器行为: struct SimpleStruct { int x;} struct ComplexStruct { int[] x; } void main() { SimpleStruct[] buf1; immutable(SimpleStruct)[] ibuf1;
阅读全文
摘要:原文 vit:为什么这段代码无法编译? struct Foo(T){ this(Rhs, this This)(scope Rhs rhs){ } this(ref scope typeof(this) rhs){ } } struct Bar{ Foo!int foo; } void main()
阅读全文
摘要:void main() { import std.stdio: write, writeln, writef, writefln; class A { int i = 2; } class B : A { int j= 3; } void incr(ref A a) { writeln(a.i);
阅读全文
摘要:目前有几个坑: 1,可能有文件不存在的问题,加上防护: 如(!存在(d)){打印("不存在",d);中;} 2,可能会有不知道的怪问题: 试{g=p.路径();h=g.串();}抓(...){下;} 用异常来处理它. 3,可能有文件路径太深的问题,这里我直接删掉目录了,未写进代码: 4,文件名可能无
阅读全文
摘要:有时,居然删不了文件,说什么拒绝访问. 这个时候,可以用del /f来强制删文件. 删了2G垃圾,还是值得的.
阅读全文
摘要:#include <常用> #include "路径.cpp" 空 f(串&d){ 打印("哈哈",d); 如(!存在(d))打印("不存在"); 试{ 动 t=递归目录步(d); }抓(异常&e){打印(e.什么());} 打印("这里",d); } 空 主(){ 串 a{"e:\\桌面下载\\"
阅读全文
摘要:#include <常用> #include "路径.cpp" 空 f(串&d){ 动 t=递归目录步(d); 打印("这里",d); } 空 主(){ 串 a{"e:\\桌面下载"},b{"d:\\"}; f(a); 打印("啊"); f(b); }
阅读全文
摘要://main.d : extern(C++) class A{} extern(C++) void 中间(A arg); void main(){ A a = new A(); 中间(a); } //cppShim.cpp : class A{}; extern void cppFunc(A con
阅读全文
摘要:Nullable!string str(T)(T setter) if (is(T == string) || is(T == Nullable!string)) { return this._str = setter; }
阅读全文
摘要:fun!Ybd(a,c) "映标点,映射标点.前面为(`按键 函数`,标点) let[a,b]=split(a:a) "用空格分隔 let c=a:c let k=string(c) let m='vnoremap <silent>'.a.c.' :call Gbbd("'.b.'",'.k.')<
阅读全文
摘要:fun! Qkst() "取可视(同)内容.先要选中.同一行行内内容. "可以再写一个可视不同行块内容.主要就是后面+之间行+前面.而行内,则之差. let [c,d]=getpos("'<")[1:2] let [e,f]=getpos("'>")[1:2] "如果跨行呢?,现在不考虑 call
阅读全文
摘要:string stripsemicolons(string s) { string result; // prevent reallocations result.length = s.length; result.length = 0; //append to string only when n
阅读全文
摘要:原文 什么是"存储类"? 声明变量时说明存储内存的属性.在C中,可能是register或volatile.D中,可能是表示存储在数据节而不是(默认)的线本存储全局变量的__gshared. 为什么ref也是存储类? 它是(声明变量)参数表明未存储在该函数帧中而是存储在更高地方的属性. 为什么隐藏指针
阅读全文
摘要:char all[] = "all"; char *argv_def[] = { all }; if (argc == 0) { argc = 1; argv = argv_def; } //上面是C代码,下面是betterC代码 const(char)* all = "all"; const(ch
阅读全文
摘要:原文 B.J: 它是CPU模拟器,函数需要操作半个寄存器(CPU有16位AF寄存器,但我想操作A).我已按一对属性函数实现寄存器的"A"部分: @property ubyte a() const { return getHigh!af; } @property ubyte a(ubyte val)
阅读全文
摘要:import std.stdio, std.traits, core.lifetime; auto partiallyApply(alias fun,C...)(C context){ return &new class(move(context)){ C context; this(C conte
阅读全文
摘要:原文 问题是当前由胶合层检查-betterC,跳过(通常是根模块外声明,无-i的)未生成代码声明. @betterC不是语言/编译器功能,而是用户注解. //a0.d //用auto而不是int[]来在函数体中强制语义 auto foo(int i) { return [i]; } //动与整[]有
阅读全文
摘要:import std.stdio : writeln; import std.algorithm : joiner; import std.array : split; bool isWhite(dchar c) @safe pure nothrow @nogc { return c == ' '
阅读全文
摘要:有时,替换时,要区分/不区分,这时,就要加上标志了. i表示不区分,I表示区分大小写. 记着,免得搞忘了.
阅读全文
摘要://原文:http://purecpp.org/detail?id=2261, //线程池二 //抽取队列代码 #指示 一次 #包含<条件变量> #包含<互斥锁> #包含<队列> //其他线程池可复用它 元<型名 T>类 队列{//可压任意T类型 公: 空 压(常 T&项){ { 域锁 锁(互斥锁)
阅读全文
摘要:这里的chrome包含衍生品,如360极速等. 有时,感觉chrome,明明就打开几个书签,却感觉非常慢. 此时,很明显,人家做得很差的.这可能是在收集垃圾,或者什么的. 用久了浏览器,就感觉速度很慢,此时,我们就要重启.不折腾. 什么大厂出口,都是吹牛.
阅读全文
摘要://https://forum.dlang.org/post/sopoeb$1098$1@digitalmars.com import std.stdio, std.traits, core.lifetime; struct CtDelegate(R,T...){ void* ctx; R func
阅读全文
摘要:struct FunctionObject { string s; this(string s) { this.s = s; } auto opCall() { import std.stdio : writeln; s.writeln; } } struct A { FunctionObject[
阅读全文
摘要:原文 class S {} class A:S {} class Visitor { void visit(S s) {} void visit(A a) {} } class Derived : Visitor { } void main() { auto v = new Derived; v.v
阅读全文
摘要:使用sandwich删/**/内容 "$" { return 0; /* a b c */ } 把光标放在abc处,然后dif*,这里要点是先d确定大操作,再想i/a确定内/外,再用f+符来确定具体包围符.
阅读全文
摘要:fun! Zjc(c,j='a') "置寄存器,默认为置a.还有很多寄存器 let ml='let @'.a:j.'=a:c' exe ml endf fun! Qhjt() "切换剪贴,切换至剪贴板,只能是用a寄存器. let @+=@a "如何想办法映射更多. endf 使用方法,先用上个函数设
阅读全文
摘要:fun! Ml(a) :redir!>命令.txt :silent exe ':'.a:a :redir END endf 原来早就有方法了,一直找不到.
阅读全文
摘要:import std.stdio : writeln; import std.socket : InternetAddress; import std.conv : to; void main() { string host = "localhost"; string port = "8080";
阅读全文
摘要:skia#地址. > copy skiasharp\2.80.2\runtimes\win-x64\native\libSkiaSharp.dll c:\lib\win-x64 > cd lib\windows > lib /def:skia.def /MACHINE:X64 /out:SkiaSh
阅读全文
摘要:关键词:FreePic2Pdf/. 老马博客 我们通过下载其软件及引擎/引擎组件(40M). 然后就可以自己来ocr了.
阅读全文
摘要:.list-wap .list-wap-list{ height: initial!important; }
阅读全文
摘要:`C++`巴范语法规则 词分器.字符集 四16进制: 16进制数 16进制数 16进制数 16进制数 通用字符名: \u 四16进制 \U 四16进制 四16进制 词分器.预令牌 预处理令牌: 头名 标识符 预数字 符字面 用户定义符字面 C++0x 串字面 用户定义串字面 C++0x 预处理操作或
阅读全文
摘要:用 M::列,M::不合,M::动作,M::要要; 用 M::记,M::奇,M::无,M::标记; 还有这个非常量引用只能绑定到左值,非常恶心.恶心得很.
阅读全文
摘要:#include <常用> 构 G{ 向量<极>记;整 i=4; }; 元<整 I,类 T> 构 B{ 保护: 向量<向量<T>>列; }; 元<整 I,类 T=B<I,串>> 构 X:公 G,公 T{ 整 j=0; 用 T::列;//不行,太折腾了. //用 T::记,T::列,T::i;//要这
阅读全文
摘要:原文 QtE56快速入门指南. 下面方案是按Windows术语描述的.对Linux,文件名为libXXXX.so,还应考虑32位或64位位深实现.如有Qt64位,则库(so/dll文件)也必须是64位. 示例: QtE56core32.dll 32位Windows实现 libQtE56core64.
阅读全文
摘要:原地址 转换头至D并从D调用原始C代码,验证是否有效. 从C代码中逐步删除函数,并提供D版实现.每步后验证代码仍然有效,来及早发现翻译错误. 一旦翻译了所有C函数,可扔掉D头文件,并停止链接C代码,就翻译完了!
阅读全文