D言語でstatic constな関数を定義したかった
以下のようなコードを定義すると、新しいgdcではエラーとなる
コード
import std.stdio; void main() { const string data = test_for_const(); pragma(msg, data); } static const string test_for_const() { return "t"; }
結果
Start prog.d:8:21: error: function prog.test_for_const without 'this' cannot be const static const string test_for_const() { return "t"; } ^ 1 Finish
pureとかいうステートメントがあるので使う
コード
import std.stdio; void main() { const string data = test_for_const(); pragma(msg, data); } static pure string test_for_const() { return "t"; }
結果
Start t 0 Finish
pure関数
公式に解説がありそうwww.kmonos.net