Back to page

− Links

 Print 

SampleCodes​/D言語文法​/コンパイル時実行関連​/2 :: D言語友の会

wiki:SampleCodes/D言語文法/コンパイル時実行関連/2

Table of contents
  • 概要
  • ポイント
  • サンプルコード
  • コンパイル結果
  • 実行結果
  • 投票とコメント

概要 anchor.png[1] Edit [2]

CTFE(コンパイル時間数実行)機能を利用して、コンパイル時に定数を計算します。

Page Top

ポイント anchor.png[3] Edit [4]

Everything is expanded.Everything is shortened.
1
 
enum hoge = func(args);

と書くことで、コンパイル時にfunc()が実行され戻り値がhogeに代入されます。

funcはCTFEableである必要があります。

CTFEableな関数の条件については、1#nd93a0a3[5]を参照してください。

Page Top

サンプルコード anchor.png[6] Edit [7]

Everything is expanded.Everything is shortened.
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
-
!
 
 
 
-
|
!
 
 
 
-
|
!
//main.d
import std.stdio;
 
enum hoge = func();
 
string func(){
    return "Evaluated " ~ "in compile-time.";
}
 
pragma(msg, hoge);
 
void main(){
    writeln(hoge);
}
Page Top

コンパイル結果 anchor.png[8] Edit [9]

1
2
~~~dmd.exe main.d
Evaluated in compile-time.
Page Top

実行結果 anchor.png[10] Edit [11]

1
Evaluated in compile-time.
Page Top

投票とコメント anchor.png[12] Edit [13]

Choices Vote
大変参考になった2  
参考になった0  
あまり参考にならなかった0  
まったく参考にならなかった0  

No comment. コメント​/SampleCodes​/D言語文法​/コンパイル時実行関連​/2Edit[14]

Name:

Last-modified: 2012-03-27 (Tue) 21:35:30 (JST) (3592d) by ゲスト