Eyes, JAPAN Blog > Codelogyの更新

Codelogyの更新

mima

この記事は1年以上前に書かれたもので、内容が古い可能性がありますのでご注意ください。

Codelogyに、新しい記事を追加しました。
http://codelogy.org/?p=613


今回の記事は、最近、std.algorithmに追加された、forwardテンプレートに関してです。
関数の引数の非ref性を維持するテンプレートですね。
以下のような感じです。
コード:

import std.stdio, std.algorithm;
int hoge()(auto ref int i){
    return piyo(forward!i);
}
 
int piyo(int i){
    return 1;
}
 
int piyo(ref int i){
    return 2;
}
 
void main(){
    int i;
    hoge(1).writeln();
    hoge(i).writeln();
}

結果:

1
2

記事の中で、詳しく解説しています。
興味がありましたら、ぜひ見てみて下さい。


話は変わりますが、構造体とfinal classは、それぞれnewの速度が異なるとどこかで聞いたので、
実際にベンチマークをとってみました。
すると、基本的に構造体の方がnewが速いのですが、最適化のオプションをつけてコンパイルすると、final classの方が速くなりました。
詳しくは、次回の記事で書こうと思います。

担当:美馬(構造体をnewする機会なんて、滅多にないけれど)

  • このエントリーをはてなブックマークに追加

Comments are closed.