C++23

[C++] autoによるキャスト

C++23からauto(x)の形式のキャストが可能になります。 template<std::copy_constructible T> void f(T x) { T p = auto(x); // ok、C++23から } これに関連する仕様等のメモです。 prvalue値へのキャスト 細かい仕様の話 利点や用途 decay-copyとの違い 規格書における置き換え コンセプ</std::copy_constructible>…

[C++]C++23<ranges>のユーティリティ

C++23で追加された<ranges>関連の小さめのユーティリティをまとめておきます。ここには新しいファクトリ/アダプタやranges::toは含まれていません。ここで紹介するものは基本的にstd::ranges名前空間にありますが、名前空間指定を省略しています。 const_iterator_t/</ranges>…

[C++] mdspanでインターリーブレイアウトを扱う

mdspanお勉強のメモです。ここでのサンプルコードは全てkokkos/mdspanを用いて実行しています。標準のstd::mdspanに準拠して実装されているのでおそらく挙動は変わらないでしょう。 インターリーブレイアウト mdspanのカスタマイズ レイアウトポリシー型の構…

[C++]iter_const_reference_tの型の決定について

先日zennに投降した、views::as_constについての記事を書いているときに調べた、const_iteratorの要素型(参照型)の決定過程に関するメモです。 C++23 のviewを見る3 - As const view - zenn 以下、views::as_constに関しては知っているものとして説明しま…

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

文書の一覧 JTC1/SC22/WG21 - Papers 2022 mailing2023-04 SG22のWG14からのものを除いて、全部で41本あります。 N4940 WG21 2022-11 Kona Minutes of Meeting V2 N4941 INCITS C++/WG21 Agenda: 6-11 February 2023, Issaquah, WA USA N4942 WG21 2023-01 A…

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

文書の一覧 JTC1/SC22/WG21 - Papers 2022 mailing2023-02 SG22のWG14からのものを除いて、全部で102本あります。 P0290R3 apply() for synchronized_value P0290R4 apply() for synchronized_value P0447R21 Introduction of std::hive to the standard lib…

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

文書の一覧 JTC1/SC22/WG21 - Papers 2022 mailing2023-01 SG22のWG14からのものを除いて、全部で84本あります。 N4928 Working Draft, Standard for Programming Language C++ N4929 Editors' Report - Programming Languages - C++ N4933 WG21 November 20…

[C++]暗黙ムーブの副作用による安全性

C++23から、左辺値参照を返す関数においてローカル変数を直接返すケースがコンパイルエラーとなるようになります。 int& f() { int n = 10; return n; // ng } int main() { int& r = f(); } [Wandbox]三へ( へ՞ਊ ՞)へ ハッハッ これは意図された振る舞いである…

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

文書の一覧 JTC1/SC22/WG21 - Papers 2022 mailing2022-11 全部で75本あります。(新規35本 N4924 WG21 2022-10 Admin telecon minutes N4925 2023-02 Issaquah meeting information N4926 Working Draft, C++ Extensions for Library Fundamentals, Version…

[C++]沼底のvoidify()

この記事はC++ Advent Calendar 2022の14日目の記事です。 規格書中の特定領域に突如出現する謎の説明専用関数voidify()、その謎を解明するため、我々調査隊はアマゾンの奥地へと向かった――。 謎の関数voidify voidfy()の入力 voidify()の役割 voidify()の実…

[C++]地に足のついた範囲for文

この記事はC++ Advent Calendar 2022の5日目の記事です。 問題です。次のコードには未定義動作が少なくとも1つ含まれています。それは何でしょう? #include <vector> #include <string> // どこかで定義されているとして auto f() -> std::vector<std::string>; int main() { for (auto&&</std::string></string></vector>…

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

文書の一覧 JTC1/SC22/WG21 - Papers 2022 mailing2022-10 全部で80本あります。 一部の記事は次の方々に手伝っていただきました、ご協力ありがとうございました! @bleaguedbさん @acd1034さん もくじ N4923 Working Draft, Extensions to C++ for Transact…

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

文書の一覧 JTC1/SC22/WG21 - Papers 2022 mailing2022-09 全部で29本あります。 N4917 Working Draft, Standard for Programming Language C++ N4918 Editors’ Report - Programming Languages – C++ N4919 Programming Languages - C++ N4920 Working Draf…

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

文書の一覧 JTC1/SC22/WG21 - Papers 2022 mailing2022-08 全部で27本あります。 N4914 WG21 2022-07 Admin telecon minutes N4915 Business Plan and Convener's Report: ISO/IEC JTC1/SC22/WG21 (C++) N4916 WG21 2022-07 Virtual Meeting Minutes of Meet…

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

文書の一覧 JTC1/SC22/WG21 - Papers 2022 mailing2022-07 全部で47本あります。 P0009R18 MDSPAN P1018R17 C++ Language Evolution status pandemic edition 2022/06–2022/07 P1083R6 Move resource_adaptor from Library TS to the C++ WP P1255R8 A vie…

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

文書の一覧 JTC1/SC22/WG21 - Papers 2022 mailing2022-06 全部で46本あります。 P0009R17 MDSPAN P0429R9 A Standard flat_map P0447R20 Introduction of std::hive to the standard library P0792R10 function_ref: a non-owning reference to a Callable …

[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++]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++]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++]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++]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++]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…