加载中
d@safe中允许创建内部指针

原文 垃集规范提到,结构中具有内部指针是未定义行为. @safe代码中禁止未定义行为,但允许创建内部指针,而这可能会破坏dip1000: //用-preview=dip1000编译 @safe: struct S { int storage; int...

d的dip1000可逃逸嵌套函数返回的域指针

原文 fn嵌套函数不会在这里推断return. int* gPtr; void main() @safe { scope int* sPtr; int* fn() { return sPtr; } gPtr = fn(); } 可能最明智方法是允许非静态嵌套函数具有"return"和"...

d异常链下个方法

原文 import std.stdio; import std.exception; private: class E1 : Exception { mixin basicExceptionCtors; } class E2 : Exception { mixin basicExceptionCtors; } void foo () { try t...

vim单个符的映射

fun! Dft(t="") "单符头." exe 'set opfunc='.a:t return "\g@e" endf fun! Ts2(t) "只处理1个符即可." let i="dj".Qyf() echo i endf //然后 nnoremap gz Dft('Ts2') vim借助g@来......

vim取后面的实验,效果并不好

fun! Ts(t="") echo a:t if a:t=="" set opfunc=Ts return "g@e" "return "I"" endif let i="dj".Qyf() echo i endf " 实验表明,效果并不好.不折腾这种了.......

切换输入法快捷键.

设置/时间语言==语言键盘/输入语言热键 在输入语言间,或切换到极点中改一改.先选中,再点tab键.

vim自定义操作符,加行号

加行号: function! s:Seqno(type,...) let i = line("'[") let j = line("']") for l in range(i,j) execute l."s/^\\s*/\\0".(l-i+1).'. ' endfor endfunction function! s:ExeSeqno......

vim操作符示例

原文 如用\u打开url.而\ui]打开[]中url.而\u$/\uu/等. "从unimpaired.vim改编" function! s:DoAction(algorithm,type) " 备份设置" let sel_save = &selection let cb_save = &clipboard "使...

vim显示和更改列表

更改列表,:changes显示,是更改的位置列表,可用g;和g,浏览. g+和g-用于撤销列表.可用:undolist显示它. vim默认关闭永久会话列表.用set undofile来打开. 你部分原因是,@/在函数结束时恢复了.见...

vim语法高亮问题

原文 foo [内容] bar ''' 更多 '''更多东西 syntax region specialCommand start='\

2022/08/13 19:22
68
d模板化异常

原文 auto contextWithException(T, E)(lazy scope T expression, Exception delegate(E) handler) { Exception newException; try { return expression(); } catch (E e) { ......

vim更改背景等

文本中每个位置的结果高亮显示,是根据该位置嵌套最深的语法匹配设置的.如果这样的匹配缺少背景属性,则就用正常组. 因此,必须独立更改每个"最终"比赛亮点.所以答案是否定的,你不能.至少,不能通...

vim的py中字典与赋值间转换

'foo' : 'bar', //<=> foo = 'bar' 但想用.多次运行. function! s:var2dict(...) if a:0 "动作" " let save_cursor = getcurpos()" execute "normal! I'\ea'\f=r:A,\j^" ......

vim中创建可重复的映射

可以通过g@传递它们来创建可重复映射 function! s:insspace(...) if a:0 execute 'normal' v:count1.'i '."\".'`[' else " 安装" let &operatorfunc = matchstr(expand(''), '[^. ]*......

d闭包捕捉引用失败

原文 @safe: alias DG = void delegate() @safe; void main() { DG dg = getDg(42); stompStack(); dg(); } DG getDg(int val) { return forwardDg(val); } DG forwardDg(ref int c) { re......

d安全代码漏洞

原文 不能在@safe代码中拥有指向栈内存的全局变量 int** global; immutable int imm; static this() { imm = 42; } void main() @safe { f(); /* `global` 现在指向栈.*/ stomp(); /* `*glo...

vim同一按键不同命令

原文 function! Jump(jumpcommands) let l:location = getcurpos('.') for jumpkey in a:jumpcommands execute "normal! " jumpkey if l:location != getcurpos('.') break endif endfor......

d的异常2

原文 添加环境信息到可能无法访问传播异常的抛代码中. 是的,但可再次这样:抓一个,然后抛新的,并把旧的放在后面. 是的.但是,必须在每个可能想要添加环境信息的潜在抽象级别周围插入try/catch...

d域参数通过闭包逃逸

原文 void delegate() test(Object[] objs...) { return { foreach(obj; objs)assert(obj); }; } void delegate() foo() { return test(new Object, new Object); } void main() { aut......

d更好异常

原文 module arsd.exception; interface ThrowableBase { void fly(string file = __FILE__, size_t line = __LINE__); //应该内置在编译器的throw语句中 // 需要时覆盖 void printMembers(...

没有更多内容

加载失败,请刷新页面

返回顶部
顶部