2014-11-01から1ヶ月間の記事一覧
C++14で導入されるジェネリックラムダ(generic lambda)、可変長引数テンプレート(variadic template parameter)、ellipsis(...)の組み合わせによる文法上の曖昧さについて。gccとClangのバグ。 struct { template<typename...Args> auto operator()(Args&&...) const { } } f1</typename...args>…
プログラミング言語C++の基本型(primary type)区分は14種類存在する。C++標準ライブラリ<type_traits>ヘッダで提供されるメタ関数により判別可能。2025-07-18追記:C++2c(C++26) Reflection言語機能の追加に伴い、リフレクション(reflection)(→id:yohhoy:20250305)が新</type_traits>…
元文書:(PDF)N4215 Towards Implementation and Use of memory_order_consume, P.McKenney/T.Riegel/J.Preshingほか, 2014/10/052025-02-18追記:C++20現在は仕様再検討ステータスとして、memory_order_acquireによる代替が推奨されている*1。C++2c(C++26)…
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)標準ライブラリで…
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>…