yohhoyの日記

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

2014-11-01から1ヶ月間の記事一覧

Generic Lambda×Variadic Template Parameter×Ellipsis

C++14で導入されるジェネリックラムダ(generic lambda)、可変長引数テンプレート(variadic template parameter)、ellipsis(...)の組み合わせによる文法上の曖昧さについて。gccとClangのバグ。 struct { template<typename...Args> auto operator()(Args&&...) const { } } f1</typename...args>…

C++のプライマリ型カテゴライズ

C++

プログラミング言語C++の基本型(primary type)区分は14種類存在する。C++標準ライブラリ<type_traits>ヘッダで提供されるメタ関数により判別可能。 カテゴリ メタ関数 void型 is_void std::nullptr_t型 is_null_pointer[C++14以降] 整数型 is_integral 浮動小数点数型 i</type_traits>…

(抄訳)N4215 memory_order_consumeの利用と実装に向けて[§5-6のみ]

C++ C

元文書:(PDF)N4215 Towards Implementation and Use of memory_order_consume, P.McKenney/T.Riegel/J.Preshingほか, 2014/10/05訳出メモ: 自分自身の理解のために日本語訳を行ったC++メモリモデル/memory_order_consumeに関する提案文書。§5, 6のみ訳出…

INVOKE仮想操作の参照実装

C++11で定義される INVOKE 仮想操作の参照実装。C++1z(C++17)に向けてN4169でC++標準ライブラリ入りを提案中。2016-07-28追記:C++1z(C++17)標準ライブラリへのstd::invoke関数テンプレート追加が採択された。2019-09-14追記:C++2a(C++20)標準ライブラリで…

synchronic同期プリミティブ

C++1z(C++17)に向けて提案されている同期プリミティブについてメモ。(PDF)N4195 std::synchronic<T> に基づく。初期提案のため概要のみ。2019-09-12追記:C++2a(C++20)に向けて提案文書 P1135R6 が採択され、atomic変数std::atomic<T>に wait / notify_one / notif</t></t>…