C++

[C++]WG21月次提案文書を眺める(2022年05月)

文書の一覧 JTC1/SC22/WG21 - Papers 2022 mailing2022-05 全部で36本あります。 N4912 2022-11 Kona hybrid meeting information N4913 PL22.16/WG21 agenda: 25 July 2022, Virtual Meeting P0543R1 Saturation arithmetic P0792R9 function_ref: a non-ow…

[C++]WG21月次提案文書を眺める(2022年04月)

文書の一覧 JTC1/SC22/WG21 - Papers 2022 mailing2022-04 全部で36本あります(SG22のWG14からのものは除きます)。 P0429R8 A Standard flat_map P0957R7 Proxy: A Polymorphic Programming Library P1061R2 Structured Bindings can introduce a Pack P11…

[C++] rangesのパイプにアダプトするには

C++20の<ranges>のパイプ(|)に自作のview(Rangeアダプタ)を接続できるようにするにはどうすればいいのでしょうか?その方法は一見よくわからず、特に提供されてもいません。それでもできないことはないので、なんとかする話です。 パイプの実態 Rangeアダプタオ</ranges>…

[C++]WG21月次提案文書を眺める(2022年03月)

文書の一覧 JTC1/SC22/WG21 - Papers 2022 mailing2022-03 全部で27本あります(SG22のWG14からのものは除きます)。 N4908 Working Draft, C++ Extensions for Library Fundamentals, Version 3 N4909 Editor's Report: C++ Extensions for Library Fundame…

[C++]クラス/変数テンプレートとコンセプト

クラス/変数テンプレートに対する制約 プライマリテンプレートへの制約 部分特殊化の制限 コンセプトによって順序を付ける プライマリテンプレートと部分特殊化の順序 おまけ : 変数テンプレートでできること 参考文献 クラス/変数テンプレートに対する制約 …

[C++]WG21月次提案文書を眺める(2022年02月)

