yohhoyの日記

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

2013-07-01から1ヶ月間の記事一覧

C++標準ライブラリ乱数生成エンジンの動作

C++

C++11標準ライブラリで追加された乱数生成エンジンでは、同一シード値を与えた場合には、処理系によらず同一の乱数列*1を生成する。ただしstd::default_random_engineは処理系定義(implementation defined)であり、std::random_deviceは非決定的な乱数列を生…

auto宣言では同一型に推論すべし

C++

C++11で導入されたauto型指定子(type-specifier)による宣言において、複数の変数を一括宣言する場合にはそれぞれから同じ型へ推論できないとill-formedとなる。 auto x1 = 3.14, x2 = 42; // NG: 前者はdouble, 後者はint auto y1 = 3.14, y2 = 42.; // OK g…

declvalの戻り値型とvoid

C++11標準ライブラリおよびBoost.Utilityライブラリで提供されるdeclval<T>ンプレートの戻り値型についてメモ。 template<class T> typename add_rvalue_reference<T>::type declval() noexcept; 戻り値型が単純なT&&となっていない理由は、テンプレートパラメータT=void型</t></class></t>…

std::stringの地味な拡張

C++

C++11標準ライブラリが提供する文字列std::basic_stringクラステンプレートでは、新たにpop_back, front, backメンバ関数が追加されている。(C++03以前の標準std::basic_stringでは提供されない。)これらはシーケンスコンテナ(sequence container)の一部で…

Visual Studio 2012でサポート済みのC++14機能

Microsoft Visual Studio 2012(MSVC11)でサポートされているC++14機能についてメモ。本記事の内容はMicrosoft Build 2013 "The Future of C++"スライド資料に基づく。MSVC11では、C++14導入予定の「ラムダ式の戻り値型推論の制限緩和」に対応しているとのこ…