Visual Studio 2013 で追加される予定の C++11 の言語機能
上記の記事によると、
- Default template arguments for function templates.
- Delegating constructors.
- Explicit conversion operators.
- Initializer lists and uniform initialization.
- Raw string literals.
- Variadic templates.
が Visual Studio 2013 で新しく追加されるC++11 の言語機能のようです。
以前公開された November 2012 Compiler CTP で実装されていた機能がそのまま使用できるような感じですね。
あと標準ライブラリが C++14 に対応し始めているようです。
既に std::make_unique や std::cbegin()/cend() などが追加されています。
ここら辺の対応は素早いですねー。
と、いう事で実際に Visual Studio 2013 Preview 版をインストールして試してみました。
Preview 版のダウンロードはこちらから行うことが出来ます。
[ソース]
#include <iostream> #include <vector> #include <memory> #include <string> template<typename ...Args> void func(Args... args){ for(auto&& n : {args...}){ std::cout << n << std::endl; } } struct X{ int value; std::string name; }; int main(){ func(1, 2, 3, 4, 5); std::vector<int> v = {1, 2, 3, 4, 5}; for(auto&& n : v){ std::cout << n << std::endl; } X x{42, std::string("mami")}; auto p = std::make_uniqe<X>(x); std::cout << p->value << std::endl; std::cout << p->name << std::endl; return 0; }