#blog2navi() *Hello, Visual C++ 2015. [#j3589f23] PC組み換えやWindows10への更新もあって遅れましたが、 [[Visual Studio 2015>https://www.microsoft.com/ja-jp/dev/products/visual-studio-2015.aspx]] のCommunity版をインストールしました。 やはり気になるのは Visual C++ のC++規格対応状況です。 -[[コンパイラの実装状況 - cpprefjp>http://cpprefjp.github.io/implementation-status.html]] ひとまず上記ページを参考にして Visual C++ 2013 では書けなかったコードを書いてみました。 #code(c){{ #include <utility> #include <iostream> // [C++11] inline namespace inline namespace detail { // [C++14] 通常関数の戻り値型推論 auto& get_cout() { return std::cout; } // [C++11] constexpr template<class T> constexpr auto plus15(T src) { // [C++14] 2進数リテラル return src + 0b1111; } // [C++11] ユーザ定義リテラル(定義側) constexpr auto operator "" _x2(unsigned long long src) { // 元の値を2倍にして返す return src * 2; } } // namespace detail int main(int, char**) { // [C++14] decltype(auto) decltype(auto) out = get_cout(); // [C++14] 汎用ラムダキャプチャ // [C++14] ジェネリックラムダ式 auto put = [&o = out](auto&& arg) { o << arg; }; // [C++11] Unicode文字列リテラル put(u8"Hello, Visual C++ "); // [C++11] thread_local // [C++14] 数値リテラルの桁区切り // [C++11] ユーザ定義リテラル(利用側) thread_local auto value = 2'000'000 / 500_x2; put(plus15(value)); put(".\n"); return 0; } }} こんな感じのコードが問題なくビルドできます。感動。 当サイトの [[プログラミング/C++/VC++のC++規格対応状況]] のページも近日中に更新しておきます。まぁ前述した cpprefjp のページを見れば済む話なんですが。 RIGHT:Category: [[[C++>ぼやきごと/カテゴリ/C++]]][[[Visual Studio>ぼやきごと/カテゴリ/Visual Studio]]][[[プログラミング>ぼやきごと/カテゴリ/プログラミング]]] - 2015-08-08 06:34:49 ---- RIGHT:&blog2trackback(); #comment(above) #blog2navi()