d可保证编译时执行下面吗?auto genFactorials(int n){  auto result = new int[n];    result[0] = 1;    foreach (i; 1 .. n)    {        result[i] = result[i - 1] * i;              
                
                    
                        
                                                            
                                                                        
                                                                                        原创
                                                                                    
                            2022-05-19 09:03:10
                            
                                191阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            d的编译时两个阶段:ast与ctfe,ast为生成树,ctfe为编译时求值.其实很简单啦.ast树,必须通过语义给树加上意义,然后求值函数才能求值,对不对?不然,光是树,是没用的.其中,模板变函数,遇见了,先造一个ast的模板,然后实例化时,就填充这个ast,然后加入整个生成树里面.ctfe,在语义分析与代码生成阶段.编译时求值就是把一些编译时已知可以求值的东西,求出来,这样运行时就不必再求...            
                
                    
                        
                                                            
                                                                        
                                                                                        原创
                                                                                    
                            2022-02-09 17:16:41
                            
                                47阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            d的编译时两个阶段:ast与ctfe,ast为生成树,ctfe为编译时求值.其实很简单啦.ast树,必须通过语义给树加上意义,然后求值函数才能求值,对不对?不然,光是树,是没用的.其中,模板变函数,遇见了,先造一个ast的模板,然后实例化时,就填充这个ast,然后加入整个生成树里面.ctfe,在语义分析与代码生成阶段.编译时求值就是把一些编译时已知可以求值的东西,求出来,这样运行时就不必再求...            
                
                    
                        
                                                            
                                                                        
                                                                                        原创
                                                                                    
                            2021-08-19 17:39:20
                            
                                97阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            enum string[string] CtfeFoo = ["foo" : "bar"];static immutable string[string] Foo;static this(){    Foo = CtfeFoo;}string ctfeableFunction(){    if (__ctfe)    	return CtfeFoo["foo"];    e...            
                
                    
                        
                                                            
                                                                        
                                                                                        原创
                                                                                    
                            2022-02-26 11:39:36
                            
                                40阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            //!dmd -betterC %//编译.创建了类的静态`缓冲区`.__gshared Foo[] foos = () {  Foo[] ret;  ret.length = 10;    foreach(i, ref foo; ret) {       foo = new Foo(i);    }//用CTFE的全局数组初化,来绕过`新`,编译时运行的.            
                
                    
                        
                                                            
                                                                        
                                                                                        原创
                                                                                    
                            2022-02-16 18:13:04
                            
                                66阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            stringImportPath.来指明导入串的路径.串必须是编译时,且不允许包含路径.void foo(){    //打印文件内容    writeln(import("foo.txt"));}必须有编译时已知代码,才能用ctfe.不能用文件系统代码,            
                
                    
                        
                                                            
                                                                        
                                                                                        原创
                                                                                    
                            2021-08-20 09:36:49
                            
                                56阅读