yohhoyの日記

技術的メモをしていきたい日記

MSVC

ローカルクラスとテンプレート引数

C++11から、テンプレート引数として関数内のローカルな型を指定できるようになった。(C++03以前ではNG) template <typename T> void foo(T const& t) {} struct X{}; int main() { struct Y{}; foo(X()); // C++03/C++11:well-formed foo(Y()); // C++03:ill-formed, C</typename>…

printfとsize_t型

C99にてsize_t型用の書式化文字列 長さ修飾子(length modifier)zが追加された。 #include <stdio.h> printf("%zu\n", sizeof(int)); なお、同時にptrdiff_t型用の長さ修飾子tも追加されている。 gcc系 gcc(glibc 2.1以降)はzに対応している。ただし、厳密なC90(-peda</stdio.h>…

asyncについて(実践編)

C++11標準ライブラリのstd::async関数を実際に利用するときの注意点メモ。2012年2月現在の結論: gccのasync関数はプログラマが期待するような賢い動作をしない。 MSVCは問題外(async関数自体をサポートしない)。次期MSVC11に期待。 サードパーティライブ…

futureとpromiseのあれこれ(実践編)

C++11標準ライブラリの std::future, std::promise を実際に利用するときの注意点メモ。gcc系共通の注意点として、g++オプションに「-std=c++0x -pthread」を指定する必要がある。前者はC++11機能サポートを有効に、後者はスレッド関連機能を有効にするオプ…