文書の一覧 JTC1/SC22/WG21 - Papers 2022 mailing2022-02 全部で66本あります(SG22のWG14からのものは除きます)。 N4903 PL22.16/WG21 agenda: 7 February 2022, Virtual Meeting N4904 WG21 admin telecon meetings: 2022 summer and autumn (revision 1…

[C++]後から触られないグローバルRAIIラッパー

C言語のライブラリにたまにある、最初にグローバル状態を~init()で確保して、それを最後に~release()で解放するというインターフェースについて、C++から使うときはRAIIで自動化したい衝動に駆られます。そのとき問題となるのは、プログラムの最初で初期化し…

[C++]WG21月次提案文書を眺める(2022年01月)

文書の一覧 JTC1/SC22/WG21 - Papers 2022 mailing2022-01 全部で52本あります(SG22のWG14からのものは除きます)。 P0447R18 Introduction of std::hive to the standard library P0792R6 function_ref: a non-owning reference to a Callable P1018R14 C+…

[C++]WG21月次提案文書を眺める(2021年12月)

文書の一覧 JTC1/SC22/WG21 - Papers 2021 mailing2021-12 全部で40本あります。 P0493R3 Atomic maximum/minimum P1467R8 Extended floating-point types and standard names P1673R6 A free function linear algebra interface based on the BLAS P1774R4 …

[C++] ExecutorとNetworking TSで起きていたこと

この記事はC++ Advent Calendar 2021の21日目の記事です。 ExecutorとNetworking TS Executor Networking TS Executorの道程 AsioにおけるExecutorの発見 WG21 SG1におけるUnified Executorの追求 P2300 std::execution C++23 Feature Complete 各ライブラリ…

[C++]std::stringをキーとする(非順序)連想コンテナでHeterogeneous Overloadを有効化する

この記事はC++ Advent Calendar 2021の17日目の記事です。 Heterogeneous Overload? Heterogeneous Overloadというのは、(非順序)連想コンテナ(C<Key, ...>)の操作においてKeyと異なる型のオブジェクトをとることのできるオーバーロードのことです。 例えばstd::m</key,>…

[C++]WG21月次提案文書を眺める(2021年11月)

文書の一覧 JTC1/SC22/WG21 - Papers 2021 mailing2021-11 全部で43本あります。 P0009R14 MDSPAN P0323R11 std::expected P0447R17 Introduction of std::hive to the standard library P0533R9 constexpr for cmath and cstdlib P1413R3 Deprecate std::al…

[C++]owning_viewによるパイプライン安全性

この記事はC++ Advent Calendar 2021の7日目の記事です。 owning_view owning_viewについては、ちょうど別に書いたので以下もご参照ください。 <ranges>のviewを見る19 - owning_view - Zenn owning_viewは右辺値の範囲から構築され、それを所有することで右辺値範囲</ranges>…

[C++]WG21月次提案文書を眺める(2021年10月)

文書の一覧 JTC1/SC22/WG21 - Papers 2021 mailing2021-10 全部で74本あり、SG22(C/C++相互互換性に関する研究グループ)のCの提案を除くと73本になります。 採択された文書 P0798R8 Monadic operations for std::optional P1147R1 Printing volatile Point…

[C++]`std::array`のエイリアステンプレートとCTAD

twitterに密かに置いていた質問箱に次のような質問をいただきました。 #include <array> template<auto N> using std_array_with_int = std::array<int,N>; template<typename T> using std_array_with_3 = std::array<T,3>; int main() { [[maybe_unused]] std::array ar1 = { 1, 2, 3 }; // ok [[m</t,3></typename></int,n></auto></array>…

[C++]WG21月次提案文書を眺める(2021年09月)

文書の一覧 JTC1/SC22/WG21 - Papers 2021 mailing2021-09 全部で42本あり、SG22(C/C++相互互換性に関する研究グループ)のCの提案を除くと41本になります。 P0288R9 move_only_function (was any_invocable) P0447R16 Introduction of std::hive to the st…

[C++]WG21月次提案文書を眺める(2021年08月)

文書の一覧 JTC1/SC22/WG21 - Papers 2021 mailing2021-08 全部で29本あります。 N4895 Working Draft, Extensions to C++ for Concurrency Version 2 P1018R12 C++ Language Evolution status pandemic edition 2021/06–2021/08 P1072R9 basic_string::re…

[C++]メンバ型のトリビアル性を継承するロストテクノロジー

std::optionalやstd::variantは保持する型がトリビアルな型であれば、そのトリビアル性を継承することが規格によって求められており、その実装には非常に難解なテクニックが使用されます。しかし、C++20以降、このテクニックは過去のものとなり忘れ去られて…

[C++]トリビアルってトリビアル?

別のことを調べていたらなぜか出来上がっていたメモです・・・ ABIとtriviality 各種ABIでのトリビアル性と引数渡し、戻り値返し Itanium C++ ABI System V AMD64 ABI ARM64 C++ ABI Windows x64 呼び出し規約 (Windwos x64 ABI) Windows ARM64 ABI 引数が多…

[C++]WG21月次提案文書を眺める(2021年07月)

文書の一覧 JTC1/SC22/WG21 - Papers 2021 mailing2021-07 全部で39本あります。 N4894 Business Plan and Convener's Report P0288R8 move_only_function (was any_invocable) P0847R7 Deducing this P1206R4 Conversions from ranges to containers P1726R…

[C++]WG21月次提案文書を眺める(2021年06月)

文書の一覧 JTC1/SC22/WG21 - Papers 2021 mailing2021-06 全部で49本あり、SG22(C/C++相互互換性に関する研究グループ)のCの提案を除くと48本になります。 N4887 PL22.16/WG21 agenda: 7 June 2021, Virtual Meeting N4888 WG21 virtual meetings: 2021-0…

[C++] std::formatあるいは{fmt}のコンパイル時フォーマット文字列チェックの魔術

コンパイル時フォーマット文字列チェック basic-format-stringクラス constevalコンストラクタ 実装例 応用例 参考文献 コンパイル時フォーマット文字列チェック {fmt}ライブラリおよび<format>には、コンパイル時のフォーマット文字列チェック機能が実装されていま</format>…

[C++]WG21月次提案文書を眺める(2021年05月)

文書の一覧 JTC1/SC22/WG21 - Papers 2021 mailing2021-05 全部で44本あり、SG22(C/C++相互互換性に関する研究グループ)のCの提案を除くと36本になります。 P0009R11 MDSPAN P0009R12 MDSPAN P0447R14 Introduction of std::colony to the standard librar…

[C++]C++20モジュールの変遷 - Module TSからC++20DISまで

C++20のモジュールは確かにある一つの提案がベースになっているのですが、その後C++20策定完了までの間に複数の提案やIssue報告によってそこそこ大きく変化しています。その結果、C++20のモジュールはその全体像を把握するためにどれか一つの提案を読めばわ…

[C++]WG21月次提案文書を眺める(2021年04月)

文書の一覧 JTC1/SC22/WG21 - Papers 2021 mailing2021-04 全部で55本あり、SG22(C/C++相互互換性に関する研究グループ)のCの提案を除くと48本になります。 P0323R10 std::expected P0447R13 Introduction of std::colony to the standard library P1121R3…

[C++]TU-local Entityをexposureするのこと(禁止)

モジュールと内部リンケージ名 例 TU-local Entities? TU-local Entityの曝露(exposure) TU-local Entityを曝露してたら・・・ テンプレート 明示的インスタンス化 メンバ関数の暗黙inline さんぷるこーど モジュールにおけるinlineの意味 モジュールリン…

[C++]WG21月次提案文書を眺める(2021年03月)

文書の一覧 JTC1/SC22/WG21 - Papers 2021 mailing2021-03 全部で36本あり、SG22(C/C++相互互換性に関する研究グループ)のCの提案を除くと32本になります。 採択された文書 P2313R0 Core Language Working Group "tentatively ready" issues for the Febru…

[C++]WG21月次提案文書を眺める(2021年02月)

文書の一覧 JTC1/SC22/WG21 - Papers 2021 mailing2021-02 採択されたものはありません、全部で58本あります。 が、SG22(C/C++相互互換性に関する研究グループ)経由でCの提案が含まれているので、そこからC++に対してのものでないものを除くと48本になりま…

[C++]indirectly_writableコンセプトの謎の制約式の謎

std::indirectly_writableコンセプトはイテレータによる出力操作を定義するコンセプトで、std::output_iteratorコンセプトの中核部分を成しています。 template<class Out, class T> concept indirectly_writable = requires(Out&& o, T&& t) { *o = std::forward<T>(t); *std::forw</t></class>…

[C++]ラムダキャプチャの記述順序

ラムダ式を雰囲気で書いているので、キャプチャの正しい順序が分かりません。そのため、コンパイラに怒られて直したり怒られなかったからヨシ!をしています。 正しい順序とは一体何なのでしょうか・・・? 正しいキャプチャ順序 C++20現在、キャプチャには3種…