From e4de7cf0c90189513e57ad5ab15879a6f7e4e225 Mon Sep 17 00:00:00 2001 From: Ryo Suzuki Date: Tue, 25 Feb 2025 20:21:30 +0900 Subject: [PATCH] update --- learn/studymeetings/index.html | 2 +- search/search_index.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/learn/studymeetings/index.html b/learn/studymeetings/index.html index 545dfea..a22c917 100644 --- a/learn/studymeetings/index.html +++ b/learn/studymeetings/index.html @@ -1921,7 +1921,7 @@

C++ MIX #13 GCCの\<type_traits>最適化 (リモート発表予定) +GCCの<type_traits>最適化 (リモート発表予定) Ken Matsui diff --git a/search/search_index.json b/search/search_index.json index 4603e5c..d83e019 100644 --- a/search/search_index.json +++ b/search/search_index.json @@ -1 +1 @@ -{"config":{"lang":["en","ja"],"separator":"[\\s\u3000\u3001\u3002\uff0c\uff0e\u304c\u306e\u3092\u306b\u3078\u3068\u3067\u3084\u304b\u3082\u308b\u300c\u300d\u300e\u300f]+","pipeline":["stemmer"]},"docs":[{"location":"","title":"C++ \u306e\u6b69\u304d\u65b9 | cppmap","text":"

\ud83d\udce2 CEDEC 2024 \u306b\u3066\u8b1b\u6f14\u3092\u884c\u3044\u307e\u3057\u305f\u3002\u767a\u8868\u8cc7\u6599\u3092\u516c\u958b\u3057\u3066\u3044\u307e\u3059\u3002

\ud83d\udce2 CEDEC 2020 \u306b\u3066\u8b1b\u6f14\u3092\u884c\u3044\u307e\u3057\u305f\u3002\u767a\u8868\u8cc7\u6599\u3092\u516c\u958b\u3057\u3066\u3044\u307e\u3059\u3002

\ud83d\udce2 \u30b3\u30f3\u30c6\u30f3\u30c4\u62e1\u5145\u306e\u305f\u3081\u3010\u52df\u96c6\u3011\u30bf\u30b0\u306e\u30b9\u30ec\u30c3\u30c9\u3078\u60c5\u5831\u3092\u304a\u5bc4\u305b\u304f\u3060\u3055\u3044\u3002

\ud83d\udce2 \u672c\u30b5\u30a4\u30c8\u306e\u904b\u55b6\u306f\u3001GitHub Sponsors \u306b\u3088\u3063\u3066\u652f\u3048\u3089\u308c\u3066\u3044\u307e\u3059\u3002

"},{"location":"#_1","title":"\u3053\u306e\u30b5\u30a4\u30c8\u306b\u3064\u3044\u3066","text":"

C++17, C++20, C++23, C++26 \u306b\u95a2\u3059\u308b\u60c5\u5831\u3092\u8abf\u67fb\u30fb\u63d0\u4f9b\u3057\u307e\u3059\u3002 \u7ba1\u7406\u8005 @Reputeless \u3068\u3001\u30b3\u30f3\u30c8\u30ea\u30d3\u30e5\u30fc\u30bf\u306e\u7686\u69d8 \u306b\u3088\u3063\u3066\u57f7\u7b46\u3055\u308c\u3066\u3044\u307e\u3059\u3002

"},{"location":"#_2","title":"\u30e9\u30a4\u30bb\u30f3\u30b9","text":"

\u672c\u30b5\u30a4\u30c8\u306e\u8a18\u4e8b\u3068\u30b5\u30f3\u30d7\u30eb\u30b3\u30fc\u30c9\u306f\u30d1\u30d6\u30ea\u30c3\u30af\u30c9\u30e1\u30a4\u30f3\u3067\u3059\u3002 \u30b5\u30fc\u30c9\u30d1\u30fc\u30c6\u30a3\u30fc\u306e\u30b3\u30f3\u30c6\u30f3\u30c4\u306e\u8457\u4f5c\u6a29\u306f\u3001\u305d\u308c\u305e\u308c\u306e\u6240\u6709\u8005\u306b\u5e30\u5c5e\u3057\u307e\u3059\u3002

"},{"location":"#github-sponsors","title":"GitHub Sponsors","text":""},{"location":"#gold-sponsor","title":"Gold Sponsor","text":""},{"location":"#silver-sponsor","title":"Silver Sponsor","text":""},{"location":"#bronze-sponsor","title":"Bronze Sponsor","text":"

\u30a2\u30b2\u30cf\u30de, Fuyutsubaki, \ud83d\ude0a, \ud83d\udc1d, jacking75, Chris Ohk, qppon, ysaito, \u304a\u304a\u3084\u307e, ShivAlley, lamuda, \ud83c\udf3b, fal_rnd, As Project, IZUNA, \u67cf\u5d0e\u3067\u3043\u3059\u3053, nasatame, sashi, \ud83c\udf36\ufe0f

"},{"location":"articles/acronyms/","title":"C++ \u95a2\u9023\u306e\u7565\u8a9e","text":""},{"location":"articles/acronyms/#abi-application-binary-interface","title":"ABI | Application Binary Interface","text":"

\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u30fb\u30d0\u30a4\u30ca\u30ea\u30fb\u30a4\u30f3\u30bf\u30d5\u30a7\u30fc\u30b9

"},{"location":"articles/acronyms/#accu-association-of-c-and-c-users","title":"ACCU | Association of C and C++ Users","text":"

C \u304a\u3088\u3073 C++ \u30e6\u30fc\u30b6\u5354\u4f1a\u3002\u5e74\u6b21\u30ab\u30f3\u30d5\u30a1\u30ec\u30f3\u30b9 \u306e\u958b\u50ac\u3084\u300cOverload\u300d\u306e\u520a\u884c\u306a\u3069\u3092\u884c\u3046\u3002

"},{"location":"articles/acronyms/#adl-argument-dependent-lookup","title":"ADL | Argument Dependent Lookup","text":"

\u5b9f\u5f15\u6570\u4f9d\u5b58\u306e\u540d\u524d\u691c\u7d22

"},{"location":"articles/acronyms/#ansi-american-national-standards-institute","title":"ANSI | American National Standards Institute","text":"

\u7c73\u56fd\u56fd\u5bb6\u898f\u683c\u5354\u4f1a

"},{"location":"articles/acronyms/#api-application-programming-interface","title":"API | Application Programming Interface","text":"

\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u30fb\u30d7\u30ed\u30b0\u30e9\u30df\u30f3\u30b0\u30fb\u30a4\u30f3\u30bf\u30d5\u30a7\u30fc\u30b9

"},{"location":"articles/acronyms/#asan-addresssanitizer","title":"ASan | AddressSanitizer","text":"

\u30e1\u30e2\u30ea\u95a2\u9023\u306e\u30a8\u30e9\u30fc\u3092\u691c\u51fa\u3059\u308b\u52d5\u7684\u89e3\u6790\u30c4\u30fc\u30eb

"},{"location":"articles/acronyms/#bcc-borland-c-compiler","title":"BCC | Borland C++ Compiler","text":"

\u73fe\u5728\u306e Embarcadero C++ Builder \u306e\u524d\u8eab\u30022000 \u5e74\u306b\u30ea\u30ea\u30fc\u30b9\u3055\u308c\u305f Borland C++ Compiler 5.5 \u306f\u3001\u5f53\u6642\u306f\u3081\u305a\u3089\u3057\u3044\u7121\u511f\u306e C++ \u30b3\u30f3\u30d1\u30a4\u30e9\u3068\u3057\u3066\u3001\u5e83\u304f\u4f7f\u308f\u308c\u305f\u3002

"},{"location":"articles/acronyms/#bcpl-basic-combined-programming-language","title":"BCPL | Basic Combined Programming Language","text":"

1966 \u5e74\u306b\u30de\u30fc\u30c6\u30a3\u30f3\u30fb\u30ea\u30c1\u30e3\u30fc\u30ba\u304c\u8a2d\u8a08\u3057\u305f\u30d7\u30ed\u30b0\u30e9\u30df\u30f3\u30b0\u8a00\u8a9e\u3002C \u8a00\u8a9e\u3084 C++ \u306b\u5f71\u97ff\u3092\u4e0e\u3048\u305f\u3002

"},{"location":"articles/acronyms/#bmi-binary-module-interface","title":"BMI | Binary Module Interface","text":"

\u30b3\u30f3\u30d1\u30a4\u30e9\u304c\u30e2\u30b8\u30e5\u30fc\u30eb\u30d5\u30a1\u30a4\u30eb\u3092\u30b3\u30f3\u30d1\u30a4\u30eb\u3057\u3066\u751f\u6210\u3059\u308b\u4e2d\u9593\u30d5\u30a1\u30a4\u30eb\u3002GCC \u3067\u306f CMI (Compiled Module Interfaces) \u3068\u547c\u3076

"},{"location":"articles/acronyms/#c-amp-c-accelerated-massive-parallelism","title":"C++ AMP | C++ Accelerated Massive Parallelism","text":"

\u30de\u30a4\u30af\u30ed\u30bd\u30d5\u30c8\u306a\u3069\u304c\u958b\u767a\u3092\u9032\u3081\u3066\u3044\u308b\u3001\u4e26\u5217\u8a08\u7b97\u306e\u305f\u3081\u306e\u8a00\u8a9e\u62e1\u5f35\u6a5f\u80fd\u3068\u30e9\u30a4\u30d6\u30e9\u30ea

"},{"location":"articles/acronyms/#cd-committee-draft","title":"CD | Committee Draft","text":"

\u898f\u683c\u306e\u59d4\u54e1\u4f1a\u539f\u6848

"},{"location":"articles/acronyms/#cow-copy-on-write","title":"COW | Copy On Write","text":"

\u30b3\u30d4\u30fc\u30aa\u30f3\u30e9\u30a4\u30c8\u3068\u547c\u3070\u308c\u308b\u6700\u9069\u5316\u30c6\u30af\u30cb\u30c3\u30af

"},{"location":"articles/acronyms/#cpo-customization-point-object","title":"CPO | Customization point object","text":"

C++20 \u4ee5\u964d\u306e\u6a19\u6e96\u30e9\u30a4\u30d6\u30e9\u30ea\u3067\u63d0\u4f9b\u3055\u308c\u308b\u3001\u30ab\u30b9\u30bf\u30de\u30a4\u30bc\u30fc\u30b7\u30e7\u30f3\u30dd\u30a4\u30f3\u30c8\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u3068\u547c\u3070\u308c\u308b\u95a2\u6570\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\uff08\u53c2\u8003\u8a18\u4e8b\uff09

"},{"location":"articles/acronyms/#cpp-c-preprocessor","title":"CPP | C Preprocessor","text":"

\u30de\u30af\u30ed\u3092\u51e6\u7406\u3059\u308b\u30d7\u30ea\u30d7\u30ed\u30bb\u30c3\u30b5

"},{"location":"articles/acronyms/#crtp-curiously-recurring-template-pattern","title":"CRTP | Curiously Recurring Template Pattern","text":"

\u5947\u5999\u306b\u518d\u5e30\u3057\u305f\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8\u30d1\u30bf\u30fc\u30f3

"},{"location":"articles/acronyms/#ctad-class-template-argument-deduction","title":"CTAD | Class Template Argument Deduction","text":"

\u30af\u30e9\u30b9\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8\u306e\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8\u5f15\u6570\u63a8\u8ad6

"},{"location":"articles/acronyms/#ctre-compile-time-regular-expressions","title":"CTRE | Compile Time Regular Expressions","text":"

\u30b3\u30f3\u30d1\u30a4\u30eb\u6642\u6b63\u898f\u8868\u73fe

"},{"location":"articles/acronyms/#cwg-core-working-group","title":"CWG | Core Working Group","text":"

C++ \u6a19\u6e96\u5316\u59d4\u54e1\u4f1a\u306e\u30ef\u30fc\u30ad\u30f3\u30b0\u30b0\u30eb\u30fc\u30d7\u306e 1 \u3064\u3002\u8a00\u8a9e\u6a5f\u80fd\u306b\u95a2\u3059\u308b\u898f\u683c\u6587\u9762\u3092\u30ec\u30d3\u30e5\u30fc\u3059\u308b\u3002

"},{"location":"articles/acronyms/#deque-double-ended-queue","title":"deque | double-ended queue","text":"

\u4e21\u7aef\u30ad\u30e5\u30fc

"},{"location":"articles/acronyms/#de-the-design-and-evolution-of-c","title":"D&E | The Design and Evolution of C++","text":"

Bjarne Stroustrup \u306b\u3088\u308b C++ \u306e\u8a2d\u8a08\u3068\u6b74\u53f2\u306e\u89e3\u8aac\u66f8\u30021994 \u5e74\u306b\u767a\u58f2\u3002

"},{"location":"articles/acronyms/#dis-draft-international-standard","title":"DIS | Draft International Standard","text":"

\u56fd\u969b\u898f\u683c\u6848

"},{"location":"articles/acronyms/#dr-defect-report","title":"DR | Defect Report","text":"

\u898f\u683c\u306e\u6b20\u9665\u306e\u5831\u544a

"},{"location":"articles/acronyms/#ebo-empty-base-optimization","title":"EBO | Empty Base Optimization","text":"

\u7a7a\u306e\u57fa\u5e95\u30af\u30e9\u30b9\u306e\u6700\u9069\u5316

"},{"location":"articles/acronyms/#edg-edison-design-group","title":"EDG | Edison Design Group","text":"

\u4f01\u696d\u540d\u3002C/C++ \u30b3\u30f3\u30d1\u30a4\u30e9\u30d5\u30ed\u30f3\u30c8\u30a8\u30f3\u30c9\u3092\u958b\u767a\u3059\u308b\u3002Edison Design Group

"},{"location":"articles/acronyms/#emc-effective-modern-c","title":"EMC++ | Effective Modern C++","text":"

Scott Meyers \u306b\u3088\u308b C++11/14 \u306e\u89e3\u8aac\u66f8

"},{"location":"articles/acronyms/#eof-end-of-file","title":"EOF | End-of-File","text":"

\u30d5\u30a1\u30a4\u30eb\u306e\u7d42\u7aef

"},{"location":"articles/acronyms/#ewg-evolution-working-group","title":"EWG | Evolution Working Group","text":"

C++ \u6a19\u6e96\u5316\u59d4\u54e1\u4f1a\u306e\u30ef\u30fc\u30ad\u30f3\u30b0\u30b0\u30eb\u30fc\u30d7\u306e 1 \u3064\u3002\u8a00\u8a9e\u6a5f\u80fd\u306e\u8a2d\u8a08\u3092\u3059\u308b\u3002

"},{"location":"articles/acronyms/#ewgi-evolution-working-group-incubator","title":"EWGI | Evolution Working Group Incubator","text":"

C++ \u6a19\u6e96\u5316\u59d4\u54e1\u4f1a\u306e\u30b9\u30bf\u30c7\u30a3\u30b0\u30eb\u30fc\u30d7\u306e 1 \u3064 (SG17). EWG \u306b\u5411\u3051\u305f\u63d0\u6848\u306e\u8a55\u4fa1\u3092\u3059\u308b\u3002

"},{"location":"articles/acronyms/#fcd-final-committee-draft","title":"FCD | Final Committee Draft","text":"

\u898f\u683c\u306e\u6700\u7d42\u59d4\u54e1\u4f1a\u539f\u6848

"},{"location":"articles/acronyms/#fdis-final-draft-international-standard","title":"FDIS | Final Draft International Standard","text":"

\u6700\u7d42\u56fd\u969b\u898f\u683c\u6848

"},{"location":"articles/acronyms/#fifo-first-in-first-out","title":"FIFO | First in, first out","text":"

std::queue \u306e\u3088\u3046\u306b\u3001\u6700\u521d\u306b\u8ffd\u52a0\u3057\u305f\u8981\u7d20\u304b\u3089\u9806\u756a\u306b\u53d6\u308a\u51fa\u3057\u3066\u3044\u304f\u30c7\u30fc\u30bf\u69cb\u9020\u3084\u624b\u9806

"},{"location":"articles/acronyms/#gcc-gnu-compiler-collection-gnu-c-compiler","title":"GCC | GNU Compiler Collection / GNU C++ Compiler","text":"

GNU \u30b3\u30f3\u30d1\u30a4\u30e9\u30b3\u30ec\u30af\u30b7\u30e7\u30f3\u3001\u307e\u305f\u306f\u305d\u306e C++ \u30b3\u30f3\u30d1\u30a4\u30e9

"},{"location":"articles/acronyms/#gmf-global-module-fragment","title":"GMF | Global Module Fragment","text":"

\u30b0\u30ed\u30fc\u30d0\u30eb\u30e2\u30b8\u30e5\u30fc\u30eb\u30d5\u30e9\u30b0\u30e1\u30f3\u30c8

"},{"location":"articles/acronyms/#g-gnu-c-compiler","title":"G++ | GNU C++ Compiler","text":"

GNU \u30b3\u30f3\u30d1\u30a4\u30e9\u30b3\u30ec\u30af\u30b7\u30e7\u30f3\u306e C++ \u30b3\u30f3\u30d1\u30a4\u30e9

"},{"location":"articles/acronyms/#ice-internal-compiler-error","title":"ICE | Internal Compiler Error","text":"

\u30b3\u30f3\u30d1\u30a4\u30e9\u5185\u90e8\u30a8\u30e9\u30fc

"},{"location":"articles/acronyms/#ide-integrated-development-enviornment","title":"IDE | Integrated Development Enviornment","text":"

\u7d71\u5408\u958b\u767a\u74b0\u5883

"},{"location":"articles/acronyms/#iec-international-electronics-commission","title":"IEC | International Electronics Commission","text":"

\u56fd\u969b\u96fb\u6c17\u6a19\u6e96\u4f1a\u8b70

"},{"location":"articles/acronyms/#io-inputoutput","title":"I/O | Input/Output","text":"

\u5165\u51fa\u529b

"},{"location":"articles/acronyms/#is-international-standard","title":"IS | International Standard","text":"

\u56fd\u969b\u898f\u683c

"},{"location":"articles/acronyms/#iso-international-organization-for-standardization","title":"ISO | International Organization for Standardization","text":"

\u56fd\u969b\u6a19\u6e96\u5316\u6a5f\u69cb

"},{"location":"articles/acronyms/#kr-kernighan-and-ritchies","title":"K&R | Kernighan and Ritchie's","text":"

\u30d6\u30e9\u30a4\u30a2\u30f3\u30fb\u30ab\u30fc\u30cb\u30cf\u30f3\u3068\u30c7\u30cb\u30b9\u30fb\u30ea\u30c3\u30c1\u30fc\u306b\u3088\u308b\u8457\u66f8\u300c\u30d7\u30ed\u30b0\u30e9\u30df\u30f3\u30b0\u8a00\u8a9e C\u300d\u306e\u4fd7\u79f0\u3002\u66f8\u4e2d\u3067\u4f7f\u308f\u308c\u3066\u3044\u308b\u5b57\u4e0b\u3052\u30b9\u30bf\u30a4\u30eb\u304c\u300cK&R \u30b9\u30bf\u30a4\u30eb\u300d\u3068\u547c\u3070\u308c\u308b\u3002

"},{"location":"articles/acronyms/#lewg-library-evolution-working-group","title":"LEWG | Library Evolution Working Group","text":"

C++ \u6a19\u6e96\u5316\u59d4\u54e1\u4f1a\u306e\u30ef\u30fc\u30ad\u30f3\u30b0\u30b0\u30eb\u30fc\u30d7\u306e 1 \u3064\u3002\u6a19\u6e96\u30e9\u30a4\u30d6\u30e9\u30ea\u306e\u8a2d\u8a08\u3092\u3059\u308b\u3002

"},{"location":"articles/acronyms/#lewgi-library-evolution-working-group-incubator","title":"LEWGI | Library Evolution Working Group Incubator","text":"

C++ \u6a19\u6e96\u5316\u59d4\u54e1\u4f1a\u306e\u30b9\u30bf\u30c7\u30a3\u30b0\u30eb\u30fc\u30d7\u306e 1 \u3064 (SG18). LEWG \u306b\u5411\u3051\u305f\u63d0\u6848\u306e\u8a55\u4fa1\u3092\u3059\u308b\u3002

"},{"location":"articles/acronyms/#lhs-left-hand-side","title":"LHS | left-hand side","text":"

\u5f0f\u306e\u5de6\u8fba

"},{"location":"articles/acronyms/#lifo-last-in-first-out","title":"LIFO | Last-in, first-out","text":"

std::stack \u306e\u3088\u3046\u306b\u3001\u6700\u3082\u65b0\u3057\u304f\u8ffd\u52a0\u3055\u308c\u305f\u8981\u7d20\u304b\u3089\u3001\u5165\u308c\u305f\u306e\u3068\u306f\u9006\u9806\u3067\u53d6\u308a\u51fa\u3057\u3066\u3044\u304f\u30c7\u30fc\u30bf\u69cb\u9020\u3084\u624b\u9806

"},{"location":"articles/acronyms/#lto-link-time-optimization","title":"LTO | Link Time Optimization","text":"

\u30ea\u30f3\u30af\u6642\u6700\u9069\u5316

"},{"location":"articles/acronyms/#lwg-library-working-group","title":"LWG | Library Working Group","text":"

C++ \u6a19\u6e96\u5316\u59d4\u54e1\u4f1a\u306e\u30ef\u30fc\u30ad\u30f3\u30b0\u30b0\u30eb\u30fc\u30d7\u306e 1 \u3064\u3002\u6a19\u6e96\u30e9\u30a4\u30d6\u30e9\u30ea\u306b\u95a2\u3059\u308b\u898f\u683c\u6587\u9762\u3092\u30ec\u30d3\u30e5\u30fc\u3059\u308b\u3002

"},{"location":"articles/acronyms/#msvc-microsoft-visual-c","title":"MSVC | Microsoft Visual C++","text":"

Microsoft Visual Studio \u306e C++ \u30b3\u30f3\u30d1\u30a4\u30e9

"},{"location":"articles/acronyms/#nan-not-a-number","title":"NaN | Not a Number","text":"

\u6d6e\u52d5\u5c0f\u6570\u70b9\u6570\u3067\u4f7f\u308f\u308c\u308b\u975e\u6570\u306e\u8868\u73fe

"},{"location":"articles/acronyms/#nb-national-body","title":"NB | National Body","text":"

\u6a19\u6e96\u5316\u59d4\u54e1\u4f1a\u306e\u5404\u56fd\u652f\u90e8

"},{"location":"articles/acronyms/#ndr-no-diagnostic-required","title":"NDR | No Diagnostic Required","text":"

C++ \u306e\u8a00\u8a9e\u4ed5\u69d8\u306b\u306f\u6cbf\u3063\u3066\u3044\u306a\u3044\u304c\u3001\u30b3\u30f3\u30d1\u30a4\u30eb\u6642\u9593\u306e\u77ed\u7e2e\u306e\u305f\u3081\u306b\u30b3\u30f3\u30d1\u30a4\u30e9\u306f\u30e1\u30c3\u30bb\u30fc\u30b8\u3092\u51fa\u529b\u3057\u306a\u304f\u3066\u3082\u3088\u3044\u3068\u3055\u308c\u3066\u3044\u308b\u9055\u53cd

"},{"location":"articles/acronyms/#nrvo-named-return-value-optimization","title":"NRVO | Named Return Value Optimization","text":"

\u540d\u524d\u4ed8\u304d\u623b\u308a\u5024\u306e\u6700\u9069\u5316

"},{"location":"articles/acronyms/#nsdmi-non-static-data-member-initializers","title":"NSDMI | Non-Static Data Member Initializers","text":"

\u975e\u9759\u7684\u30e1\u30f3\u30d0\u306e\u521d\u671f\u5316

"},{"location":"articles/acronyms/#ntbs-null-terminated-byte-strings","title":"NTBS | Null-terminated Byte Strings","text":"

\u30cc\u30eb\u6587\u5b57\u3067\u7d42\u4e86\u3059\u308b\u3001\u5404\u6587\u5b57\u304c 1 \u30d0\u30a4\u30c8\u3067\u8868\u73fe\u3055\u308c\u308b\u6587\u5b57\u914d\u5217

"},{"location":"articles/acronyms/#ntmbs-null-terminated-multibyte-strings","title":"NTMBS | Null-terminated Multibyte Strings","text":"

\u30cc\u30eb\u6587\u5b57\u3067\u7d42\u4e86\u3059\u308b\u3001\u5404\u6587\u5b57\u304c\u30de\u30eb\u30c1\u30d0\u30a4\u30c8\u3067\u8868\u73fe\u3055\u308c\u308b\u3053\u3068\u304c\u3042\u308b\u6587\u5b57\u914d\u5217

"},{"location":"articles/acronyms/#nttp-non-type-template-parameter","title":"NTTP | Non-Type Template Parameter","text":"

\u975e\u578b\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8\u30fb\u30d1\u30e9\u30e1\u30fc\u30bf

"},{"location":"articles/acronyms/#nvi-non-virtual-interface","title":"NVI | Non-Virtual Interface","text":"

\u975e\u4eee\u60f3\u30a4\u30f3\u30bf\u30fc\u30d5\u30a7\u30fc\u30b9\u3002C++ \u306e\u30d7\u30ed\u30b0\u30e9\u30df\u30f3\u30b0\u30c6\u30af\u30cb\u30c3\u30af

"},{"location":"articles/acronyms/#odr-one-definition-rule","title":"ODR | One Definition Rule","text":"

C++ \u306e\u8a2d\u8a08\u30b3\u30f3\u30bb\u30d7\u30c8\u306e 1 \u3064\u3002\u3042\u3089\u3086\u308b\u578b\u3084\u95a2\u6570\u3001\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8\u306f\u8907\u6570\u306e\u5b9a\u7fa9\u3092\u6301\u3066\u306a\u3044\u3068\u3044\u3046\u30eb\u30fc\u30eb

"},{"location":"articles/acronyms/#ood-object-oriented-design","title":"OOD | Object Oriented Design","text":"

\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u6307\u5411\u8a2d\u8a08

"},{"location":"articles/acronyms/#oop-object-oriented-programming","title":"OOP | Object Oriented Programming","text":"

\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u6307\u5411\u30d7\u30ed\u30b0\u30e9\u30df\u30f3\u30b0

"},{"location":"articles/acronyms/#oopl-object-oriented-programing-language","title":"OOPL | Object Oriented Programing Language","text":"

\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u6307\u5411\u30d7\u30ed\u30b0\u30e9\u30df\u30f3\u30b0\u8a00\u8a9e

"},{"location":"articles/acronyms/#pch-precompiled-header","title":"PCH | Precompiled Header","text":"

\u30d7\u30ea\u30b3\u30f3\u30d1\u30a4\u30eb\u6e08\u307f\u30d8\u30c3\u30c0

"},{"location":"articles/acronyms/#pgo-profile-guided-optimization","title":"PGO | Profile-guided Optimization","text":"

\u30d7\u30ed\u30d5\u30a1\u30a4\u30ea\u30f3\u30b0\u306b\u3088\u308b\u6700\u9069\u5316

"},{"location":"articles/acronyms/#pimpl-pointer-to-implementation","title":"PImpl | Pointer to Implementation","text":"

\u30af\u30e9\u30b9\u306e\u5b9f\u88c5\u306e\u8a73\u7d30\u3092\u96a0\u3059\u3001C++ \u306e\u30d7\u30ed\u30b0\u30e9\u30df\u30f3\u30b0\u30c6\u30af\u30cb\u30c3\u30af

"},{"location":"articles/acronyms/#pmf-pointer-to-member-function","title":"PMF | Pointer to Member Function","text":"

\u30e1\u30f3\u30d0\u95a2\u6570\u3078\u306e\u30dd\u30a4\u30f3\u30bf

"},{"location":"articles/acronyms/#pod-plain-old-data","title":"POD | Plain Old Data","text":"

C \u8a00\u8a9e\u3068\u4e92\u63db\u6027\u306e\u3042\u308b\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u30ec\u30a4\u30a2\u30a6\u30c8\u3092\u6301\u3064\u578b

"},{"location":"articles/acronyms/#raii-resource-allocation-is-initialization","title":"RAII | Resource Allocation Is Initialization","text":"

\u300c\u30ea\u30bd\u30fc\u30b9\u53d6\u5f97\u306f\u521d\u671f\u5316\u3067\u3042\u308b\u300d\u3068\u3044\u3046 C++ \u306e\u30d7\u30ed\u30b0\u30e9\u30df\u30f3\u30b0\u30c6\u30af\u30cb\u30c3\u30af

"},{"location":"articles/acronyms/#rhs-right-hand-side","title":"RHS | right-hand side","text":"

\u5f0f\u306e\u53f3\u8fba

"},{"location":"articles/acronyms/#rtti-run-time-type-information","title":"RTTI | Run-Time Type Information","text":"

\u5b9f\u884c\u6642\u578b\u60c5\u5831

"},{"location":"articles/acronyms/#rvo-return-value-optimization","title":"RVO | Return Value Optimization","text":"

\u623b\u308a\u5024\u306e\u6700\u9069\u5316

"},{"location":"articles/acronyms/#sbo-small-buffer-optimization","title":"SBO | Small Buffer Optimization","text":"

\u5c0f\u3055\u3044\u52d5\u7684\u914d\u5217\u3067\u306e\u30e1\u30e2\u30ea\u30a2\u30ed\u30b1\u30fc\u30b7\u30e7\u30f3\u3092\u907f\u3051\u308b C++ \u306e\u6700\u9069\u5316\u30c6\u30af\u30cb\u30c3\u30af

"},{"location":"articles/acronyms/#sd-standing-document","title":"SD | Standing Document","text":"

\u6a19\u6e96\u5316\u59d4\u54e1\u4f1a\u306e\u5e38\u5099\u6587\u66f8 (https://isocpp.org/std/standing-documents)

"},{"location":"articles/acronyms/#seh-structured-exception-handling","title":"SEH | Structured Exception Handling","text":"

\u69cb\u9020\u5316\u4f8b\u5916\u51e6\u7406\u3002Windows \u3067\u4f7f\u308f\u308c\u308b\u72ec\u81ea\u306e\u4f8b\u5916\u51e6\u7406\u3002

"},{"location":"articles/acronyms/#sfinae-substitution-failure-is-not-an-error","title":"SFINAE | Substitution Failure Is Not An Error","text":"

\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8\u30d7\u30ed\u30b0\u30e9\u30df\u30f3\u30b0\u306e\u30c6\u30af\u30cb\u30c3\u30af\u306e 1 \u3064

"},{"location":"articles/acronyms/#sg-study-group","title":"SG | Study Group","text":"

\u7279\u5b9a\u306e\u30c6\u30fc\u30de\u306b\u3064\u3044\u3066\u8b70\u8ad6\u3059\u308b\u3001C++ \u6a19\u6e96\u5316\u59d4\u54e1\u4f1a\u306e\u30b5\u30d6\u30b0\u30eb\u30fc\u30d7

"},{"location":"articles/acronyms/#simd-single-instruction-multiple-data","title":"SIMD | Single Instruction Multiple Data","text":"

\u4e26\u5217\u51e6\u7406\u306e\u5206\u985e\u306e 1 \u3064\u3067\u30011 \u3064\u306e\u547d\u4ee4\u306b\u3088\u308b\u64cd\u4f5c\u3092\u8907\u6570\u306e\u30c7\u30fc\u30bf\u306b\u5bfe\u3057\u3066\u540c\u6642\u306b\u884c\u3046\u3082\u306e

"},{"location":"articles/acronyms/#soo-small-object-optimization","title":"SOO | Small Object Optimization","text":"

\u5c0f\u3055\u306a\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u306b\u5bfe\u3059\u308b\u30e1\u30e2\u30ea\u30a2\u30ed\u30b1\u30fc\u30b7\u30e7\u30f3\u3092\u907f\u3051\u308b C++ \u306e\u6700\u9069\u5316\u30c6\u30af\u30cb\u30c3\u30af

"},{"location":"articles/acronyms/#sso-small-string-optimization","title":"SSO | Small String Optimization","text":"

\u77ed\u3044\u6587\u5b57\u5217\u3067\u306e\u30e1\u30e2\u30ea\u30a2\u30ed\u30b1\u30fc\u30b7\u30e7\u30f3\u3092\u907f\u3051\u308b C++ \u306e\u6700\u9069\u5316\u30c6\u30af\u30cb\u30c3\u30af

"},{"location":"articles/acronyms/#stl-standard-template-library","title":"STL | Standard Template Library","text":"

\u30a2\u30ec\u30af\u30b5\u30f3\u30c0\u30fc\u30fb\u30b9\u30c6\u30d1\u30ce\u30d5\u3089\u306b\u3088\u3063\u3066\u8a2d\u8a08\u3055\u308c\u305f\u6a19\u6e96\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8\u30e9\u30a4\u30d6\u30e9\u30ea\u3002\u306e\u3061\u306b C++ \u306e\u6a19\u6e96\u30e9\u30a4\u30d6\u30e9\u30ea\u306e\u4e00\u90e8\u3068\u306a\u3063\u305f\u3002\u73fe\u5728\u3067\u306f C++ \u6a19\u6e96\u30e9\u30a4\u30d6\u30e9\u30ea\u5168\u822c\u3092\u6307\u3057\u3066 STL \u3068\u547c\u3076\u3053\u3068\u3082\u3042\u308b\u3002

"},{"location":"articles/acronyms/#t-type","title":"T | Type","text":"

template <class T> \u306e\u3088\u3046\u306b\u3001\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8\u5f15\u6570\u3067\u3088\u304f\u4f7f\u308f\u308c\u308b\u540d\u524d\u3002\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8\u5f15\u6570\u304c\u3055\u3089\u306b\u767b\u5834\u3059\u308b\u5834\u5408\u306b\u306f\u3001\u30a2\u30eb\u30d5\u30a1\u30d9\u30c3\u30c8\u9806\u3067\u6b21\u306b\u6765\u308b U \u304c\u4f7f\u308f\u308c\u308b\u3053\u3068\u304c\u3042\u308b\u3002

"},{"location":"articles/acronyms/#tcpl-the-c-programming-language","title":"TC++PL | The C++ Programming Language","text":"

Bjarne Stroustrup \u306b\u3088\u308b C++ \u89e3\u8aac\u66f8\u30b7\u30ea\u30fc\u30ba\u306e 1 \u3064\u3002\u30d7\u30ed\u30b0\u30e9\u30de\u5411\u3051\u30022013 \u5e74\u306e\u7b2c 4 \u7248\u304c\u6700\u65b0\u3002

"},{"location":"articles/acronyms/#tls-thread-local-storage","title":"TLS | Thread Local Storage","text":"

\u30b9\u30ec\u30c3\u30c9\u5c40\u6240\u8a18\u61b6

"},{"location":"articles/acronyms/#tmp-template-meta-programming","title":"TMP | Template Meta Programming","text":"

\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8\u30e1\u30bf\u30d7\u30ed\u30b0\u30e9\u30df\u30f3\u30b0

"},{"location":"articles/acronyms/#tr-technical-report","title":"TR | Technical Report","text":"

\u5b9f\u9a13\u7684\u306a C++ \u306e\u6a5f\u80fd\u306b\u95a2\u3059\u308b\u5831\u544a\u66f8\u3001\u73fe\u5728\u306f TS \u306b\u79fb\u884c

"},{"location":"articles/acronyms/#ts-technical-specification","title":"TS | Technical Specification","text":"

\u5b9f\u9a13\u7684\u306a C++ \u306e\u6a5f\u80fd\u306b\u95a2\u3059\u308b\u4ed5\u69d8\u66f8

"},{"location":"articles/acronyms/#tu-translation-unit","title":"TU | Translation Unit","text":"

\u7ffb\u8a33\u5358\u4f4d

"},{"location":"articles/acronyms/#ub-undefined-behavior","title":"UB | Undefined Behavior","text":"

\u672a\u5b9a\u7fa9\u52d5\u4f5c

"},{"location":"articles/acronyms/#ucn-universal-character-name","title":"UCN | Universal Character Name","text":"

\u30e6\u30cb\u30d0\u30fc\u30b5\u30eb\u6587\u5b57\u540d\u3002char32_t s = U'\\U0001F60E'; \u306e\u3088\u3046\u306b\u3001\u6587\u5b57\u30fb\u6587\u5b57\u5217\u30ea\u30c6\u30e9\u30eb\u306b\u304a\u3044\u3066 Unicode \u30b3\u30fc\u30c9\u30dd\u30a4\u30f3\u30c8\u306b\u3088\u308a\u8868\u3055\u308c\u305f\u6587\u5b57

"},{"location":"articles/acronyms/#udl-user-defined-literals","title":"UDL | User-Defined Literals","text":"

\u30e6\u30fc\u30b6\u5b9a\u7fa9\u30ea\u30c6\u30e9\u30eb

"},{"location":"articles/acronyms/#urbg-uniform-random-bit-generator","title":"URBG | Uniform Random Bit Generator","text":"

\u4e00\u69d8\u30e9\u30f3\u30c0\u30e0\u30d3\u30c3\u30c8\u751f\u6210\u5668\u3002C++14 \u307e\u3067\u306f URNG (Uniform Random Number Generator) \u3068\u3044\u3046\u8a9e\u3092\u4f7f\u7528\u3057\u3066\u3044\u305f\u3002

"},{"location":"articles/acronyms/#vla-variable-length-array","title":"VLA | Variable Length Array","text":"

\u53ef\u5909\u9577\u914d\u5217\u3002GCC \u304c\u62e1\u5f35\u6a5f\u80fd\u3068\u3057\u3066\u30b5\u30dd\u30fc\u30c8\u3057\u3001C99 \u3067\u306f\u6b63\u5f0f\u306b\u63a1\u7528\u3055\u308c\u3066\u3044\u308b\u304c\u3001C++ \u6a19\u6e96\u3067\u306f\u30b5\u30dd\u30fc\u30c8\u3057\u306a\u3044\u3002

"},{"location":"articles/acronyms/#vlais-variable-length-array-in-structure","title":"VLAIS | Variable Length Array In Structure","text":"

\u69cb\u9020\u4f53\u5185\u306b\u53ef\u5909\u9577\u914d\u5217\u3092\u5ba3\u8a00\u3067\u304d\u308b\u3001GCC \u306e\u62e1\u5f35\u6a5f\u80fd

"},{"location":"articles/acronyms/#vmt-virtual-method-table","title":"VMT | Virtual Method Table","text":"

\u4eee\u60f3\u95a2\u6570\u30c6\u30fc\u30d6\u30eb

"},{"location":"articles/acronyms/#wd-working-draft","title":"WD | Working Draft","text":"

\u898f\u683c\u306e\u4f5c\u696d\u539f\u6848

"},{"location":"articles/acronyms/#wg-working-group","title":"WG | Working Group","text":"

\u4f5c\u696d\u30b0\u30eb\u30fc\u30d7

"},{"location":"articles/acronyms/#_1","title":"\u53c2\u8003\u6587\u732e","text":""},{"location":"articles/comment-tricks/","title":"\u30b3\u30e1\u30f3\u30c8\u30a2\u30a6\u30c8\u306e\u30c8\u30ea\u30c3\u30af","text":"

\u30d7\u30ed\u30b0\u30e9\u30e0\u3067\u4f7f\u3048\u308b\u30b3\u30e1\u30f3\u30c8\u30a2\u30a6\u30c8\u306e\u30c8\u30ea\u30c3\u30af\u3092\u7d39\u4ecb\u3057\u307e\u3059\u3002 \u958b\u767a\u4e2d\u306e\u3061\u3087\u3063\u3068\u3057\u305f\u30c7\u30d0\u30c3\u30b0\u3084\u3001\u30df\u30b9\u306e\u9632\u6b62\u306b\u6d3b\u7528\u3067\u304d\u307e\u3059\u3002

"},{"location":"articles/comment-tricks/#onoff","title":"\u7bc4\u56f2\u306e ON\u30fbOFF","text":"

\u30b9\u30e9\u30c3\u30b7\u30e5 / \u306e\u6709\u7121\u306b\u5fdc\u3058\u3066\u3001\u7bc4\u56f2\u30b3\u30e1\u30f3\u30c8\u306e\u6709\u52b9\u30fb\u7121\u52b9\u3092\u5207\u308a\u66ff\u3048\u307e\u3059\u3002

"},{"location":"articles/comment-tricks/#1","title":"\u30d1\u30bf\u30fc\u30f3 1","text":"\u7121\u52b9\u6709\u52b9
#include <iostream>\n\nint main()\n{\n    /**/\n    int x;\n\n    std::cin >> x;\n\n    std::cout << x * x;\n    /**/\n}\n
#include <iostream>\n\nint main()\n{\n    /**\n    int x;\n\n    std::cin >> x;\n\n    std::cout << x * x;\n    /**/\n}\n
"},{"location":"articles/comment-tricks/#2","title":"\u30d1\u30bf\u30fc\u30f3 2","text":"\u7121\u52b9\u6709\u52b9
#include <iostream>\n\nint main()\n{\n    //*\n    int x;\n\n    std::cin >> x;\n\n    std::cout << x * x;\n    //*/\n}\n
#include <iostream>\n\nint main()\n{\n    /*\n    int x;\n\n    std::cin >> x;\n\n    std::cout << x * x;\n    //*/\n}\n
"},{"location":"articles/comment-tricks/#_2","title":"\u5024\u306e\u5207\u308a\u66ff\u3048","text":"

\u30b9\u30e9\u30c3\u30b7\u30e5 / \u306e\u6709\u7121\u306b\u5fdc\u3058\u3066\u3001\u5de6\u53f3\u3069\u3061\u3089\u304b\u306e\u5024\u3092\u9078\u629e\u3057\u307e\u3059\u3002

\u5de6\u53f3
#include <iostream>\n\nint main()\n{\n    constexpr int N = /**/ 100 /*/ 200 /**/;\n\n    std::cout << N << '\\n';\n}\n
#include <iostream>\n\nint main()\n{\n    constexpr int N = /** 100 /*/ 200 /**/;\n\n    std::cout << N << '\\n';\n}\n
"},{"location":"articles/comment-tricks/#_3","title":"\u7bc4\u56f2\u306e\u5207\u308a\u66ff\u3048","text":"

\u5024\u306e\u5207\u308a\u66ff\u3048\u306e\u7bc4\u56f2\u7248\u3067\u3059\u3002 \u30b9\u30e9\u30c3\u30b7\u30e5 / \u306e\u6709\u7121\u306b\u5fdc\u3058\u3066\u3001\u524d\u534a\u3001\u5f8c\u534a\u3069\u3061\u3089\u304b\u306e\u7bc4\u56f2\u3092\u9078\u629e\u3057\u307e\u3059\u3002

"},{"location":"articles/comment-tricks/#1_1","title":"\u30d1\u30bf\u30fc\u30f3 1","text":"\u524d\u534a\u5f8c\u534a
#include <iostream>\n\nint main()\n{\n    /**/\n    int x;\n\n    std::cin >> x;\n\n    std::cout << x * x;\n    /*/\n    int x, y;\n\n    std::cin >> x >> y;\n\n    std::cout << x + y;\n    /**/\n}\n
#include <iostream>\n\nint main()\n{\n    /**\n    int x;\n\n    std::cin >> x;\n\n    std::cout << x * x;\n    /*/\n    int x, y;\n\n    std::cin >> x >> y;\n\n    std::cout << x + y;\n    /**/\n}\n
"},{"location":"articles/comment-tricks/#2_1","title":"\u30d1\u30bf\u30fc\u30f3 2","text":"\u524d\u534a\u5f8c\u534a
#include <iostream>\n\nint main()\n{\n    //*\n    int x;\n\n    std::cin >> x;\n\n    std::cout << x * x;\n    /*/\n    int x, y;\n\n    std::cin >> x >> y;\n\n    std::cout << x + y;\n    //*/\n}\n
#include <iostream>\n\nint main()\n{\n    /*\n    int x;\n\n    std::cin >> x;\n\n    std::cout << x * x;\n    /*/\n    int x, y;\n\n    std::cin >> x >> y;\n\n    std::cout << x + y;\n    //*/\n}\n
"},{"location":"articles/comment-tricks/#_4","title":"\u884c\u306e\u5165\u308c\u66ff\u3048\u306e\u9632\u6b62","text":"

\u30ea\u30d5\u30a1\u30af\u30bf\u30ea\u30f3\u30b0\u6642\u306b\u3001\u30b3\u30d4\u30fc\uff06\u30da\u30fc\u30b9\u30c8\u3067\u884c\u306e\u9806\u756a\u3092\u5165\u308c\u66ff\u3048\u3066\u3057\u307e\u3046\u3053\u3068\u3092\u9632\u304e\u307e\u3059\u3002

\u5143\u306e\u30b3\u30fc\u30c9\u5165\u308c\u66ff\u3048\u308b\u3068\u30a8\u30e9\u30fc
void First() {}\nvoid Second() {}\n\nint main()\n{\n    First();/*\n    */Second();\n}\n
void First() {}\nvoid Second() {}\n\nint main()\n{\n    */ Second();\n    First();/*  \n}\n
"},{"location":"articles/how-to-read-keywords/","title":"\u4e88\u7d04\u8a9e\u306e\u8aad\u307f\u65b9\u3068\u540d\u524d\u306e\u7531\u6765","text":"

C++ \u306e\u4e88\u7d04\u8a9e\u306e\u8aad\u307f\u3068\u540d\u524d\u306e\u7531\u6765\u3067\u3059\u3002

\u30ad\u30fc\u30ef\u30fc\u30c9 \u8aad\u307f \u540d\u524d\u306e\u7531\u6765 alignas \u30a2\u30e9\u30a4\u30f3\u30a2\u30ba \uff5e\u3068\u3057\u3066\u914d\u7f6e\u3059\u308b alignof \u30a2\u30e9\u30a4\u30f3\u30aa\u30d6 \uff5e\u306e\u914d\u7f6e\u306e\u3055\u308c\u65b9 and \u30a2\u30f3\u30c9 && \u306e\u7f6e\u304d\u63db\u3048 and_eq \u30a2\u30f3\u30c9\u30fb\u30a4\u30b3\u30fc\u30eb &= \u306e\u7f6e\u304d\u63db\u3048 asm \u30a2\u30bb\u30e0/\u30a2\u30bb\u30f3\u30d6\u30ea \u30a2\u30bb\u30f3\u30d6\u30ea (assembly) \u306e\u7565 auto \u30aa\u30fc\u30c8 \u81ea\u52d5 bitand \u30d3\u30c3\u30c8\u30a2\u30f3\u30c9 & \u306e\u7f6e\u304d\u63db\u3048 bitor \u30d3\u30c3\u30c8\u30aa\u30a2 | \u306e\u7f6e\u304d\u63db\u3048 bool \u30d6\u30fc\u30eb/\u30d6\u30fc\u30ea\u30a2\u30f3 \u30d6\u30fc\u30ea\u30a2\u30f3 (boolean) \u306e\u7565 break \u30d6\u30ec\u30fc\u30af \u4e2d\u65ad case \u30b1\u30fc\u30b9 \u5834\u5408 catch \u30ad\u30e3\u30c3\u30c1 \u6355\u307e\u3048\u308b char \u30c1\u30e3\u30fc/\u30ad\u30e3\u30e9/\u30ad\u30e3\u30e9\u30af\u30bf\u30fc \u6587\u5b57 (character) \u306e\u7565 char8_t \u30c1\u30e3\u30fc 8 \u30c6\u30a3\u30fc/\u30ad\u30e3\u30e9 8 \u30c6\u30a3\u30fc UTF-8 \u6587\u5b57 (character) \u578b (type) \u306e\u7565 char16_t \u30c1\u30e3\u30fc 16 \u30c6\u30a3\u30fc/\u30ad\u30e3\u30e9 16 \u30c6\u30a3\u30fc UTF-16 \u6587\u5b57 (character) \u578b (type) \u306e\u7565 char32_t \u30c1\u30e3\u30fc 32 \u30c6\u30a3\u30fc/\u30ad\u30e3\u30e9 32 \u30c6\u30a3\u30fc UTF-32 \u6587\u5b57 (character) \u578b (type) \u306e\u7565 class \u30af\u30e9\u30b9 \u90e8\u985e compl \u30b3\u30f3\u30d7\u30eb/\u30b3\u30f3\u30d7\u30ea\u30e1\u30f3\u30c8 \u88dc\u6570 concept \u30b3\u30f3\u30bb\u30d7\u30c8 \u30b3\u30f3\u30bb\u30d7\u30c8\u3002\u8981\u4ef6\u306e\u96c6\u5408 const \u30b3\u30f3\u30b9\u30c8 \u5b9a\u6570 (constant) \u306e\u7565 consteval \u30b3\u30f3\u30b9\u30c8\u30a4\u30fc\u30d0\u30eb/\u30b3\u30f3\u30b9\u30c8\u30a8\u30d0\u30eb \u5b9a\u6570 (constant) \u8a55\u4fa1 (evaluation) constexpr \u30b3\u30f3\u30b9\u30c8\u30a8\u30af\u30b9\u30d7\u30ec\u30c3\u30b7\u30e7\u30f3/\u30b3\u30f3\u30b9\u30c8\u30a8\u30af\u30b9\u30d1\u30fc \u5b9a\u6570 (constant) \u5f0f (expression) const_cast \u30b3\u30f3\u30b9\u30c8\u30fb\u30ad\u30e3\u30b9\u30c8 \u5b9a\u6570\u6027\u306e\u5909\u63db continue \u30b3\u30f3\u30c6\u30a3\u30cb\u30e5\u30fc \u30b9\u30ad\u30c3\u30d7\u3059\u308b co_await \u30b3\u30fb\u30a2\u30a6\u30a7\u30a4\u30c8 \u30b3\u30eb\u30fc\u30c1\u30f3 + \u5f85\u3064 co_return \u30b3\u30fb\u30ea\u30bf\u30fc\u30f3 \u30b3\u30eb\u30fc\u30c1\u30f3 + \u8fd4\u308b co_yield \u30b3\u30fb\u30a4\u30fc\u30eb\u30c9 \u30b3\u30eb\u30fc\u30c1\u30f3 + \u8b72\u308b decltype \u30c7\u30af\u30eb\u30bf\u30a4\u30d7 \u5ba3\u8a00 (declaration)+ \u578b (type) default \u30c7\u30d5\u30a9\u30eb\u30c8 \u65e2\u5b9a delete \u30c7\u30ea\u30fc\u30c8 \u524a\u9664 do \u30c9\u30a5\u30fc \u3059\u308b double \u30c0\u30d6\u30eb \u500d\u7cbe\u5ea6\u6d6e\u52d5\u5c0f\u6570\u70b9\u6570 (double precision floating point number) dynamic_cast \u30c0\u30a4\u30ca\u30df\u30c3\u30af\u30fb\u30ad\u30e3\u30b9\u30c8 \u52d5\u7684\u306a\u578b\u306e\u5909\u63db else \u30a8\u30eb\u30b9 \u305d\u306e\u307b\u304b enum \u30a4\u30cb\u30e5\u30fc\u30e0/\u30a4\u30fc\u30ca\u30e0 \u5217\u6319\u5b50 (enumerator) \u306e\u7565 explicit \u30a8\u30af\u30b9\u30d7\u30ea\u30b7\u30c3\u30c8 \u660e\u793a\u7684\u306a export \u30a8\u30af\u30b9\u30dd\u30fc\u30c8 \u307b\u304b\u3078\u9001\u308a\u51fa\u3059 extern \u30a8\u30af\u30b9\u30bf\u30fc\u30f3 \u5916\u90e8\u3078 (external) \u306e\u7565 false \u30d5\u30a9\u30eb\u30b9/\u30d5\u30a9\u30fc\u30eb\u30b9 \u507d float \u30d5\u30ed\u30fc\u30c8 \u6d6e\u52d5\u5c0f\u6570\u70b9\u6570 (floating point number) for \u30d5\u30a9\u30fc/\u30d5\u30a9\u30a2 \uff5e\u306b\u5bfe\u3057\u3066 friend \u30d5\u30ec\u30f3\u30c9 \u53cb\u3060\u3061 goto \u30b4\u30fc\u30c8\u30a5\u30fc \uff5e\u3078\u884c\u304f if \u30a4\u30d5 \u3082\u3057 import \u30a4\u30f3\u30dd\u30fc\u30c8 \uff5e\u306b\u6301\u3061\u8fbc\u3080 inline \u30a4\u30f3\u30e9\u30a4\u30f3 \u30a4\u30f3\u30e9\u30a4\u30f3 int \u30a4\u30f3\u30c8 \u6574\u6570 (integer) \u306e\u7565 long \u30ed\u30f3\u30b0 \u9577\u3044 module \u30e2\u30b8\u30e5\u30fc\u30eb \u90e8\u54c1\u306e\u96c6\u307e\u308a mutable \u30df\u30e5\u30fc\u30bf\u30d6\u30eb \u5909\u66f4\u53ef\u80fd\u306a namespace \u30cd\u30fc\u30e0\u30b9\u30da\u30fc\u30b9 \u540d\u524d\u7a7a\u9593 new \u30cb\u30e5\u30fc \u65b0\u3057\u3044 noexcept \u30ce\u30fc\u30a8\u30af\u30bb\u30d7\u30c8 \u7121\u4f8b\u5916 (no exception) \u306e\u7565 not \u30ce\u30c3\u30c8 ! \u306e\u7f6e\u304d\u63db\u3048 not_eq \u30ce\u30c3\u30c8\u30fb\u30a4\u30b3\u30fc\u30eb != \u306e\u7f6e\u304d\u63db\u3048 nullptr \u30cc\u30eb\u30dd\u30a4\u30f3\u30bf/\u30cc\u30eb\u30d4\u30fc\u30c6\u30a3\u30fc\u30a2\u30fc\u30eb null \u3092\u8868\u3059\u30dd\u30a4\u30f3\u30bf operator \u30aa\u30da\u30ec\u30fc\u30bf\u30fc \u6f14\u7b97\u5b50 or \u30aa\u30a2 || \u306e\u7f6e\u304d\u63db\u3048 or_eq \u30aa\u30a2\u30fb\u30a4\u30b3\u30fc\u30eb ||= \u306e\u7f6e\u304d\u63db\u3048 private \u30d7\u30e9\u30a4\u30d9\u30fc\u30c8 \u79c1\u6709\u306e protected \u30d7\u30ed\u30c6\u30af\u30c6\u30c3\u30c9 \u4fdd\u8b77\u3055\u308c\u305f public \u30d1\u30d6\u30ea\u30c3\u30af \u516c\u958b\u3055\u308c\u305f register \u30ec\u30b8\u30b9\u30bf\u30fc (CPU \u306e) \u30ec\u30b8\u30b9\u30bf reinterpret_cast \u30ea\u30a4\u30f3\u30bf\u30fc\u30d7\u30ea\u30c3\u30c8\u30fb\u30ad\u30e3\u30b9\u30c8 \u518d\u89e3\u91c8\u3059\u308b\u5909\u63db requires \u30ea\u30af\u30ef\u30a4\u30a2\u30ba \u8981\u6c42\u3059\u308b return \u30ea\u30bf\u30fc\u30f3 \u8fd4\u3059 short \u30b7\u30e7\u30fc\u30c8 \u77ed\u3044 signed \u30b5\u30a4\u30f3\u30c9 \u7b26\u53f7\u4ed8\u304d sizeof \u30b5\u30a4\u30ba\u30aa\u30d6 \uff5e\u306e\u30b5\u30a4\u30ba static \u30b9\u30bf\u30c6\u30a3\u30c3\u30af \u9759\u7684\u306a static_assert \u30b9\u30bf\u30c6\u30a3\u30c3\u30af\u30fb\u30a2\u30b5\u30fc\u30c8 \u9759\u7684 (static) \u306a\u8868\u660e (assertion) static_cast \u30b9\u30bf\u30c6\u30a3\u30c3\u30af\u30fb\u30ad\u30e3\u30b9\u30c8 \u9759\u7684\u306b\u5909\u63db\u3059\u308b struct \u30b9\u30c8\u30e9\u30af\u30c8 \u69cb\u9020 switch \u30b9\u30a4\u30c3\u30c1 \u5206\u5c90 template \u30c6\u30f3\u30d7\u30ec\u30fc\u30c8 \u96db\u5f62 this \u30c7\u30a3\u30b9 \u3053\u306e thread_local \u30b9\u30ec\u30c3\u30c9\u30fb\u30ed\u30fc\u30ab\u30eb \u30b9\u30ec\u30c3\u30c9 + \u5c40\u6240\u7684\u306a throw \u30b9\u30ed\u30fc \u6295\u3052\u308b true \u30c8\u30a5\u30eb\u30fc \u771f try \u30c8\u30e9\u30a4 \u8a66\u884c\u3059\u308b typedef \u30bf\u30a4\u30d7\u30c7\u30d5 \u578b (type) \u5b9a\u7fa9 (definition) \u306e\u7565 typeid \u30bf\u30a4\u30d7\u30a2\u30a4\u30c7\u30a3\u30fc \u578b (type) \u8b58\u5225 (identification) typename \u30bf\u30a4\u30d7\u30cd\u30fc\u30e0 \u578b (type) \u306e\u540d\u524d (name) union \u30e6\u30cb\u30aa\u30f3 \u9023\u5408/\u5171\u7528 unsigned \u30a2\u30f3\u30b5\u30a4\u30f3\u30c9 \u7b26\u53f7\u306a\u3057 using \u30e6\u30fc\u30b8\u30f3\u30b0 \u4f7f\u3046 virtual \u30d0\u30fc\u30c1\u30e3\u30eb \u4eee\u60f3 void \u30f4\u30a9\u30a4\u30c9 \u7a7a\u306e volatile \u30dc\u30e9\u30bf\u30a4\u30eb \u63ee\u767a\u3059\u308b wchar_t \u30c0\u30d6\u30eb\u30c1\u30e3\u30fc\u30c6\u30a3\u30fc/\u30c0\u30d6\u30eb\u30ad\u30e3\u30e9\u30c6\u30a3\u30fc \u30ef\u30a4\u30c9\u306a char while \u30ef\u30a4\u30eb/\u30db\u30ef\u30a4\u30eb \uff5e\u306e\u9593 xor \u30a8\u30c3\u30af\u30b9\u30aa\u30a2 ^ \u306e\u7f6e\u304d\u63db\u3048 xor_eq \u30a8\u30c3\u30af\u30b9\u30aa\u30a2\u30fb\u30a4\u30b3\u30fc\u30eb ^= \u306e\u7f6e\u304d\u63db\u3048"},{"location":"articles/how-to-read-libraries/","title":"\u6a19\u6e96\u30e9\u30a4\u30d6\u30e9\u30ea\u306e\u8aad\u307f\u3068\u540d\u524d\u306e\u7531\u6765","text":""},{"location":"articles/how-to-read-libraries/#c","title":"C++ \u306e\u6a19\u6e96\u30e9\u30a4\u30d6\u30e9\u30ea","text":"\u30e9\u30a4\u30d6\u30e9\u30ea\u540d \u8aad\u307f \u540d\u524d\u306e\u7531\u6765 algorithm \u30a2\u30eb\u30b4\u30ea\u30ba\u30e0 \u30a2\u30eb\u30b4\u30ea\u30ba\u30e0 any \u30a8\u30cb\u30fc \u306a\u3093\u3067\u3082 array \u30a2\u30ec\u30a4 \u914d\u5217 atomic \u30a2\u30c8\u30df\u30c3\u30af \u4e0d\u53ef\u5206\u6027 bit \u30d3\u30c3\u30c8 \u30d3\u30c3\u30c8\u6f14\u7b97 bitset \u30d3\u30c3\u30c8\u30bb\u30c3\u30c8 \u30d3\u30c3\u30c8\u96c6\u5408 charconv \u30c1\u30e3\u30fc\u30b3\u30f3\u30d6/\u30ad\u30e3\u30e9\u30b3\u30f3\u30d6 \u6587\u5b57\u306e\u5909\u63db (character conversion) \u306e\u7565 chrono \u30af\u30ed\u30ce \u6642\u9593 (\u30ae\u30ea\u30b7\u30e3\u8a9e\u306e Chronus \u306b\u7531\u6765) codecvt \u30b3\u30fc\u30c9\u30b3\u30f3\u30d0\u30fc\u30c8/\u30b3\u30fc\u30c9\u30b7\u30fc\u30d6\u30a4\u30c6\u30a3\u30fc \u6587\u5b57\u30b3\u30fc\u30c9\u5909\u63db compare \u30b3\u30f3\u30da\u30a2 \u6bd4\u8f03 complex \u30b3\u30f3\u30d7\u30ec\u30c3\u30af\u30b9 \u8907\u7d20\u6570 concepts \u30b3\u30f3\u30bb\u30d7\u30c4 \u30b3\u30f3\u30bb\u30d7\u30c8 condition_variable \u30b3\u30f3\u30c7\u30a3\u30b7\u30e7\u30f3\u30fb\u30f4\u30a1\u30ea\u30a2\u30d6\u30eb \u6761\u4ef6\u5909\u6570 contract \u30b3\u30f3\u30c8\u30e9\u30af\u30c8 \u5951\u7d04 coroutine \u30b3\u30eb\u30fc\u30c1\u30f3 \u30b3\u30eb\u30fc\u30c1\u30f3 deque \u30c7\u30c3\u30af/\u30c7\u30ad\u30e5\u30fc \u4e21\u7aef\u30ad\u30e5\u30fc (double ended queue) \u306e\u7565 exception \u30a8\u30af\u30bb\u30d7\u30b7\u30e7\u30f3 \u4f8b\u5916 execution \u30a8\u30b0\u30bc\u30ad\u30e5\u30fc\u30b7\u30e7\u30f3 \u5b9f\u884c filesystem \u30d5\u30a1\u30a4\u30eb\u30b7\u30b9\u30c6\u30e0 \u30d5\u30a1\u30a4\u30eb\u30b7\u30b9\u30c6\u30e0 forward_list \u30d5\u30a9\u30ef\u30fc\u30c9\u30fb\u30ea\u30b9\u30c8 \u5358\u65b9\u5411\u30ea\u30b9\u30c8 fstream \u30a8\u30d5\u30b9\u30c8\u30ea\u30fc\u30e0 \u30d5\u30a1\u30a4\u30eb\u7528\u30b9\u30c8\u30ea\u30fc\u30e0 functional \u30d5\u30a1\u30f3\u30af\u30b7\u30e7\u30ca\u30eb \u95a2\u6570\u306e future \u30d5\u30e5\u30fc\u30c1\u30e3\u30fc \u672a\u6765 initializer_list \u30a4\u30cb\u30b7\u30e3\u30e9\u30a4\u30b6\u30fc\u30fb\u30ea\u30b9\u30c8 \u521d\u671f\u5316\u30ea\u30b9\u30c8 iomanip \u30a2\u30a4\u30aa\u30fc\u30de\u30cb\u30d4\u30e5 \u5165\u51fa\u529b\u306e\u64cd\u4f5c (manipulator) ios \u30a2\u30a4\u30aa\u30fc\u30a8\u30b9 \u5165\u51fa\u529b\u30b9\u30c8\u30ea\u30fc\u30e0 iosfwd \u30a2\u30a4\u30aa\u30fc\u30a8\u30b9\u30d5\u30a9\u30ef\u30fc\u30c9 \u5165\u51fa\u529b\u30b9\u30c8\u30ea\u30fc\u30e0\u306e\u524d\u65b9\u5ba3\u8a00 iostream \u30a2\u30a4\u30aa\u30fc\u30b9\u30c8\u30ea\u30fc\u30e0 \u6a19\u6e96\u5165\u51fa\u529b\u30b9\u30c8\u30ea\u30fc\u30e0 istream \u30a2\u30a4\u30b9\u30c8\u30ea\u30fc\u30e0 \u5165\u529b\u30b9\u30c8\u30ea\u30fc\u30e0 iterator \u30a4\u30c6\u30ec\u30fc\u30bf\u30fc \u53cd\u5fa9\u5b50 limits \u30ea\u30df\u30c3\u30c4 \u4e0a\u9650\u4e0b\u9650 list \u30ea\u30b9\u30c8 \u30ea\u30b9\u30c8 locale \u30ed\u30b1\u30fc\u30eb \u5730\u57df map \u30de\u30c3\u30d7 \u30de\u30c3\u30d7 memory \u30e1\u30e2\u30ea\u30fc \u30e1\u30e2\u30ea\u30fc memory_resource \u30e1\u30e2\u30ea\u30fc\u30fb\u30ea\u30bd\u30fc\u30b9 \u30e1\u30e2\u30ea\u30fc\u30ea\u30bd\u30fc\u30b9 mutex \u30df\u30e5\u30fc\u30c6\u30c3\u30af\u30b9 \u6392\u4ed6\u5236\u5fa1 (mutual exclusion) \u306e\u7565 new \u30cb\u30e5\u30fc \u65b0\u3057\u3044 numeric \u30cb\u30e5\u30fc\u30e1\u30ea\u30c3\u30af \u6570\u5024\u7684\u306a optional \u30aa\u30d7\u30b7\u30e7\u30ca\u30eb \u9078\u629e\u3067\u304d\u308b ostream \u30aa\u30fc\u30b9\u30c8\u30ea\u30fc\u30e0 \u51fa\u529b\u30b9\u30c8\u30ea\u30fc\u30e0 queue \u30ad\u30e5\u30fc \u30ad\u30e5\u30fc random \u30e9\u30f3\u30c0\u30e0 \u4e71\u6570 ranges \u30ec\u30f3\u30b8 \u7bc4\u56f2 ratio \u30ec\u30b7\u30aa \u6709\u7406\u6570 regex \u30ec\u30b8\u30a7\u30c3\u30af\u30b9 \u6b63\u898f\u8868\u73fe (regular expression) \u306e\u7565 scoped_allocator \u30b9\u30b3\u30fc\u30d7\u30c9\u30fb\u30a2\u30ed\u30b1\u30fc\u30bf\u30fc \u7bc4\u56f2\u3092\u6c7a\u3081\u305f\u30a2\u30ed\u30b1\u30fc\u30bf set \u30bb\u30c3\u30c8 \u96c6\u5408 shared_mutex \u30b7\u30a7\u30a2\u30fc\u30c9\u30fb\u30df\u30e5\u30fc\u30c6\u30c3\u30af\u30b9 \u5171\u6709\u7684\u306a mutex span \u30b9\u30d1\u30f3 \u7bc4\u56f2 sstream \u30a8\u30b9\u30b9\u30c8\u30ea\u30fc\u30e0 \u6587\u5b57\u5217\u306e\u30b9\u30c8\u30ea\u30fc\u30e0 stack \u30b9\u30bf\u30c3\u30af \u30b9\u30bf\u30c3\u30af stdexcept \u30a8\u30b9\u30c6\u30a3\u30fc\u30c7\u30a3\u30fc\u30a8\u30af\u30bb\u30d7\u30c8/\u30b9\u30bf\u30f3\u30c0\u30fc\u30c9\u30a8\u30af\u30bb\u30d7\u30c8 \u6a19\u6e96\u7684\u306a\u4f8b\u5916 streambuf \u30b9\u30c8\u30ea\u30fc\u30e0\u30d0\u30d5/\u30b9\u30c8\u30ea\u30fc\u30e0\u30d0\u30c3\u30d5\u30a1 \u30b9\u30c8\u30ea\u30fc\u30e0\u30d0\u30c3\u30d5\u30a1\u30fc string \u30b9\u30c8\u30ea\u30f3\u30b0 \u6587\u5b57\u5217 string_view \u30b9\u30c8\u30ea\u30f3\u30b0\u30d3\u30e5\u30fc \u6587\u5b57\u5217\u306e\u30d3\u30e5\u30fc strstream \u30a8\u30b9\u30c6\u30a3\u30fc\u30a2\u30fc\u30eb\u30b9\u30c8\u30ea\u30fc\u30e0/\u30b9\u30c8\u30e9\u30b9\u30c8\u30ea\u30fc\u30e0 \u6587\u5b57\u5217\u306e\u30b9\u30c8\u30ea\u30fc\u30e0 syncstream \u30b7\u30f3\u30af\u30b9\u30c8\u30ea\u30fc\u30e0 \u540c\u671f\u7684\u306a\u30b9\u30c8\u30ea\u30fc\u30e0 system_error \u30b7\u30b9\u30c6\u30e0\u30fb\u30a8\u30e9\u30fc \u30b7\u30b9\u30c6\u30e0\u30a8\u30e9\u30fc thread \u30b9\u30ec\u30c3\u30c9 \u30b9\u30ec\u30c3\u30c9 tuple \u30bf\u30d7\u30eb \u5024\u306e\u7d44 typeindex \u30bf\u30a4\u30d7\u30a4\u30f3\u30c7\u30c3\u30af\u30b9 \u30bf\u30a4\u30d7\u30a4\u30f3\u30c7\u30c3\u30af\u30b9 typeinfo \u30bf\u30a4\u30d7\u30a4\u30f3\u30d5\u30a9 \u578b\u306e\u60c5\u5831 type_traits \u30bf\u30a4\u30d7\u30fb\u30c8\u30ec\u30a4\u30c4 \u578b\u306e\u7279\u5fb4 unordered_map \u30a2\u30f3\u30aa\u30fc\u30c0\u30fc\u30c9\u30fb\u30de\u30c3\u30d7 \u975e\u9806\u5e8f\u306a map unordered_set \u30a2\u30f3\u30aa\u30fc\u30c0\u30fc\u30c9\u30fb\u30bb\u30c3\u30c8 \u975e\u9806\u5e8f\u306a set utility \u30e6\u30fc\u30c6\u30a3\u30ea\u30c6\u30a3\u30fc \u4fbf\u5229\u6a5f\u80fd valarray \u30f4\u30a1\u30eb\u30a2\u30ec\u30a4 \u5024\u306e\u914d\u5217 variant \u30f4\u30a1\u30ea\u30a2\u30f3\u30c8 \u76f8\u9055\u3057\u305f vector \u30d9\u30af\u30bf\u30fc \u30d9\u30af\u30c8\u30eb version \u30d0\u30fc\u30b8\u30e7\u30f3 \u30d0\u30fc\u30b8\u30e7\u30f3"},{"location":"articles/how-to-read-libraries/#c_1","title":"C \u8a00\u8a9e\u7531\u6765\u306e\u6a19\u6e96\u30e9\u30a4\u30d6\u30e9\u30ea","text":"

<\uff5e.h> \u5f62\u5f0f\u306e C \u6a19\u6e96\u30e9\u30a4\u30d6\u30e9\u30ea\u306e\u591a\u304f\u304c\u3001<c\uff5e> \u3068\u3044\u3046\u540d\u524d\u3067 C++ \u6a19\u6e96\u30e9\u30a4\u30d6\u30e9\u30ea\u306b\u542b\u307e\u308c\u3066\u3044\u307e\u3059\u3002

\u30e9\u30a4\u30d6\u30e9\u30ea\u540d \u8aad\u307f \u540d\u524d\u306e\u7531\u6765 cassert \u30b7\u30fc\u30a2\u30b5\u30fc\u30c8 \u8868\u660e cctype \u30b7\u30fc\u30b7\u30fc\u30bf\u30a4\u30d7 \u6587\u5b57\u306e\u5206\u985e cerrno \u30b7\u30fc\u30a8\u30e9\u30fc\u30ca\u30f3\u30d0\u30fc \u30a8\u30e9\u30fc\u30ca\u30f3\u30d0\u30fc (error number) \u306e\u7565 cfenv \u30b7\u30fc\u30a8\u30d5\u30a8\u30f3\u30d6 \u6d6e\u52d5\u5c0f\u6570\u70b9\u6570\u306e\u74b0\u5883\u8a2d\u5b9a (float environment) \u306e\u7565 cfloat \u30b7\u30fc\u30d5\u30ed\u30fc\u30c8 \u6d6e\u52d5\u5c0f\u6570\u70b9\u6570 cinttypes \u30b7\u30fc\u30a4\u30f3\u30c8\u30bf\u30a4\u30d7\u30b9 \u6574\u6570\u578b climits \u30b7\u30fc\u30ea\u30df\u30c3\u30c4 \u4e0a\u9650\u4e0b\u9650 clocale \u30b7\u30fc\u30ed\u30b1\u30fc\u30eb \u5730\u57df cmath \u30b7\u30fc\u30de\u30b9 \u6570\u5b66\u95a2\u6570 csetjmp \u30b7\u30fc\u30bb\u30c3\u30c8\u30b8\u30e3\u30f3\u30d7 \u30bb\u30c3\u30c8\u30b8\u30e3\u30f3\u30d7\u547d\u4ee4 csignal \u30b7\u30fc\u30b7\u30b0\u30ca\u30eb \u30b7\u30b0\u30ca\u30eb cstdarg \u30b7\u30fc\u30a8\u30b9\u30c6\u30a3\u30fc\u30c7\u30a3\u30fc\u30a2\u30fc\u30b0/\u30b7\u30fc\u30b9\u30bf\u30f3\u30c0\u30fc\u30c9\u30a2\u30fc\u30b0 \u5f15\u6570 cstddef \u30b7\u30fc\u30a8\u30b9\u30c6\u30a3\u30fc\u30c7\u30a3\u30fc\u30c7\u30d5/\u30b7\u30fc\u30b9\u30bf\u30f3\u30c0\u30fc\u30c9\u30c7\u30d5 \u57fa\u672c\u7684\u306a\u5b9a\u7fa9 cstdint \u30b7\u30fc\u30a8\u30b9\u30c6\u30a3\u30fc\u30c7\u30a3\u30fc\u30a4\u30f3\u30c8/\u30b7\u30fc\u30b9\u30bf\u30f3\u30c0\u30fc\u30c9\u30a4\u30f3\u30c8 \u57fa\u672c\u7684\u306a\u6574\u6570 cstdio \u30b7\u30fc\u30a8\u30b9\u30c6\u30a3\u30fc\u30c7\u30a3\u30fc\u30a2\u30a4\u30aa\u30fc/\u30b7\u30fc\u30b9\u30bf\u30f3\u30c0\u30fc\u30c9\u30a2\u30a4\u30aa\u30fc \u57fa\u672c\u7684\u306a\u5165\u51fa\u529b cstdlib \u30b7\u30fc\u30a8\u30b9\u30c6\u30a3\u30fc\u30c7\u30a3\u30fc\u30ea\u30d6/\u30b7\u30fc\u30b9\u30bf\u30f3\u30c0\u30fc\u30c9\u30ea\u30d6 \u57fa\u672c\u7684\u306a\u30e9\u30a4\u30d6\u30e9\u30ea cstring \u30b7\u30fc\u30b9\u30c8\u30ea\u30f3\u30b0 \u6587\u5b57\u5217 ctime \u30b7\u30fc\u30bf\u30a4\u30e0 \u6642\u9593 cuchar \u30b7\u30fc\u30e6\u30fc\u30c1\u30e3\u30fc Unicode \u6587\u5b57 cwchar \u30b7\u30fc\u30c0\u30d6\u30eb\u30c1\u30e3\u30fc \u30ef\u30a4\u30c9\u6587\u5b57 cwctype \u30b7\u30fc\u30c0\u30d6\u30eb\u30bf\u30a4\u30d7 \u30ef\u30a4\u30c9\u6587\u5b57\u306e\u5206\u985e"},{"location":"articles/ieee754-arithmetic/","title":"IEEE 754 \u6f14\u7b97\u306e\u30eb\u30fc\u30eb","text":"

\u6d6e\u52d5\u5c0f\u6570\u70b9\u6570\u306e\u4e38\u3081\u30e2\u30fc\u30c9\u304c FE_TONEAREST \u306e\u5834\u5408\u306e\u7d50\u679c\u3067\u3059\u3002

"},{"location":"articles/ieee754-arithmetic/#_1","title":"\u56db\u5247\u6f14\u7b97","text":""},{"location":"articles/ieee754-arithmetic/#_2","title":"\u6bd4\u8f03\u6f14\u7b97","text":""},{"location":"articles/ieee754-arithmetic/#_3","title":"\u4e09\u65b9\u6bd4\u8f03\u6f14\u7b97","text":"

\u7d50\u679c\u306f std::partial_ordering \u578b

"},{"location":"articles/it-compiles/","title":"\u306a\u305c\u304b\u30b3\u30f3\u30d1\u30a4\u30eb\u3067\u304d\u308b","text":"

C++ \u306e\u898f\u683c\u4e0a\u30b3\u30f3\u30d1\u30a4\u30eb\u3067\u304d\u308b\u3001\u4e0d\u601d\u8b70\u306a\u898b\u305f\u76ee\u306e\u30b3\u30fc\u30c9\u306e\u7d39\u4ecb\u3067\u3059\u3002

"},{"location":"articles/it-compiles/#url","title":"\u30bd\u30fc\u30b9\u30b3\u30fc\u30c9\u306b URL","text":"
int main()\n{\n    https://cppmap.github.io\n    return 0;\n}\n
"},{"location":"articles/it-compiles/#main-try","title":"main \u95a2\u6570 try \u30d6\u30ed\u30c3\u30af","text":"
int main()\ntry\n{\n\n}\ncatch (...)\n{\n    return -1;\n}\n
"},{"location":"articles/it-compiles/#_2","title":"\u6dfb\u5b57\u5f0f\u306e\u5165\u308c\u66ff\u3048","text":"
#include <iostream>\n\nint main()\n{\n    int a[3] = { 10, 20, 30 };\n\n    std::cout << 2[a] << '\\n';\n\n    for (int i = 0; i < 3; ++i)\n    {\n        std::cout << i[a] << '\\n';\n    }\n}\n
"},{"location":"articles/it-compiles/#_3","title":"\u62ec\u5f27\u306e\u9023\u7d9a","text":"
int main()\n{\n    {};\n    []{};\n    [](){};\n    [](){}();\n    [[]][]{};\n    []()[[]]{};\n    [[]][]{}();\n    [[]][](){};\n    []()[[]]{}();\n    [[]][](){}();\n    [[]][]()[[]]{};\n    [[]][]()[[]]{}();\n}\n
"},{"location":"articles/it-compiles/#_4","title":"\u7a7a\u306e\u30d7\u30ea\u30d7\u30ed\u30bb\u30c3\u30b5\u30c7\u30a3\u30ec\u30af\u30c6\u30a3\u30d6","text":"
#\n#include <iostream>\n#\n\nint main()\n{\n    #\n}\n
"},{"location":"articles/it-compiles/#-","title":"--> \u6f14\u7b97\u5b50","text":"
#include <iostream>\n\nint main()\n{\n    int i = 10;\n\n    while (i --> 0)\n    {\n        std::cout << i << '\\n';\n    }\n}\n
"},{"location":"articles/it-compiles/#_5","title":"\u540c\u3058\u95a2\u6570","text":"
#include <iostream>\n\nusing ll = long long;\n\nvoid f(unsigned ll)\n{\n    std::cout << \"A\\n\";\n}\n\nvoid f(unsigned long long)\n{\n    std::cout << \"B\\n\";\n}\n\nint main()\n{\n    f(123ull);\n}\n
"},{"location":"articles/it-compiles/#nodiscard","title":"\u623b\u308a\u5024\u304c\u7121\u3044\u306e\u306b [[nodiscard]]","text":"
[[nodiscard]] void Func()\n{\n\n}\n\nint main()\n{\n    Func(); // \u8b66\u544a\u306f\u51fa\u306a\u3044\n}\n
"},{"location":"articles/it-compiles/#_6","title":"\u9577\u3044\u95a2\u6570","text":"
struct C\n{\n    inline virtual volatile constexpr const unsigned long long int f() const noexcept final = delete;\n};\n\nint main()\n{\n\n}\n
"},{"location":"articles/it-compiles/#_7","title":"\u540d\u524d\u7a7a\u9593\u30a8\u30a4\u30ea\u30a2\u30b9\u306e\u518d\u5e30","text":"
namespace A\n{\n    namespace A = A;\n\n    void f() {}\n}\n\nint main()\n{\n    A::A::A::A::A::A::f();\n}\n
"},{"location":"articles/it-compiles/#_8","title":"\u7d9a","text":"
struct S\n{\n    static const int i = 42;\n};\n\nint main()\n{\n    return S::S::S::S::S::S::i;\n}\n
"},{"location":"articles/it-compiles/#typedef-1","title":"typedef \u306e\u5834\u6240 1","text":"
long unsigned typedef int long Uint64;\n\nint main()\n{\n    Uint64 i = 123ull;\n}\n
"},{"location":"articles/it-compiles/#typedef-2","title":"typedef \u306e\u5834\u6240 2","text":"
int main()\n{\n    if (typedef int Int; true)\n    {\n        Int a = 0;\n    }\n\n    switch (typedef int Int; 0)\n    {\n    case 0:\n        Int a = 0;\n        break;\n    }\n}\n
"},{"location":"articles/it-compiles/#-_1","title":"+ \u3068 -","text":"
#include <iostream>\n\nint main()\n{\n    int a = 0 +-+-+-+-+-+-+-+-+ 1 +-+-+-+-+-+-+-+-+ 2;\n    int b = 0 + + + + + + + + + 1 - - - - - - - - - 2;\n\n    std::cout << a << '\\n';\n    std::cout << b << '\\n';\n}\n
"},{"location":"articles/it-does-not-compile/","title":"\u306a\u305c\u304b\u30b3\u30f3\u30d1\u30a4\u30eb\u3067\u304d\u306a\u3044","text":"

\u6b63\u3057\u3044\u3088\u3046\u306b\u898b\u3048\u3066\u3001\u30b3\u30f3\u30d1\u30a4\u30eb\u30a8\u30e9\u30fc\u306b\u306a\u308b\u30b3\u30fc\u30c9\u306e\u7d39\u4ecb\u3067\u3059\u3002

"},{"location":"articles/it-does-not-compile/#_2","title":"\u6dfb\u5b57\u3068\u30e9\u30e0\u30c0\u5f0f","text":"
#include <iostream>\n\nint main()\n{\n    int a[3] = { 10, 20, 30 };\n\n    std::cout << a[[](){ return 1; }()] << '\\n';\n}\n
"},{"location":"articles/it-does-not-compile/#_3","title":"\u4f7f\u3048\u306a\u3044\u5909\u6570","text":"
#include <memory>\n\nint main()\n{\n    std::shared_ptr<int> p();\n\n    p.reset();\n}\n
"},{"location":"articles/it-does-not-compile/#_4","title":"\u30dd\u30a4\u30f3\u30bf\u578b\u306e\u30c7\u30d5\u30a9\u30eb\u30c8\u5f15\u6570","text":"
void Func(int*=nullptr)\n{\n\n}\n\nint main()\n{\n    Func();\n}\n
"},{"location":"articles/it-does-not-compile/#_5","title":"\u95a2\u6570\u306e\u30aa\u30fc\u30d0\u30fc\u30ed\u30fc\u30c9","text":"
#include <iostream>\n\nusing T = int&;\n\nvoid f(T&)\n{\n    std::cout << \"A\\n\";\n}\n\nvoid f(const T&)\n{\n    std::cout << \"B\\n\";\n}\n\nint main()\n{\n    int x;\n    f(x);\n}\n
"},{"location":"articles/it-does-not-compile/#0xe","title":"0xe","text":"
int main()\n{\n    return 0xe-0xe;\n}\n
"},{"location":"articles/member-access/","title":"C++ \u30a2\u30af\u30bb\u30b9\u6307\u5b9a\u5b50\u306e\u52b9\u679c","text":""},{"location":"articles/type-traits/","title":"C++ \u578b\u7279\u6027 \u65e9\u898b\u8868","text":""},{"location":"contribution/contributors/","title":"\u30b3\u30f3\u30c8\u30ea\u30d3\u30e5\u30fc\u30bf","text":"

C++ \u306e\u6b69\u304d\u65b9 Web \u30b5\u30a4\u30c8\u306e\u6539\u5584\u3001\u60c5\u5831\u62e1\u5145\u306b\u5354\u529b\u3057\u3066\u304f\u308c\u305f\u65b9\u3005\u3067\u3059\uff08ABC \u9806\uff09\u3002

"},{"location":"learn/blogs/","title":"C++ \u30d6\u30ed\u30b0\u96c6","text":"

C++ \u306e\u5b66\u7fd2\u306b\u5f79\u7acb\u3064\u6280\u8853\u30d6\u30ed\u30b0\u96c6\u3092\u7d39\u4ecb\u3057\u307e\u3059\u3002

"},{"location":"learn/blogs/#c_1","title":"\u65e5\u672c\u8a9e\u306e C++ \u30d6\u30ed\u30b0","text":""},{"location":"learn/blogs/#c_2","title":"\u82f1\u8a9e\u306e C++ \u30d6\u30ed\u30b0","text":"

\u8ffd\u52a0\u306e\u63d0\u6848\u306f Issue #42 \u307e\u3067\u30b3\u30e1\u30f3\u30c8\u3092\u304a\u9858\u3044\u3057\u307e\u3059\u3002

"},{"location":"learn/books/","title":"C++ \u66f8\u7c4d","text":"

C++ \u306e\u5b66\u7fd2\u306b\u5f79\u7acb\u3064\u6700\u65b0\u306e\u66f8\u7c4d\u3092\u7d39\u4ecb\u3057\u307e\u3059\u3002 \u521d\u5b66\u8005\u5411\u3051\u306e\u5165\u9580\u66f8\u306b\u306f \u30de\u30fc\u30af\u3092\u4ed8\u3051\u3066\u3044\u307e\u3059\u3002

"},{"location":"learn/books/#c14","title":"C++14 \u4ee5\u964d\u3092\u6271\u3063\u305f\u66f8\u7c4d","text":"\u66f8\u540d \u767a\u884c\u5e74 C++ \u898f\u683c \u5185\u5bb9 Effective Modern C++ 2015 C++14 Effective C++ \u3067\u6709\u540d\u306a Scott Meyers \u306b\u3088\u308b C++11/14 \u306e\u30ac\u30a4\u30c9\u30e9\u30a4\u30f3\u30fb\u30b3\u30fc\u30c7\u30a3\u30f3\u30b0\u30b9\u30bf\u30a4\u30eb\u30fb\u30a4\u30c7\u30a3\u30aa\u30e0\u96c6 C++11/14 \u30b3\u30a2\u8a00\u8a9e 2015 C++14 C++11/14 \u306e\u6587\u6cd5\u3068\u8a00\u8a9e\u6a5f\u80fd\u3092\u898f\u683c\u66f8\u306b\u57fa\u3065\u3044\u3066\u8a73\u7d30\u306b\u89e3\u8aac\u3002\u30aa\u30fc\u30d7\u30f3\u30bd\u30fc\u30b9\u7248 \u7d44\u8fbc\u307f\u30bd\u30d5\u30c8\u30a6\u30a7\u30a2\u958b\u767a\u5411\u3051\u30b3\u30fc\u30c7\u30a3\u30f3\u30b0\u4f5c\u6cd5\u30ac\u30a4\u30c9 C++ \u8a00\u8a9e\u7248 Ver.2.0 2016 C++14 \u57fa\u790e\u3092\u5b66\u3093\u3060\u4eba\u5411\u3051\u306e\u30b3\u30fc\u30c7\u30a3\u30f3\u30b0\u30b9\u30bf\u30a4\u30eb\u672c\u3002\u7d44\u307f\u8fbc\u307f\u5411\u3051\u306e\u53b3\u683c\u3055\u3082\u3042\u308b\u304c\u6982\u306d\u6c4e\u7528\u7684\u3002PDF \u7248\u306f\u7121\u6599\u516c\u958b C++ \u306b\u3088\u308b\u30d7\u30ed\u30b0\u30e9\u30df\u30f3\u30b0\u306e\u539f\u5247\u3068\u5b9f\u8df5 2016 C++14 C++ \u3092\u4f7f\u3063\u3066\u30d7\u30ed\u30b0\u30e9\u30df\u30f3\u30b0\u3092\u6559\u3048\u308b 1,000 \u30da\u30fc\u30b8\u8d85\u306e\u5165\u9580\u66f8\u3002C++ \u751f\u307f\u306e\u89aa Bjarne Stroustrup \u8457 \u57fa\u790e\u304b\u3089\u3057\u3063\u304b\u308a\u5b66\u3076 C++ \u306e\u6559\u79d1\u66f8 2017 C++14 C++ \u306e\u57fa\u672c\u7684\u306a\u6587\u6cd5\u304b\u3089\u30af\u30e9\u30b9\u3001\u30b3\u30f3\u30c6\u30ca\u3001\u4e26\u5217\u5316\u306a\u3069\u69d8\u3005\u306a\u6a5f\u80fd\u3092 300 \u30da\u30fc\u30b8\u306b\u5727\u7e2e\u3057\u3066\u7d39\u4ecb\u3059\u308b\u5165\u9580\u66f8 C++ \u306e\u7d75\u672c \u7b2c\uff12\u7248 2017 C++14 \u30af\u30e9\u30b9\u3084\u53c2\u7167\u3001\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8\u306a\u3069\u3001C \u306b\u5bfe\u3059\u308b C++ \u56fa\u6709\u306e\u8a00\u8a9e\u6a5f\u80fd\u3092\u56f3\u7248\u3092\u7528\u3044\u3066\u89e3\u8aac Optimized C++ 2017 C++14 C++ \u30d7\u30ed\u30b0\u30e9\u30e0\u306e\u6027\u80fd\u6e2c\u5b9a\u3068\u6700\u9069\u5316\u306b\u3064\u3044\u3066\u306e\u5b9f\u8df5\u3068\u89e3\u8aac [\u6539\u8a02\u7b2c3\u7248] C++ \u30dd\u30b1\u30c3\u30c8\u30ea\u30d5\u30a1\u30ec\u30f3\u30b9 2018 C++17 \u57fa\u672c\u6587\u6cd5\u306e\u89e3\u8aac\u306b\u52a0\u3048\u3001\u9006\u5f15\u304d\u5f62\u5f0f\u3067\u6a19\u6e96\u30e9\u30a4\u30d6\u30e9\u30ea\u306e\u5e45\u5e83\u3044\u6a5f\u80fd\u3092\u7d39\u4ecb \u6c5f\u6dfb\u4eae\u306e\u8a73\u8aac C++17 2018 C++17 C++14/17 \u306e\u65b0\u3057\u3044\u6587\u6cd5\u3068\u6a19\u6e96\u30e9\u30a4\u30d6\u30e9\u30ea\u6a5f\u80fd\u3092\u8a73\u7d30\u306b\u89e3\u8aac\u3002\u30aa\u30fc\u30d7\u30f3\u30bd\u30fc\u30b9\u7248 \u5192\u967a\u3067\u5b66\u3076\u306f\u3058\u3081\u3066\u306e\u30d7\u30ed\u30b0\u30e9\u30df\u30f3\u30b0 2018 C++17 \u672a\u7d4c\u9a13\u8005\u5411\u3051\u3002\u65e9\u7a32\u7530\u5927\u5b66\u304c\u904b\u55b6\u3059\u308b\u4e2d\u5b66\u30fb\u9ad8\u6821\u751f\u5411\u3051 C++ \u5165\u9580\u8b1b\u5ea7\u306e\u6559\u79d1\u66f8\u3002\u7d39\u4ecb\u30da\u30fc\u30b8 Modern C++ \u30c1\u30e3\u30ec\u30f3\u30b8 \u2015 C++17 \u30d7\u30ed\u30b0\u30e9\u30df\u30f3\u30b0\u529b\u3092\u935b\u3048\u308b 100 \u554f 2019 C++17/20 \u73fe\u5b9f\u7684\u30fb\u5b9f\u8df5\u7684\u306a 100 \u306e\u8ab2\u984c\u3092 C++ \u3067\u89e3\u6c7a\u3059\u308b\u554f\u984c\u96c6\u3002\u30aa\u30fc\u30d7\u30f3\u30bd\u30fc\u30b9\u30e9\u30a4\u30d6\u30e9\u30ea\u3092\u7a4d\u6975\u7684\u306b\u6d3b\u7528\u3059\u308b \u6c5f\u6dfb\u4eae\u306e C++ \u5165\u9580 2019 C++17/20 C++ \u306e\u30c4\u30fc\u30eb\u3084\u6587\u6cd5\u3001\u3044\u304f\u3064\u304b\u306e\u6a19\u6e96\u30e9\u30a4\u30d6\u30e9\u30ea\u6a5f\u80fd\u306e\u8a2d\u8a08\u3092\u5b66\u3079\u308b\u89e3\u8aac\u66f8\u3002\u30aa\u30fc\u30d7\u30f3\u30bd\u30fc\u30b9\u7248 \u72ec\u7fd2 C++ \u65b0\u7248 2019 C++17 \u521d\u5b66\u8005\u5411\u3051\u3002\u300c\u72ec\u7fd2 C++ \u7b2c 4 \u7248\u300d\u3092 C++17 \u306b\u5bfe\u5fdc\u3055\u305b\u89e3\u8aac\u3092\u4e00\u65b0 [\u6539\u8a02\u7b2c4\u7248] C++ \u30dd\u30b1\u30c3\u30c8\u30ea\u30d5\u30a1\u30ec\u30f3\u30b9 2021 C++20 \u57fa\u672c\u6587\u6cd5\u306e\u89e3\u8aac\u306b\u52a0\u3048\u3001\u9006\u5f15\u304d\u5f62\u5f0f\u3067\u6a19\u6e96\u30e9\u30a4\u30d6\u30e9\u30ea\u306e\u5e45\u5e83\u3044\u6a5f\u80fd\u3092\u7d39\u4ecb C++ \u30bd\u30d5\u30c8\u30a6\u30a7\u30a2\u8a2d\u8a08 - \u9ad8\u54c1\u8cea\u8a2d\u8a08\u306e\u539f\u5247\u3068\u30c7\u30b6\u30a4\u30f3\u30d1\u30bf\u30fc\u30f3 2023 C++20 \u30e2\u30c0\u30f3 C++ \u306b\u304a\u3051\u308b\u8a2d\u8a08\u6280\u6cd5\u3084\u30c7\u30b6\u30a4\u30f3\u30d1\u30bf\u30fc\u30f3\u306a\u3069 39 \u9805\u76ee\u3092\u89e3\u8aac\u3002\u76ee\u6b21 \uff3b\u6539\u8a02\u7b2c5\u7248\uff3dC++ \u30dd\u30b1\u30c3\u30c8\u30ea\u30d5\u30a1\u30ec\u30f3\u30b9 2024 C++23 \u57fa\u672c\u6587\u6cd5\u306e\u89e3\u8aac\u306b\u52a0\u3048\u3001\u9006\u5f15\u304d\u5f62\u5f0f\u3067\u6a19\u6e96\u30e9\u30a4\u30d6\u30e9\u30ea\u306e\u5e45\u5e83\u3044\u6a5f\u80fd\u3092\u7d39\u4ecb\u3002C++23 \u306b\u5bfe\u5fdc"},{"location":"learn/books/#c_1","title":"C++ \u5165\u9580\u66f8\u306e\u9078\u3073\u65b9","text":""},{"location":"learn/books/#_1","title":"\u5192\u967a\u3067\u5b66\u3076 \u306f\u3058\u3081\u3066\u306e\u30d7\u30ed\u30b0\u30e9\u30df\u30f3\u30b0","text":"

3 \u65e5\u9593\u30b3\u30fc\u30b9\u306e\u4e2d\u9ad8\u751f\u5411\u3051 C++ \u6559\u5ba4\u3067\u4f7f\u308f\u308c\u3066\u3044\u308b\u6559\u79d1\u66f8\u3067\u3059\u3002\u30e2\u30c0\u30f3 C++ \u3092\u30d9\u30fc\u30b9\u306b\u5165\u9580\u30ec\u30d9\u30eb\u306e\u5185\u5bb9 (\u6a19\u6e96\u5165\u51fa\u529b\u3001\u5909\u6570\u3001if-else, for, \u4e71\u6570\u3001std::vector \u306a\u3069\uff09\u3092\u6271\u3063\u3066\u3044\u307e\u3059\u3002\u7121\u7406\u306e\u306a\u3044\u30da\u30fc\u30b9\u3068\u7269\u8a9e\u5f62\u5f0f\u306e\u984c\u6750\u3067\u3001\u632b\u6298\u305b\u305a\u306b\u30d7\u30ed\u30b0\u30e9\u30df\u30f3\u30b0\u306b\u6163\u308c\u308b\u3053\u3068\u304c\u3067\u304d\u308b\u306e\u304c\u7279\u9577\u3067\u3059\u3002C++ \u306f\u539a\u3044\u672c\u304c\u591a\u3044\u306a\u304b\u3001\u7d04 180 \u30da\u30fc\u30b8\u3068\u624b\u8efd\u306a\u306e\u3067\u3001\u5b8c\u5168\u8aad\u7834\u3092\u3057\u3066\u81ea\u4fe1\u3092\u3064\u3051\u3066\u6b21\u306e\u30b9\u30c6\u30c3\u30d7\u306b\u9032\u3080\u306e\u306b\u9069\u3057\u305f\u6700\u521d\u306e\u4e00\u518a\u3067\u3059\u3002

"},{"location":"learn/books/#c-5","title":"\u3084\u3055\u3057\u3044 C++ \u7b2c 5 \u7248","text":"

C++ \u306e\u5165\u9580\uff5e\u4e2d\u7d1a\u30ec\u30d9\u30eb\u306e\u5185\u5bb9\u306e\u3046\u3061\u3001\u57fa\u672c\u7684\u306a\u90e8\u5206\uff08\u300e\u5192\u967a\u3067\u5b66\u3076 \u306f\u3058\u3081\u3066\u306e\u30d7\u30ed\u30b0\u30e9\u30df\u30f3\u30b0\u300f\u306b\u52a0\u3048\u3001\u95a2\u6570\u3001\u30dd\u30a4\u30f3\u30bf\u3001\u30af\u30e9\u30b9\u3001\u30d5\u30a1\u30a4\u30eb\u306a\u3069\uff09\u3092\u53d6\u308a\u4e0a\u3052\u3066\u3001\u8c4a\u5bcc\u306a\u56f3\u3092\u4ea4\u3048\u3066\u8aac\u660e\u3057\u3066\u3044\u307e\u3059\u3002\u5b66\u7fd2\u3059\u308b\u9806\u756a\u3082\u9069\u5207\u306b\u30c7\u30b6\u30a4\u30f3\u3055\u308c\u3066\u3044\u3066\u89aa\u5207\u3067\u3059\u3002\u7d04 550 \u30da\u30fc\u30b8\u3068\u5206\u91cf\u306f\u591a\u3044\u3067\u3059\u304c\u3001\u60c5\u5831\u7cfb\u306e\u5c02\u9580 / \u9ad8\u5c02 / \u5927\u5b66\u751f\u304c C++ \u3092\u4f7f\u3048\u308b\u3088\u3046\u3001\u8170\u3092\u636e\u3048\u3066\u72ec\u5b66\u3059\u308b\u306e\u306b\u6700\u9069\u306a\u4e00\u518a\u3067\u3059\u3002C++11 \u4ee5\u964d\u306e\u7bc4\u56f2 for \u3084\u65b0\u3057\u3044\u6a19\u6e96\u30e9\u30a4\u30d6\u30e9\u30ea\u306a\u3069\u3001\u30e2\u30c0\u30f3\u306a\u6a5f\u80fd\u3078\u306e\u8a00\u53ca\u304c\u5c11\u306a\u3044\u70b9\u306b\u306f\u6ce8\u610f\u304c\u5fc5\u8981\u3067\u3059\u3002

"},{"location":"learn/books/#c_2","title":"\u72ec\u7fd2 C++ \u65b0\u7248","text":"

\u72ec\u5b66\u306e\u305f\u3081\u306e\u5341\u5206\u306a\u30b5\u30f3\u30d7\u30eb\u3068\u8aac\u660e\u304c\u63b2\u8f09\u3055\u308c\u3066\u3044\u308b\u5165\u9580\u66f8\u3067\u3001C++11\uff5eC++17 \u306e\u6a5f\u80fd\u3082\u591a\u304f\u767b\u5834\u3057\u307e\u3059\u3002\u300e\u3084\u3055\u3057\u3044 C++ \u7b2c 5 \u7248\u300f\u3067\u306f\u6271\u3063\u3066\u3044\u306a\u3044\u30e9\u30e0\u30c0\u5f0f\u3084\u53f3\u8fba\u5024\u53c2\u7167\u3001\u307e\u305f\u7c21\u5358\u306a\u7d39\u4ecb\u306b\u3068\u3069\u307e\u3063\u3066\u3044\u305f\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8\u3084\u4f8b\u5916\u3001\u30c7\u30fc\u30bf\u69cb\u9020\u306a\u3069\u3092\u3057\u3063\u304b\u308a\u89e3\u8aac\u3057\u3066\u3044\u307e\u3059\u3002\u5e8f\u76e4\u304b\u3089\u3084\u3084\u9ad8\u5ea6\u306a\u30c8\u30d4\u30c3\u30af\u3082\u767b\u5834\u3059\u308b\u305f\u3081\u3001\u672a\u7d4c\u9a13\u304b\u3089\u3053\u306e\u672c\u3092\u8aad\u307f\u59cb\u3081\u308b\u306e\u306f\u5c11\u3057\u5927\u5909\u304b\u3082\u3057\u308c\u307e\u305b\u3093\u3002

"},{"location":"learn/books/#c-2","title":"C++ \u306e\u7d75\u672c \u7b2c\uff12\u7248","text":"

C \u8a00\u8a9e\u304b\u3089 C++ \u306b\u30b9\u30c6\u30c3\u30d7\u30a2\u30c3\u30d7\u3059\u308b\u3046\u3048\u3067\u65b0\u3057\u304f\u899a\u3048\u308b\u5fc5\u8981\u306e\u3042\u308b\u5185\u5bb9\uff08\u30af\u30e9\u30b9\u3001\u540d\u524d\u7a7a\u9593\u3001\u53c2\u7167\u3001\u7d99\u627f\u3001\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8\u306a\u3069\uff09\u306b\u7126\u70b9\u3092\u5f53\u3066\u3001\u8c4a\u5bcc\u306a\u56f3\u89e3\u3067\u307e\u3068\u3081\u3066\u3044\u307e\u3059\u3002\u4e00\u65b9\u3067\u3001\u305d\u308c\u4ee5\u5916\u306e\u57fa\u672c\u7684\u306a\u6587\u6cd5\u306b\u3064\u3044\u3066\u306f\u8aac\u660e\u3092\u7701\u3044\u3066\u3044\u308b\u305f\u3081\u3001\u3042\u308b\u7a0b\u5ea6\u306e\u7d4c\u9a13\u8005\u304c\u5bfe\u8c61\u3067\u3059\u3002\"Better C\" \u7684\u306a\u30b3\u30fc\u30c9\u3057\u304b\u66f8\u3051\u306a\u3044\u4eba\u304c\u300cC++ \u3089\u3057\u3044\u300d\u30b3\u30fc\u30c9\u3092\u66f8\u3051\u308b\u3088\u3046\u306b\u306a\u308b\u305f\u3081\u306e\u91cd\u8981\u306a\u60c5\u5831\u304c\u307e\u3068\u3081\u3089\u308c\u3066\u3044\u307e\u3059\u3002

"},{"location":"learn/books/#c_3","title":"\u57fa\u790e\u304b\u3089\u3057\u3063\u304b\u308a\u5b66\u3076 C++ \u306e\u6559\u79d1\u66f8","text":"

C++ \u306e\u5165\u9580\uff5e\u4e2d\u7d1a\u30ec\u30d9\u30eb\u306e\u591a\u304f\u306e\u60c5\u5831\uff08\u300e\u3084\u3055\u3057\u3044 C++ \u7b2c 5 \u7248\u300f\u306b\u52a0\u3048\u3001\u4f8b\u5916\u3084\u4e26\u5217\u51e6\u7406\uff09\u3092\u3001\u7d04 300 \u30da\u30fc\u30b8\u306b\u52b9\u7387\u3088\u304f\u5727\u7e2e\u3057\u3066\u7d39\u4ecb\u3057\u3066\u3044\u307e\u3059\u3002\u5c11\u3057\u3060\u3051 C++ \u3092\u4f7f\u3063\u305f\u3053\u3068\u306e\u3042\u308b\u4eba\u3084\u3001C \u8a00\u8a9e\u306b\u6163\u308c\u3066\u3044\u308b\u4eba\u304c\u3001\u77ed\u6642\u9593\u3067 C++ \u306e\u4e3b\u8981\u6a5f\u80fd\u3092\u30a4\u30f3\u30d7\u30c3\u30c8\u3059\u308b\u306e\u306b\u5411\u3044\u3066\u3044\u307e\u3059\u3002

"},{"location":"learn/books/#c_4","title":"\u6c5f\u6dfb\u4eae\u306e C++ \u5165\u9580","text":"

\u53e4\u3044 C++ \u3092\u5b66\u7fd2\u3057\u305f\u4eba\u304c\u3001\u6700\u65b0\u306e C++ \u306e\u6d41\u5100\u306b\u518d\u5165\u9580\u3059\u308b\u306e\u306b\u9069\u3057\u305f\u5165\u9580\u66f8\u3067\u3059\u3002

"},{"location":"learn/books/#4-c","title":"[\u6539\u8a02\u7b2c4\u7248] C++ \u30dd\u30b1\u30c3\u30c8\u30ea\u30d5\u30a1\u30ec\u30f3\u30b9","text":"

\u63b2\u8f09\u3055\u308c\u3066\u3044\u308b C++ \u306e\u6a5f\u80fd\u306e\u6570\u306f\u65ad\u30c8\u30c4\u306e\u30c8\u30c3\u30d7\u30af\u30e9\u30b9\u3067\u3059\u3002\u7dcf\u30da\u30fc\u30b8\u306e\u3046\u3061\u5927\u90e8\u5206\u304c\u6a19\u6e96\u30e9\u30a4\u30d6\u30e9\u30ea\u6a5f\u80fd\u306e\u89e3\u8aac\u3067\u3059\u304c\u3001100 \u30da\u30fc\u30b8\u4ee5\u4e0a\u3042\u308b\u7b2c 2 \u7ae0\u3067\u306f C++ \u306e\u8a00\u8a9e\u6a5f\u80fd\u3082\u7db2\u7f85\u7684\u306b\u89e3\u8aac\u3057\u3066\u3044\u307e\u3059\uff08\u56f3\u306a\u3069\u306f\u7121\u304f\u3001\u629c\u7c8b\u306e\u30b3\u30fc\u30c9\u304c\u307b\u3068\u3093\u3069\u306a\u306e\u3067\u521d\u5b66\u8005\u306b\u306f\u3084\u3084\u96e3\u3057\u3044\u3067\u3059\uff09\u3002\u5165\u9580\u66f8\u3068\u3044\u3046\u3088\u308a\u3082\u8f9e\u66f8\u7684\u306a\u6027\u683c\u304c\u5f37\u3044\u672c\u3067\u3059\u3002\u3042\u308b\u7a0b\u5ea6 C++ \u306e\u7d4c\u9a13\u3092\u7a4d\u3093\u3067\u304b\u3089\u3082\u304a\u4e16\u8a71\u306b\u306a\u308b\u672c\u3067\u3059\u3002

"},{"location":"learn/books/#_2","title":"\u6d0b\u66f8","text":"\u66f8\u540d \u767a\u884c\u5e74 C++ \u898f\u683c \u5185\u5bb9 C++ Templates: The Complete Guide (2nd Edition) 2017 C++17/20 C++17 \u306e\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8\u306e\u6587\u6cd5\u3084\u69d8\u3005\u306a\u30c6\u30af\u30cb\u30c3\u30af\u3092\u89e3\u8aac\u3002C++20 \u3067\u5c0e\u5165\u3055\u308c\u308b\u30b3\u30f3\u30bb\u30d7\u30c8\u306e\u7d39\u4ecb\u3082\u3002 \u76ee\u6b21 Mastering the C++17 STL 2017 C++17 C++17 \u307e\u3067\u306e\u6a19\u6e96\u30e9\u30a4\u30d6\u30e9\u30ea\u306e\u6a5f\u80fd\u3084\u4f7f\u3044\u65b9\u3092\u7d39\u4ecb\u3002\u76ee\u6b21 Professional C++, 4th Edition 2018 C++17 \u76ee\u6b21 Functional Programming in C++: How to improve your C++ programs using functional techniques 2018 C++17 C++ \u306b\u304a\u3051\u308b\u95a2\u6570\u578b\u30d7\u30ed\u30b0\u30e9\u30df\u30f3\u30b0\u3092\u8c4a\u5bcc\u306a\u56f3\u3067\u89e3\u8aac\u3002\u76ee\u6b21\u3068\u30d7\u30ec\u30d3\u30e5\u30fc C++ Concurrency in Action, Second Edition 2019 C++17 C++17 \u306b\u304a\u3051\u308b\u4e26\u884c\u51e6\u7406\u3092\u8a73\u7d30\u306b\u89e3\u8aac\u3002\u30ed\u30c3\u30af\u30d5\u30ea\u30fc\u30c7\u30fc\u30bf\u69cb\u9020\u306e\u8a2d\u8a08\u306a\u3069\u3082\u53d6\u308a\u4e0a\u3052\u308b\u3002\u8a66\u3057\u8aad\u307f C++17 in Detail 2019 C++17 C++17 \u306e\u4e3b\u8981\u306a\u65b0\u6a5f\u80fd\u30fb\u5909\u66f4\u70b9\u306e\u307b\u304b\u3001Boost \u304b\u3089\u6a19\u6e96\u30e9\u30a4\u30d6\u30e9\u30ea\u3078\u306e\u79fb\u884c\u3092\u89e3\u8aac\u3002\u76ee\u6b21 C++17 - The Complete Guide 2019 C++17 \u76ee\u6b21 C++ Crash Course: A Fast-Paced Introduction 2019 C++17 \uff08\u8abf\u67fb\u4e2d\uff09 Advanced C++ Programming Cookbook 2020 C++20 \u76ee\u6b21 / \u30b5\u30f3\u30d7\u30eb\u30b3\u30fc\u30c9 C++ System Programming Cookbook 2020 C++20 \u76ee\u6b21 / \u30b5\u30f3\u30d7\u30eb\u30b3\u30fc\u30c9 Expert C++ 2020 C++20 \u76ee\u6b21 / \u30b5\u30f3\u30d7\u30eb\u30b3\u30fc\u30c9 C++ Lambda Story 2020 C++20 \u30e2\u30c0\u30f3 C++ \u306b\u304a\u3051\u308b\u30e9\u30e0\u30c0\u5f0f\u306e\u6a5f\u80fd\u3084\u305d\u306e\u5909\u9077\u3001\u30e9\u30e0\u30c0\u5f0f\u306e\u6d3b\u7528\u30c6\u30af\u30cb\u30c3\u30af\u3092\u89e3\u8aac\u3002\u76ee\u6b21 The C++ Standard Library 2020 C++20 C++20 \u307e\u3067\u306e\u6a19\u6e96\u30e9\u30a4\u30d6\u30e9\u30ea\u6a5f\u80fd\u3092\u89e3\u8aac\u3002\u76ee\u6b21 C++ Move Semantics - The Complete Guide: First Edition 2020 C++20 C++ \u306e\u30e0\u30fc\u30d6\u30bb\u30de\u30f3\u30c6\u30a3\u30af\u30b9\u3092\u89e3\u8aac\u3002\u76ee\u6b21 Modern C++ Programming Cookbook, 2nd Edition 2020 C++20 C++11\uff5eC++20 \u306e\u30e2\u30c0\u30f3\u306a\u6a5f\u80fd\u306e\u4f7f\u3044\u65b9\u3092\u89e3\u8aac\u3002\u30d1\u30bf\u30fc\u30f3\u3084\u30a4\u30c7\u30a3\u30aa\u30e0\u3001Boost.Test, Google Test, Catch2 \u3092\u4f7f\u3063\u305f\u30c6\u30b9\u30c8\u624b\u6cd5\u3082\u6271\u3046\u3002\u76ee\u6b21 Beginning C++20: From Novice to Professional Sixth Edition 2020 C++20 C++20 \u306b\u57fa\u3065\u3044\u305f C++ \u30d7\u30ed\u30b0\u30e9\u30df\u30f3\u30b0\u5165\u9580\u66f8\u3002853 \u30da\u30fc\u30b8\u3002\u76ee\u6b21 C++ Best Practices: 45ish Simple Rules with Specific Action Items for Better C++ 2021 C++20 \u3088\u308a\u826f\u3044 C++ \u30b3\u30fc\u30c7\u30a3\u30f3\u30b0\u306e\u305f\u3081\u306e 45 \u500b\u306e\u30eb\u30fc\u30eb\u3092\u8aac\u660e\u3002\u76ee\u6b21 Professional C++, 5th Edition 2021 C++20 2018 \u5e74\u306b\u767a\u58f2\u3055\u308c\u305f\u300eProfessional C++, 4th Edition\u300f\u306e C++20 \u5bfe\u5fdc\u7248\u30021312 \u30da\u30fc\u30b8 C++20: Get the Details 2021 C++20/23 C++20 \u306e\u65b0\u6a5f\u80fd\u3092 500 \u30da\u30fc\u30b8\u306b\u308f\u305f\u3063\u3066\u89e3\u8aac\u3002\u76ee\u6b21 Beautiful C++: 30 Core Guidelines for Writing Clean, Safe, and Fast Code 2021 C++20 C++ Core Guidelines \u306e\u3046\u3061\u7279\u306b\u91cd\u8981\u306a 30 \u9805\u76ee\u306b\u3064\u3044\u3066\u3001\u5b9f\u8df5\u7684\u306a\u30b5\u30f3\u30d7\u30eb\u3084\u89e3\u8aac\u3092\u63d0\u4f9b\u3002\u76ee\u6b21 / \u30b5\u30f3\u30d7\u30eb\u30b3\u30fc\u30c9"},{"location":"learn/books/#_3","title":"\u6280\u8853\u540c\u4eba\u8a8c","text":"\u66f8\u540d \u767a\u8868\u5e74 C++ \u898f\u683c \u5185\u5bb9 C++ \u6a19\u6e96\u7684\u30a4\u30f3\u30bf\u30fc\u30d5\u30a7\u30fc\u30b9 2020 C++17/20 C++ \u6a19\u6e96\u30e9\u30a4\u30d6\u30e9\u30ea\u306e\u30a4\u30f3\u30bf\u30fc\u30d5\u30a7\u30fc\u30b9\u306b\u3064\u3044\u3066\u89e3\u8aac\u3002\u76ee\u6b21\u3068\u30b5\u30f3\u30d7\u30eb C++20 Modules \u7b2c2\u7248 2020 C++20 C++20 \u304b\u3089\u8ffd\u52a0\u3055\u308c\u308b\u30e2\u30b8\u30e5\u30fc\u30eb\u306e\u4ed5\u69d8\u3092\u89e3\u8aac\u3002\u76ee\u6b21\u3068\u30b5\u30f3\u30d7\u30eb C++ \u96c6\u6210\u4f53 2020 C++20 C++20 \u306b\u304a\u3051\u308b\u96c6\u6210\u4f53\u578b\u306b\u3064\u3044\u3066\u89e3\u8aac\u3002\u76ee\u6b21\u3068\u30b5\u30f3\u30d7\u30eb \u30b2\u30fc\u30e0\u958b\u767a\u8005\u306e\u305f\u3081\u306e C++11\uff5eC++20 \u6280\u8853\u66f8\u517810 Ver. 2020 C++20/23 CEDEC 2020 \u8b1b\u6f14\u3067\u306e C++11\uff5eC++20 \u6a5f\u80fd\u89e3\u8aac\u306b\u8ffd\u52a0\u306e\u8aac\u660e\u3084\u30b5\u30f3\u30d7\u30eb\u3001C++23 \u60c5\u5831\u3092\u52a0\u7b46\u3057\u305f\u672c\u3002Zenn \u7248 C++ \u30de\u30eb\u30c1\u30b9\u30ec\u30c3\u30c9\u4e00\u5de1\u308a 2021 C++20 C++11\uff5e20 \u6a19\u6e96\u30e9\u30a4\u30d6\u30e9\u30ea\u3067\u63d0\u4f9b\u3055\u308c\u308b\u30de\u30eb\u30c1\u30b9\u30ec\u30c3\u30c9\u95a2\u9023\u6a5f\u80fd\u3092\u89e3\u8aac \u7af6\u30d7\u30ed\u306e\u305f\u3081\u306e\u6a19\u6e96 C++ 2021 C++17 \u7af6\u6280\u30d7\u30ed\u30b0\u30e9\u30df\u30f3\u30b0\u3067\u4f7f\u3048\u308b C++ \u306e\u4e3b\u8981\u306a\u6a19\u6e96\u6a5f\u80fd\u306e\u30b5\u30f3\u30d7\u30eb\u4ed8\u304d\u89e3\u8aac C++20 ranges 2021 C++20 C++20 \u306e Ranges \u30e9\u30a4\u30d6\u30e9\u30ea\u306e\u4f7f\u3044\u65b9\u3084\u8a2d\u8a08\u3092\u89e3\u8aac (164 \u30da\u30fc\u30b8) C++20 \u30b3\u30a2\u8a00\u8a9e\u6a5f\u80fd 2022 C++20 C++20 \u30b3\u30a2\u8a00\u8a9e\u306b\u8ffd\u52a0\u3055\u308c\u305f\u6a5f\u80fd\u3092\u89e3\u8aac (128 \u30da\u30fc\u30b8) C++20 \u30e9\u30a4\u30d6\u30e9\u30ea\u6a5f\u80fd Vol.1 2022 C++20 C++20\u3067\u65b0\u305f\u306b\u8ffd\u52a0\u3055\u308c\u305f\u6a19\u6e96\u30e9\u30a4\u30d6\u30e9\u30ea\u6a5f\u80fd\u306e\u3046\u3061\u3001\u898f\u6a21\u306e\u5927\u304d\u306a\u3082\u306e\u306b\u7d5e\u3063\u3066\u89e3\u8aac (222 \u30da\u30fc\u30b8) C++20 \u30e9\u30a4\u30d6\u30e9\u30ea\u6a5f\u80fd Vol.2 2022 C++20 Vol.1 \u3067\u53d6\u308a\u6271\u3063\u3066\u3044\u306a\u3044\u6a5f\u80fd\u3092\u89e3\u8aac (174 \u30da\u30fc\u30b8) return \u6587\u3067\u8d77\u3053\u308b\u3053\u3068 2023 C++20/23 C++ \u306e return \u6587\u306b\u95a2\u3059\u308b\u30c8\u30d4\u30c3\u30af\u3092\u89e3\u8aac\uff0872 \u30da\u30fc\u30b8\uff09 C++23 ranges 2023 C++23 C++23 \u306e Ranges \u30e9\u30a4\u30d6\u30e9\u30ea\u306e\u4f7f\u3044\u65b9\u3084\u8a2d\u8a08\u3092\u89e3\u8aac\uff08166 \u30da\u30fc\u30b8\uff09"},{"location":"learn/communities/","title":"C++ \u30b3\u30df\u30e5\u30cb\u30c6\u30a3","text":"

C++ \u306e\u30aa\u30f3\u30e9\u30a4\u30f3\u30b3\u30df\u30e5\u30cb\u30c6\u30a3\u3067\u3059\u3002

"},{"location":"learn/communities/#_1","title":"\u30e6\u30fc\u30b6\u30b0\u30eb\u30fc\u30d7","text":""},{"location":"learn/communities/#cpplang-slack","title":"Cpplang Slack","text":"

https://cppalliance.org/slack/

1 \u4e07\u4eba\u4ee5\u4e0a\u304c\u767b\u9332\u3057\u3001100 \u4ee5\u4e0a\u306e\u30c1\u30e3\u30f3\u30cd\u30eb\u304c\u5b58\u5728\u3059\u308b\u3001C++ \u306b\u95a2\u3059\u308b\u4e16\u754c\u6700\u5927\u306e Slack \u30ef\u30fc\u30af\u30b9\u30da\u30fc\u30b9\u3067\u3059\u3002\u4e0a\u8a18\u30da\u30fc\u30b8\u306b\u30e1\u30fc\u30eb\u30a2\u30c9\u30ec\u30b9\u3092\u5165\u529b\u3059\u308b\u3068\u62db\u5f85\u30e1\u30fc\u30eb\u304c\u5c4a\u304d\u307e\u3059\u3002

"},{"location":"learn/communities/#reddit-rcpp","title":"reddit (r/cpp)","text":"

https://www.reddit.com/r/cpp/

C++ \u306e\u30cb\u30e5\u30fc\u30b9\u63b2\u793a\u677f\u3002

"},{"location":"learn/communities/#cjp-facebook","title":"C++JP Facebook \u30b0\u30eb\u30fc\u30d7","text":"

https://www.facebook.com/groups/cppjp/

400 \u4eba\u4ee5\u4e0a\u304c\u53c2\u52a0\u3059\u308b\u3001\u65e5\u672c\u306e C++ \u30d7\u30ed\u30b0\u30e9\u30de\u306e\u305f\u3081\u306e Facebook \u30b0\u30eb\u30fc\u30d7\u3067\u3059\u3002\u66f8\u7c4d\u3084\u30a4\u30d9\u30f3\u30c8\u306e\u60c5\u5831\u304c\u6295\u7a3f\u3055\u308c\u3066\u3044\u307e\u3059\u3002

"},{"location":"learn/communities/#c-twitter","title":"C++ Twitter \u30b3\u30df\u30e5\u30cb\u30c6\u30a3 (\u65e5\u672c\u8a9e)","text":"

https://twitter.com/i/communities/1499396722514345984

C++ \u30e6\u30fc\u30b6\u304c\u96c6\u307e\u308b\u3001\u65e5\u672c\u8a9e\u306e Twitter \u30b3\u30df\u30e5\u30cb\u30c6\u30a3\u3067\u3059\u3002

"},{"location":"learn/communities/#c-twitter_1","title":"C++ Twitter \u30b3\u30df\u30e5\u30cb\u30c6\u30a3 (\u82f1\u8a9e)","text":"

https://twitter.com/i/communities/1508588673310277633

C++ \u30e6\u30fc\u30b6\u304c\u96c6\u307e\u308b\u3001\u82f1\u8a9e\u306e Twitter \u30b3\u30df\u30e5\u30cb\u30c6\u30a3\u3067\u3059\u3002

"},{"location":"learn/communities/#q-a","title":"\u65e5\u672c\u8a9e\u306e Q & A \u30b5\u30a4\u30c8","text":""},{"location":"learn/communities/#stack-overflow","title":"Stack Overflow (\u65e5\u672c\u8a9e\u7248)","text":"

C++ \u30bf\u30b0\u304c\u4ed8\u3044\u305f\u8cea\u554f: https://ja.stackoverflow.com/questions/tagged/c%2b%2b

"},{"location":"learn/communities/#teratail","title":"teratail","text":"

C++ \u30bf\u30b0\u304c\u4ed8\u3044\u305f\u8cea\u554f: https://teratail.com/search?q=C%2B%2B

"},{"location":"learn/communities/#_2","title":"\u56fd\u5185\u63b2\u793a\u677f\u30b9\u30ec\u30c3\u30c9","text":""},{"location":"learn/conferences/","title":"C++ \u30ab\u30f3\u30d5\u30a1\u30ec\u30f3\u30b9","text":"

C++ \u306b\u95a2\u3059\u308b\u30ab\u30f3\u30d5\u30a1\u30ec\u30f3\u30b9\u3068\u767a\u8868\u8cc7\u6599\u3078\u306e\u30ea\u30f3\u30af\u3067\u3059\u3002

"},{"location":"learn/conferences/#_1","title":"\u904e\u53bb\u306e\u8b1b\u6f14\u306e\u30ad\u30fc\u30ef\u30fc\u30c9\u691c\u7d22","text":""},{"location":"learn/conferences/#cnow","title":"C++Now","text":"

https://cppnow.org/ | YouTube

"},{"location":"learn/conferences/#cppcon","title":"CppCon","text":"

https://cppcon.org/ | YouTube

"},{"location":"learn/conferences/#accu","title":"ACCU","text":"

https://accu.org/conf-main/main/ | YouTube

"},{"location":"learn/conferences/#c-russia","title":"C++ Russia","text":"

https://cppconf-moscow.ru/en/ | YouTube

"},{"location":"learn/conferences/#core-c","title":"Core C++","text":"

https://corecpp.org/ | YouTube

"},{"location":"learn/conferences/#meeting-c","title":"Meeting C++","text":"

https://meetingcpp.com/

"},{"location":"learn/conferences/#codedive","title":"code::dive","text":"

https://codedive.pl/

"},{"location":"learn/conferences/#_2","title":"\u53c2\u8003\u6587\u732e","text":""},{"location":"learn/online-resources/","title":"C++ \u30aa\u30f3\u30e9\u30a4\u30f3\u8cc7\u6599","text":"

\u30aa\u30f3\u30e9\u30a4\u30f3\u3067\u30a2\u30af\u30bb\u30b9\u3067\u304d\u308b C++ \u30ea\u30bd\u30fc\u30b9\u3067\u3059\u3002

"},{"location":"learn/online-resources/#_1","title":"\u65e5\u672c\u8a9e\u306e\u30ea\u30d5\u30a1\u30ec\u30f3\u30b9\u30fb\u89e3\u8aac\u30b5\u30a4\u30c8","text":""},{"location":"learn/online-resources/#_2","title":"\u82f1\u8a9e\u306e\u30ea\u30d5\u30a1\u30ec\u30f3\u30b9","text":""},{"location":"learn/online-resources/#_3","title":"\u30d7\u30ec\u30bc\u30f3\u30c6\u30fc\u30b7\u30e7\u30f3","text":""},{"location":"learn/online-resources/#_4","title":"\u8ad6\u6587","text":""},{"location":"learn/online-resources/#_5","title":"\u30b3\u30fc\u30c7\u30a3\u30f3\u30b0\u30ac\u30a4\u30c9\u30e9\u30a4\u30f3","text":""},{"location":"learn/online-resources/#c_1","title":"C++ \u898f\u683c\u95a2\u9023","text":""},{"location":"learn/online-resources/#faq","title":"FAQ","text":""},{"location":"learn/studymeetings/","title":"\u56fd\u5185\u306e C++ \u52c9\u5f37\u4f1a","text":"

\u56fd\u5185\u3067\u958b\u50ac\u3055\u308c\u3066\u3044\u308b C++ \u95a2\u9023\u306e\u52c9\u5f37\u4f1a\u30a4\u30d9\u30f3\u30c8\u3067\u3059\u3002

"},{"location":"learn/studymeetings/#c_1","title":"\u5927\u962a C++ \u8aad\u66f8\u4f1a","text":"

\u5927\u962a\u3067C++\u306b\u95a2\u3059\u308b\u3082\u306e\u3092\u8aad\u307f\u9032\u3081\u308b\u4f1a\u3067\u3059\u3002 \u8ab0\u304b\u304c\u767a\u8868\u3059\u308b\u3068\u3044\u3063\u305f\u30b9\u30bf\u30a4\u30eb\u3067\u306f\u306a\u304f\u3001\u307f\u3093\u306a\u3067\u308f\u304b\u3089\u306a\u3044\u3068\u3053\u308d\u3092\u8a71\u3057\u5408\u3063\u3066\u8aad\u3093\u3067\u3044\u304f\u30b9\u30bf\u30a4\u30eb\u306e\u4f1a\u3067\u3059\u3002

"},{"location":"learn/studymeetings/#c-meetup","title":"C++ Meetup","text":"

\u30a6\u30fc\u30d6\u30f3\u30fb\u30d0\u30a4\u30fb\u30c8\u30e8\u30bf\u304c\u4e3b\u50ac\u3059\u308b\u3001C++ \u5c02\u9580\u5bb6\u3092\u62db\u3044\u305f\u30d1\u30cd\u30eb\u30c7\u30a3\u30b9\u30ab\u30c3\u30b7\u30e7\u30f3\u3067\u3059\u3002

"},{"location":"learn/studymeetings/#c-meetup-2024-03-21","title":"C++ Meetup (2024-03-21)","text":""},{"location":"learn/studymeetings/#c-meetup-2023-11-21","title":"C++ Meetup (2023-11-21)","text":""},{"location":"learn/studymeetings/#c-meetup-2023-06-07","title":"C++ Meetup (2023-06-07)","text":""},{"location":"learn/studymeetings/#c-meetup-2023-02-28","title":"C++ Meetup (2023-02-28)","text":""},{"location":"learn/studymeetings/#c-meetup-2022-11-22","title":"C++ Meetup (2022-11-22)","text":""},{"location":"learn/studymeetings/#c-mix","title":"C++ MIX","text":"

\u300cC++ MIX\u300d\u306f\u3001C++\u5468\u8fba\u306e\u52c9\u5f37\u4f1a\u3067\u3059\u3002 \u6a19\u6e96C++\u3001\u6a19\u6e96\u5916\u306e\u30e9\u30a4\u30d6\u30e9\u30ea\u3084\u30c4\u30fc\u30eb\u306e\u7d39\u4ecb\u306f\u3082\u3061\u308d\u3093\u3067\u3059\u304c\u3001Rust\u3084Go\u306a\u3069\u306e\u5f8c\u7d99\u8a00\u8a9e\u306e\u3088\u3046\u306b\u3001C++\u30d7\u30ed\u30b0\u30e9\u30de\u306b\u77e5\u3063\u3066\u3082\u3089\u3044\u305f\u3044\u8a71\u3092\u5e83\u304f\u6271\u3063\u3066\u3044\u304d\u307e\u3059\u3002 \u3053\u306e\u52c9\u5f37\u4f1a\u3067\u306f\u3001\u767a\u8868\u8005\u306b\u3088\u308b\u30d7\u30ec\u30bc\u30f3\u30c6\u30fc\u30b7\u30e7\u30f3\u3060\u3051\u3067\u306a\u304f\u3001\u53c2\u52a0\u8005\u306e\u307f\u306a\u3055\u3093\u3068\u8b70\u8ad6\u3059\u308b\u6642\u9593\u3082\u4eca\u5f8c\u7528\u610f\u3057\u3066\u3044\u304d\u305f\u3044\u3068\u8003\u3048\u3066\u3044\u307e\u3059\u3002

"},{"location":"learn/studymeetings/#c-mix-13-2025-02-21","title":"C++ MIX #13 (2025-02-21)","text":"\u30bf\u30a4\u30c8\u30eb \u767a\u8868\u8005 \u30e0\u30fc\u30d3\u30fc \u52c9\u5f37\u4f1a\u3068\u4f1a\u5834\u306e\u8aac\u660e Akira Takahashi \u30d7\u30e9\u30b0\u30a4\u30f3\u958b\u767a\u3067\u5b66\u7fd2\u3059\u308bUnrealEngine C++\uff08\u6982\u8981\u7de8\uff09 \u837b\u91ce\u96c4\u5b63 C++23\u30b8\u30a7\u30cd\u30ec\u30fc\u30bf\u306e\u7d39\u4ecb yohhoy GCC\u306e\\<type_traits>\u6700\u9069\u5316 (\u30ea\u30e2\u30fc\u30c8\u767a\u8868\u4e88\u5b9a) Ken Matsui \u30ab\u30b8\u30e5\u30a2\u30eb\u30c7\u30a3\u30b9\u30ab\u30c3\u30b7\u30e7\u30f3 (\u5168\u54e1\u53c2\u52a0)"},{"location":"learn/studymeetings/#c-mix-12-2024-12-20","title":"C++ MIX #12 (2024-12-20)","text":"\u30bf\u30a4\u30c8\u30eb \u767a\u8868\u8005 \u30e0\u30fc\u30d3\u30fc \u52c9\u5f37\u4f1a\u3068\u4f1a\u5834\u306e\u8aac\u660e Akira Takahashi C++26\u304b\u3089\u5c0e\u5165\u3055\u308c\u308b\u300c\u30a8\u30e9\u30fc\u6027\u52d5\u4f5c\u300d\u3092\u89e3\u8aac Akira Takahashi Range\u30a2\u30c0\u30d7\u30bf\u3092\u4f5c\u308b Tetsuro Matsumura HTTP/3\u30b5\u30fc\u30d0\u5b9f\u88c5\u306b\u3064\u3044\u3066 \u6771\u5c71\u88d5\u5fb3 return\u6587\u306b\u304a\u3051\u308bmove\u306b\u3064\u3044\u3066 \u5b89\u85e4\u5f18\u6643 \u30ab\u30b8\u30e5\u30a2\u30eb\u30c7\u30a3\u30b9\u30ab\u30c3\u30b7\u30e7\u30f3 (\u5168\u54e1\u53c2\u52a0)"},{"location":"learn/studymeetings/#c-mix-11-2024-06-14","title":"C++ MIX #11 (2024-06-14)","text":"\u30bf\u30a4\u30c8\u30eb \u767a\u8868\u8005 \u30e0\u30fc\u30d3\u30fc \u52c9\u5f37\u4f1a\u3068\u4f1a\u5834\u306e\u8aac\u660e Akira Takahashi \u30b3\u30f3\u30c6\u30ca\u3068\u6587\u5b57\u5217\u306e\u4e2d\u9593\u30a4\u30f3\u30bf\u30d5\u30a7\u30fc\u30b9span\u3068string_view Akira Takahashi C++23 \u30b9\u30bf\u30c3\u30af\u30c8\u30ec\u30fc\u30b9\u30e9\u30a4\u30d6\u30e9\u30ea Akira Takahashi \u6700\u77ed 1 \u884c\u3001C++ \u3068 Siv3D \u3067\u751f\u6210 AI \u6d3b\u7528\u30a2\u30d7\u30ea\u3092\u4f5c\u308b Ryo Suzuki \u3053\u308c\u3063\u3066\u3069\u3046\u8aad\u3080\u306e\u2026\uff1f \u897f\u5c71 \u4fe1\u884c \u30ab\u30b8\u30e5\u30a2\u30eb\u30c7\u30a3\u30b9\u30ab\u30c3\u30b7\u30e7\u30f3 (\u5168\u54e1\u53c2\u52a0)"},{"location":"learn/studymeetings/#c-mix-10-2024-04-19","title":"C++ MIX #10 (2024-04-19)","text":"\u30bf\u30a4\u30c8\u30eb \u767a\u8868\u8005 \u30e0\u30fc\u30d3\u30fc \u52c9\u5f37\u4f1a\u3068\u4f1a\u5834\u306e\u8aac\u660e Akira Takahashi x64 \u306e\u30b9\u30ab\u30e9\u30fc\uff0cSIMD \u6f14\u7b97\u6027\u80fd\u3092\u6e2c\u3063\u3066\u307f\u305f \u9234\u6728 \u5b97\u826f Boost.Asio\u306b\u304a\u3051\u308bcoroutine\u306e\u6d3b\u7528\u6cd5 \u8fd1\u85e4\u8cb4\u4fca if constexpr\u6587\u306f\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8\u4e16\u754c\u306e\u30e9\u30e0\u30c0\u5f0f\u3067\u3042\u308b Akira Takahashi \u30ab\u30b8\u30e5\u30a2\u30eb\u30c7\u30a3\u30b9\u30ab\u30c3\u30b7\u30e7\u30f3 (\u5168\u54e1\u53c2\u52a0)"},{"location":"learn/studymeetings/#c-mix-9-2024-02-09","title":"C++ MIX #9 (2024-02-09)","text":"\u30bf\u30a4\u30c8\u30eb \u767a\u8868\u8005 \u30e0\u30fc\u30d3\u30fc \u52c9\u5f37\u4f1a\u3068\u4f1a\u5834\u306e\u8aac\u660e Akira Takahashi C++\u3068Win32 API\u3092\u5229\u7528\u3057\u305f\u4e2d\u54c1\u8cea\u306a\u30ea\u30bd\u30fc\u30b9\u30d5\u30a1\u30a4\u30eb\u306e\u30db\u30c3\u30c8\u30ea\u30ed\u30fc\u30c9 \u837b\u91ce\u96c4\u5b63 C++\u3067\u3064\u304f\u308b\u6b74\u53f2\u30b7\u30df\u30e5\u30ec\u30fc\u30b7\u30e7\u30f3GIS Hayato Kasuga \u4f7f\u3044\u305f\u3044\u6a19\u6e96C++\u6a5f\u80fd\u304c\u306a\u3044\u74b0\u5883\u3067\u3044\u304b\u306b\u5b9f\u88c5\u30fb\u8a2d\u8a08\u3059\u308b\u304b Akira Takahashi C++ \u958b\u767a\u304c\u5c11\u3057\u4fbf\u5229\u306b\u306a\u308b Visual Studio \u306e\u6700\u8fd1\u306e\u6a5f\u80fd Ryo Suzuki \u30ab\u30b8\u30e5\u30a2\u30eb\u30c7\u30a3\u30b9\u30ab\u30c3\u30b7\u30e7\u30f3 (\u5168\u54e1\u53c2\u52a0)"},{"location":"learn/studymeetings/#c-mix-8-2023-12-06","title":"C++ MIX #8 (2023-12-06)","text":"\u30bf\u30a4\u30c8\u30eb \u767a\u8868\u8005 \u30e0\u30fc\u30d3\u30fc \u52c9\u5f37\u4f1a\u3068\u4f1a\u5834\u306e\u8aac\u660e Akira Takahashi C++20\u304b\u3089C++23\u3067\u306e\u5909\u5316 Akira Takahashi \u30aa\u30ec\u30aa\u30ecGithub Copilot\u3092\u4f5c\u308d\u3046 Shintarou Okada \u672a\u5b9a\u7fa9\u52d5\u4f5c\u3067FizzBuzz kaityo256 \u69cb\u6587\u89e3\u6790\u3067\u4f7f\u3048\u308bC++\u306e\u30c6\u30af\u30cb\u30c3\u30af Ryosuke Hirakida \u30c7\u30a3\u30b9\u30ab\u30c3\u30b7\u30e7\u30f3 (\u5168\u54e1\u53c2\u52a0)"},{"location":"learn/studymeetings/#c-mix-7-2020-01-29","title":"C++ MIX #7 (2020-01-29)","text":"\u30bf\u30a4\u30c8\u30eb \u767a\u8868\u8005 \u30e0\u30fc\u30d3\u30fc \u52c9\u5f37\u4f1a\u3068\u4f1a\u5834\u306e\u8aac\u660e Akira Takahashi \u86c7\u3092\u57cb\u846c\u3059\u308b Shintarou Okada \u307f\u3093\u306a\u5927\u597d\u304d\uff01using \u30c7\u30a3\u30ec\u30af\u30c6\u30a3\u30d6\uff01 Kariya Mitsuru \u307f\u3093\u306a\u4ee3\u66ff\u30c8\u30fc\u30af\u30f3\u4f7f\u3068\u308b\u3002\u4f7f\u3066\u3078\u3093\u306e\u304a\u524d\u3060\u3051\u3002 Kariya Mitsuru \u7d9a\u30fb\u30e2\u30b8\u30e5\u30fc\u30eb Tetsuro Matsumura Rust\u3068C++\u3092\u6bd4\u3079\u3066\u307f\u305f\uff08\u5f53\u793e\u6bd4\uff09 \u3044\u306a\u3080\u306e\u307f\u305f\u307e \u30c7\u30a3\u30b9\u30ab\u30c3\u30b7\u30e7\u30f3 (\u5168\u54e1\u53c2\u52a0)"},{"location":"learn/studymeetings/#c-mix-6-2019-11-20","title":"C++ MIX #6 (2019-11-20)","text":"\u30bf\u30a4\u30c8\u30eb \u767a\u8868\u8005 \u30e0\u30fc\u30d3\u30fc \u52c9\u5f37\u4f1a\u3068\u4f1a\u5834\u306e\u8aac\u660e Akira Takahashi std::format - C++20 \u6642\u4ee3\u306e\u4fbf\u5229\u306a\u6587\u5b57\u5217\u30d5\u30a9\u30fc\u30de\u30c3\u30c8 Ryo Suzuki \u30a4\u30f3\u30bf\u30fc\u30f3\u30b7\u30c3\u30d7\u3067C++\u3092\u4f7f\u7528\u3057\u305f\u30b2\u30fc\u30e0\u958b\u767a\u3092\u7d4c\u9a13\u3057\u305f\u8a71 \u304c\u3063\u3061\u3087 \u30b3\u30f3\u30d1\u30a4\u30e9\u306e\u3044\u3058\u3081\u65b9 kaityo256 \u66f8\u7c4d\u300e\u72ec\u7fd2C++\u300f\u306e\u6539\u8a02\u306b\u3064\u3044\u3066 (\u4eee) Flast \u30c7\u30a3\u30b9\u30ab\u30c3\u30b7\u30e7\u30f3 (\u5168\u54e1\u53c2\u52a0)"},{"location":"learn/studymeetings/#c-mix-5-2019-09-04","title":"C++ MIX #5 (2019-09-04)","text":"\u30bf\u30a4\u30c8\u30eb \u767a\u8868\u8005 \u30e0\u30fc\u30d3\u30fc \u52c9\u5f37\u4f1a\u3068\u4f1a\u5834\u306e\u8aac\u660e Shintaro Okada \u81ea\u4f5cOS\u5411\u3051\u306blibc++\u3092\u30d3\u30eb\u30c9\u3059\u308b\u65b9\u6cd5 uchan C++ \u88fd\u30b0\u30e9\u30d5\u30a3\u30c3\u30af\u30e9\u30a4\u30d6\u30e9\u30ea Skia \u306e\u7d39\u4ecb \u6c34\u97f3\u3074\u306d Unreal C++ \u3092\u59cb\u3081\u3066\u307f\u305f\u6642\u306e\u8e93\u3044\u305fTips akoto C++20\u30b9\u30c6\u30fc\u30bf\u30b9 Akira Takahashi 20\u5206\u304f\u3089\u3044\u3067\u308f\u304b\u3063\u305f\u6c17\u5206\u306b\u306a\u308c\u308bC++20\u30b3\u30eb\u30fc\u30c1\u30f3 yohhoy \u30c7\u30a3\u30b9\u30ab\u30c3\u30b7\u30e7\u30f3 (\u5168\u54e1\u53c2\u52a0)"},{"location":"learn/studymeetings/#c-mix-4-2019-06-26","title":"C++ MIX #4 (2019-06-26)","text":"\u30bf\u30a4\u30c8\u30eb \u767a\u8868\u8005 \u30e0\u30fc\u30d3\u30fc \u52c9\u5f37\u4f1a\u3068\u4f1a\u5834\u306e\u8aac\u660e Shintaro Okada C++ \u3067\u3082 Result \u3057\u305f\u3044 \u3044\u306a\u3080\u306e\u307f\u305f\u307e (@mitama_rs) \u4e16\u754c\u3092\u5275\u9020\u3059\u308b OSS \u958b\u767a\u3092\u59cb\u3081\u305f\u8a71 \u304c\u3063\u3061\u3087 C++ \u3067 HTTP Proxy \u6771\u5c71\u88d5\u5fb3 \u30e2\u30b8\u30e5\u30fc\u30eb\u306e\u6982\u8981 Tetsuro Matsumura"},{"location":"learn/studymeetings/#c-mix-3-2019-04-17","title":"C++ MIX #3 (2019-04-17)","text":"\u30bf\u30a4\u30c8\u30eb \u767a\u8868\u8005 \u30e0\u30fc\u30d3\u30fc \u52c9\u5f37\u4f1a\u3068\u4f1a\u5834\u306e\u8aac\u660e Shintaro Okada Clang\u306breflection/metaclass\u63d0\u6848\u3063\u307d\u3044\u3082\u306e\u3092\u5b9f\u88c5\u3057\u3066\u307f\u305f\u8a71 Iwahori Kodai C++ \u60c5\u5831\u30b5\u30a4\u30c8\u300cC++ \u306e\u6b69\u304d\u65b9 | cppmap\u300d\u3092\u4f5c\u3063\u3066\u3044\u308b\u8a71 Ryo Suzuki \u30c7\u30fc\u30bf\u30d9\u30fc\u30b9\u3068\u30dd\u30ea\u30e2\u30fc\u30d5\u30a3\u30ba\u30e0\u3068Modern C++ \u5b89\u9054\u4fca\u8cb4 C++20\u306e\u6982\u8981 #1 \u8a00\u8a9e\u6a5f\u80fd\u7de8 Akira Takahash"},{"location":"learn/studymeetings/#c-mix-2-2019-02-20","title":"C++ MIX #2 (2019-02-20)","text":"\u30bf\u30a4\u30c8\u30eb \u767a\u8868\u8005 \u30e0\u30fc\u30d3\u30fc \u52c9\u5f37\u4f1a\u3068\u4f1a\u5834\u306e\u8aac\u660e Akira Takahashi iOS\u30a2\u30d7\u30ea\u300e\u30d1\u30ba\u30e2\u30ca\u300f\u306e\u3072\u307f\u3064 Nobuyuki Nishiyama Qt\u00d7Reactive Extensions Tetsuro Matsumura C++\u306e\u30d1\u30c3\u30b1\u30fc\u30b8\u30de\u30cd\u30fc\u30b8\u30e3\u300cpoac\u300d\u3092\u958b\u767a\u3057\u305f\u8a71 Ken Matsui \u96d1\u8ac7\u30bf\u30a4\u30e0"},{"location":"learn/studymeetings/#c-mix-1-2018-12-06","title":"C++ MIX #1 (2018-12-06)","text":"\u30bf\u30a4\u30c8\u30eb \u767a\u8868\u8005 \u30e0\u30fc\u30d3\u30fc \u52c9\u5f37\u4f1a\u3068\u4f1a\u5834\u3001\u6700\u8fd1\u306eC++\u306e\u8aac\u660e Akira Takahashi Menoh\u306b\u304a\u3051\u308b C++\u5b9f\u88c5 / C API / C++API okdshin Undefined Behavior\u306b\u5bfe\u3059\u308b\u9632\u885b\u8853 \u3044\u306a\u3080\u306e\u307f\u305f\u307e C++ \u3092\u6559\u3048\u308b \uff5e\u65e9\u7a32\u7530\u5927\u5b66\u306e\u5c0f\u4e2d\u9ad8\u751f\u5411\u3051\u30d7\u30ed\u30b0\u30e9\u30df\u30f3\u30b0\u6559\u5ba4\u306b\u304a\u3051\u308b\u4e8b\u4f8b\u7d39\u4ecb\uff5e Reputeless \u907f\u3051\u3088\u3046 memset \u306e\u4e71\u7528 agate-pris"},{"location":"learn/studymeetings/#talkcpp","title":"talk.cpp","text":"

talk.cpp \u306f\u3001\u52d5\u753b\u3068\u8cea\u7591\u5fdc\u7b54\u306b\u3088\u308b\u767a\u8868\u30fb\u8b70\u8ad6\u3092\u901a\u3057\u3066\u3001C++ \u30e6\u30fc\u30b6\u3069\u3046\u3057\u304c\u77e5\u898b\u3084\u30a2\u30a4\u30c7\u30a2\u3092\u5171\u6709\u3059\u308b\u3001\u53c2\u52a0\u7121\u6599\u306e\u6280\u8853\u30a4\u30d9\u30f3\u30c8\u3067\u3059\u3002\u5b8c\u5168\u30aa\u30f3\u30e9\u30a4\u30f3\u3067\u306e\u5b9f\u65bd\u3092\u524d\u63d0\u306b\u3057\u305f\u3001\u65b0\u3057\u3044\u30b9\u30bf\u30a4\u30eb\u306e\u767a\u8868\u65b9\u5f0f\u3092\u63a1\u7528\u3057\u3066\u3044\u307e\u3059\u3002

"},{"location":"learn/studymeetings/#featurecpp","title":"feature.cpp","text":"

C++17\u306e\u65b0\u6a5f\u80fd\u306b\u3064\u3044\u3066\u3001\u5fa9\u7fd2\uff06\u4e88\u7fd2\u3092\u3057\u307e\u305b\u3093\u304b\uff1f \u30fbC++17\u304c\u51fa\u305f\u307f\u305f\u3044\u3060\u3051\u3069\u3001\u4f55\u304c\u65b0\u3057\u304f\u306a\u3063\u305f\u306e\u304c\u5168\u7136\u8ffd\u3048\u3066\u306a\u3044\u2026\uff1e\uff1c \u30fb\u8272\u3093\u306a\u6a5f\u80fd\u304c\u5165\u3063\u3066\u308b\u307f\u305f\u3044\u3060\u3051\u3069\u3001\u672c\u5f53\u306b\u6291\u3048\u3068\u304f\u3079\u304d\u6a5f\u80fd\u3084\u30e9\u30a4\u30d6\u30e9\u30ea\u3063\u3066\u4f55\u306a\u3093\u3060\u308d\uff1f \u30fb\u4ed6\u306e\u4eba\u304c\u3069\u3046\u8003\u3048\u3066\u3044\u308b\u304b\u77e5\u308a\u305f\u3044\u2026 \u3053\u3093\u306a\u4eba\u306f\u3001\u4e00\u5ea6\u3001\u3053\u306e\u96c6\u307e\u308a\u306b\u53c2\u52a0\u3057\u3066\u307f\u3066\u304f\u3060\u3055\u3044 \u8cea\u7591\u5fdc\u7b54\u30fb\u30c7\u30a3\u30b9\u30ab\u30c3\u30b7\u30e7\u30f3\u5f62\u5f0f\u3067\u9032\u3081\u308b\u4e88\u5b9a\u3067\u3059\u304c\u3001\u7121\u8a00\u306e\u65b9\u3082OK\u3067\u3059 \u7279\u306b\u66f8\u7c4d\u306a\u3069\u3092\u6301\u53c2\u3059\u308b\u5fc5\u8981\u306f\u3042\u308a\u307e\u305b\u3093 \u30cd\u30bf\u632f\u308a\u3068\u3057\u3066 \u9032\u884c\u5f79\u304c\u3001C++17\u306e\u57fa\u790e\u7684\u306a\u6a5f\u80fd\u3084\u30e9\u30a4\u30d6\u30e9\u30ea\u306e\u8a71\u984c\u3092\u3001\u53c2\u52a0\u8005\u306b\u63d0\u4f9b\u3057\u307e\u3059

\u30a4\u30d9\u30f3\u30c8\u756a\u53f7 \u30bf\u30a4\u30c8\u30eb \u767a\u8868\u8005 Vol. 18 (2019-03-28) C++17\u306e\u65b0\u6a5f\u80fd \u843d\u7a42\u62fe\u3044 \u9ce5\u982d\u304b\u308a\u3084\u30de\u30f3 Vol. 17 (2019-03-14) \u843d\u3061\u7a42\u62fe\u3044:\u30e1\u30bf\u95a2\u6570\u7de8 \u3044\u306a\u3080\u306e\u307f\u305f\u307e Vol. 16 (2019-02-21) std::invoke \u306e\u7d39\u4ecb Flast Vol. 15 (2019-01-31) - Akira Takahashi Vol. 14 (2019-01-17) string_view \u3044\u306a\u3080\u306e\u307f\u305f\u307e Vol. 13 (2018-12-13) C++17\u306e\u65b0\u6a5f\u80fd optional\u7de8,std::optional\u306e\u4f7f\u3044\u65b9 \u9ce5\u982d\u304b\u308a\u3084\u30de\u30f3,\u9065\u4f50\u4fdd,\u3044\u306a\u3080\u306e\u307f\u305f\u307e Vol. 12 (2018-11-22) C++17\u306e\u65b0\u6a5f\u80fd optional\u7de8 \u9ce5\u982d\u304b\u308a\u3084\u30de\u30f3 Vol. 11 (2018-11-08) - \u897f\u5c71 \u4fe1\u884c Vol. 10 (2018-10-18) C++17 std::any\u306b\u3064\u3044\u3066 \u897f\u5c71 \u4fe1\u884c Vol. 9 (2018-10-04) C++17\u306e\u65b0\u6a5f\u80fd \u30a2\u30ed\u30b1\u30fc\u30bf\u7de8 \u9ce5\u982d\u304b\u308a\u3084\u30de\u30f3 Vol. 8 (2018-09-13) shared_mutex \u4ed6 yoh Vol. 7 (2018-08-23) C++17\u306e\u65b0\u6a5f\u80fd (\u975e\u9806\u5e8f)\u9023\u60f3\u30b3\u30f3\u30c6\u30ca\u7de8 \u9ce5\u982d\u304b\u308a\u3084\u30de\u30f3 Vol. 6 (2018-08-09) \u984c\u540d\u306e\u306a\u3044\u30b9\u30e9\u30a4\u30c921 Flast Vol. 5 (2018-02-14) \u4e26\u5217(parallel)\u30d7\u30ed\u30b0\u30e9\u30df\u30f3\u30b0,std::invoke\u3068\u304bstd::result_of\u3068\u304b herumiFlast Vol. 4 (2018-02-01) C++17\u6982\u7565 \u9ce5\u982d\u304b\u308a\u3084\u30de\u30f3herumi Vol. 3 (2018-01-11) C++14 \u3059\u3054\u30fc\u3044\uff01\u305f\u30fc\u306e\u3057\u30fc\uff01\uff01\uff01 C++14\u30e9\u30a4\u30d6\u30e9\u30ea\u7de8 \u9ce5\u982d\u304b\u308a\u3084\u30de\u30f3 Vol. 2 (2017-12-14) (Vol. 1 \u3068\u540c\u3058) \u9ce5\u982d\u304b\u308a\u3084\u30de\u30f3 Vol. 1 (2017-11-29) C++14 \u3059\u3054\u30fc\u3044\uff01\u305f\u30fc\u306e\u3057\u30fc\uff01\uff01\uff01 C++14\u8a00\u8a9e\u7de8 \u9ce5\u982d\u304b\u308a\u3084\u30de\u30f3"},{"location":"learn/studymeetings/#c20","title":"C++20 \u3092\u76f8\u8ac7\u3057\u306a\u304c\u3089\u8abf\u3079\u308b\u4f1a","text":"

C++20\u3092\u76f8\u8ac7\u3057\u306a\u304c\u3089\u8abf\u3079\u307e\u3059\u3002

\u30a4\u30d9\u30f3\u30c8\u756a\u53f7 \u53c2\u52a0\u8005\u9593\u306e\u5171\u6709\u30c9\u30ad\u30e5\u30e1\u30f3\u30c8 #3 (2019-10-04) \u30c9\u30ad\u30e5\u30e1\u30f3\u30c8 #2 (2019-05-17) \u30c9\u30ad\u30e5\u30e1\u30f3\u30c8 #1 (2019-04-02) \u30c9\u30ad\u30e5\u30e1\u30f3\u30c8"},{"location":"learn/studymeetings/#c_2","title":"\u30ad\u30e3\u30c7\u30a3\u682a\u5f0f\u4f1a\u793e C++ \u52c9\u5f37\u4f1a","text":"

\u30ad\u30e3\u30c7\u30a3\u682a\u5f0f\u4f1a\u793e\u306f\u30c6\u30af\u30cb\u30ab\u30eb\u30a2\u30c9\u30d0\u30a4\u30b6\u30fc\u3068\u3057\u3066\u6c5f\u6dfb\u4eae\u6c0f\u3092\u8fce\u3048\u5165\u308c\u3001\u4eca\u5f8c\u9694\u9031\u3067C++\u306b\u307e\u3064\u308f\u308b\u52c9\u5f37\u4f1a\u3092\u5b9f\u65bd\u3057\u307e\u3059\u3002\u57fa\u790e\u7684\u306a\u5185\u5bb9\u304b\u3089\u767a\u5c55\u7684\u306a\u5185\u5bb9\u307e\u3067\u3001\u5e45\u5e83\u304f\u30b7\u30ea\u30fc\u30ba\u958b\u50ac\u3057\u3066\u3044\u304f\u4e88\u5b9a\u3067\u3059\u306e\u3067\u3001C++\u306e\u52c9\u5f37\u3092\u3057\u3066\u3044\u308b\u65b9\u3001\u6c5f\u6dfb\u4eae\u6c0f\u3084\u30ad\u30e3\u30c7\u30a3\u30e1\u30f3\u30d0\u30fc\u3068\u304a\u8a71\u3057\u305f\u3044\u65b9\u306a\u3069\u6c17\u8efd\u306b\u3044\u3089\u3057\u3066\u304f\u3060\u3055\u3044\u3002

\u30a4\u30d9\u30f3\u30c8\u756a\u53f7 \u5185\u5bb9 \u30e0\u30fc\u30d3\u30fc #11 (2020-01-08) volatile\u3001std::launder\u3001POD\u3084standard layout\u578b\u306e\u6b74\u53f2\u306a\u3069 #10 (2019-12-17) \u30c6\u30f3\u30d7\u30ec\u30fc\u30c8\u306e\u540c\u4e00\u6027\u3001C++20\u306e\u65b0\u6a5f\u80fd\u89e3\u8aac #9 (2019-12-03) \u30b3\u30f3\u30bb\u30d7\u30c8\uff08\u6642\u9593\u304c\u3042\u308c\u3070\u3001Three-way Comparison operator\uff09 #8 (2019-11-19) C++20 \u306e\u6a5f\u80fd\u7d39\u4ecb\u3068\u4e00\u6642\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u306e\u5bff\u547d #7 (2019-10-29) type erasure \u306e\u7d9a\u304d\u3068 expression templates #6 (2019-10-09) \u6d3e\u751f\u3068\u7d99\u627f\u3001Type Erasure #5 (2019-09-25) \u6a19\u6e96\u5909\u63db\u3001\u30aa\u30fc\u30d0\u30fc\u30ed\u30fc\u30c9\u89e3\u6c7a\u3001\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8\u306e\u5b9f\u5f15\u6570\u63a8\u5b9a #4 (2019-09-11) C++ \u6a19\u6e96\u898f\u683c\u306e\u7528\u8a9e\u89e3\u8aac #3 (2019-08-30) \u30e1\u30bf\u30d7\u30ed\u30b0\u30e9\u30df\u30f3\u30b0 #2 (2019-08-21) \u30c6\u30f3\u30d7\u30ec\u30fc\u30c8\u57fa\u790e #1 (2019-07-30) \u30dd\u30a4\u30f3\u30bf\u30fc\u306b\u3064\u3044\u3066"},{"location":"learn/studymeetings/#c_3","title":"\u672d\u5e4c C++ \u52c9\u5f37\u4f1a","text":"

Sapporo.cpp\u306e\u30e1\u30f3\u30d0\u30fc\u3067\u904b\u55b6\u3057\u3066\u3044\u308b\u3001\u30aa\u30f3\u30e9\u30a4\u30f3\u3067\u5b9f\u65bd\u3057\u3066\u3044\u308b\u3082\u304f\u3082\u304f\u4f1a\u3067\u3059\u3002\u52c9\u5f37\u4f1a\u3088\u308a\u3082\u9ad8\u983b\u5ea6\u306b\u6d3b\u52d5\u3092\u884c\u3046\u5834\u3068\u3057\u3066\u3001\u304a\u304a\u3080\u306d\u6bce\u90311\u56de\u5b9f\u65bd\u3057\u3066\u3044\u307e\u3059\u3002

"},{"location":"learn/studymeetings/#boost","title":"Boost. \u52c9\u5f37\u4f1a","text":"

Boost C++ Libraries\u3068\u3044\u3046\u3001C++\u306e\u6709\u540d\u306a\u30e9\u30a4\u30d6\u30e9\u30ea\u7fa4\u3092\u4e2d\u5fc3\u3068\u3057\u305f\u3001C++\u5168\u822c\u306e\u52c9\u5f37\u4f1a\u3067\u3059\u3002 Boost\u306b\u9650\u3089\u305a\u3001C++\u5168\u822c\u306e\u8a71\u3001Qt\u3084OpenCV\u306e\u3088\u3046\u306a\u4ed6\u306e\u30e9\u30a4\u30d6\u30e9\u30ea\u3001\u81ea\u5206\u304c\u4f5c\u3063\u305f\u30d7\u30ed\u30b0\u30e9\u30e0\u306e\u7d39\u4ecb\u3001\u305d\u306e\u4ed6C++\u30d7\u30ed\u30b0\u30e9\u30de\u306b\u77e5\u3063\u3066\u304a\u3044\u3066\u3082\u3089\u3044\u305f\u3044\u3053\u3068\u306e\u7d39\u4ecb(\u30c7\u30fc\u30bf\u69cb\u9020\u3084\u30a2\u30eb\u30b4\u30ea\u30ba\u30e0\u3001\u30a4\u30c7\u30a3\u30aa\u30e0\u3001\u30d7\u30ed\u30b0\u30e9\u30e0\u306e\u8a2d\u8a08\u3084\u30c7\u30b6\u30a4\u30f3\u30d1\u30bf\u30fc\u30f3\u3001\u4ed6\u306e\u8a00\u8a9e\u3067\u306e\u8003\u3048\u65b9\u3084\u30a2\u30d7\u30ed\u30fc\u30c1)\u306a\u3069\u3001\u5e45\u5e83\u3044\u30c6\u30fc\u30de\u3092\u6271\u3063\u3066\u3044\u307e\u3059\u3002

"},{"location":"libraries/boost/","title":"Boost","text":"\u30d0\u30fc\u30b8\u30e7\u30f3 / \u30ea\u30ea\u30fc\u30b9\u30ce\u30fc\u30c8 \u30ea\u30ea\u30fc\u30b9\u65e5 \u65b0\u3057\u304f\u8ffd\u52a0\u3055\u308c\u305f\u30e9\u30a4\u30d6\u30e9\u30ea 1.79.0 / \u65e5\u672c\u8a9e\u8a33 2022-04-13 1.78.0 / \u65e5\u672c\u8a9e\u8a33 2021-12-08 1.77.0 / \u65e5\u672c\u8a9e\u8a33 2021-08-11 Describe, Lambda2 1.76.0 / \u65e5\u672c\u8a9e\u8a33 2021-04-16 1.75.0 / \u65e5\u672c\u8a9e\u8a33 2020-12-11 JSON, LEAF, PFR 1.74.0 / \u65e5\u672c\u8a9e\u8a33 2020-08-14 STLInterfaces 1.73.0 / \u65e5\u672c\u8a9e\u8a33 2020-04-28 Nowide, StaticString 1.72.0 / \u65e5\u672c\u8a9e\u8a33 2019-12-11 1.71.0 / \u65e5\u672c\u8a9e\u8a33 2019-08-19 Variant2 1.70.0 / \u65e5\u672c\u8a9e\u8a33 2019-04-12 Outcome, Histogram 1.69.0 / \u65e5\u672c\u8a9e\u8a33 2018-12-12 Safe Numerics 1.68.0 / \u65e5\u672c\u8a9e\u8a33 2018-08-09 YAP 1.67.0 / \u65e5\u672c\u8a9e\u8a33 2018-04-14 Contract, HOF 1.66.0 / \u65e5\u672c\u8a9e\u8a33 2017-12-18 Beast, CallableTraits, Mp11 1.65.1 / \u65e5\u672c\u8a9e\u8a33 2017-09-07 1.65.0 / \u65e5\u672c\u8a9e\u8a33 2017-08-21 PolyCollection, Stacktrace 1.64.0 / \u65e5\u672c\u8a9e\u8a33 2017-04-19 Process 1.63.0 / \u65e5\u672c\u8a9e\u8a33 2016-12-26 1.62.0 / \u65e5\u672c\u8a9e\u8a33 2016-09-28 Fiber, QVM 1.61.0 / \u65e5\u672c\u8a9e\u8a33 2016-05-13 Compute, DLL, Hana, Metaparse 1.60.0 / \u65e5\u672c\u8a9e\u8a33 2015-12-17 VMD 1.59.0 / \u65e5\u672c\u8a9e\u8a33 2015-08-13 Convert, Coroutine2 1.58.0 / \u65e5\u672c\u8a9e\u8a33 2015-04-17 Endian, Sort 1.57.0 / \u65e5\u672c\u8a9e\u8a33 2014-11-03 1.56.0 / \u65e5\u672c\u8a9e\u8a33 2014-08-07 Align, Type_Index 1.55.0 / \u65e5\u672c\u8a9e\u8a33 2013-11-11 Predef 1.54.0 / \u65e5\u672c\u8a9e\u8a33 2013-07-01 Log, TTI, Type Erasure 1.53.0 / \u65e5\u672c\u8a9e\u8a33 2013-02-04 Atomic, Coroutine, Lockfree, Multiprecision, Odeint 1.52.0 / \u65e5\u672c\u8a9e\u8a33 2012-11-05 1.51.0 / \u65e5\u672c\u8a9e\u8a33 2012-08-20 Context 1.50.0 / \u65e5\u672c\u8a9e\u8a33 2012-06-28 Algorithm, Functional/OverloadedFunction,LocalFunction, Utility/IdentityType 1.49.0 / \u65e5\u672c\u8a9e\u8a33 2012-02-24 Heap 1.48.0 / \u65e5\u672c\u8a9e\u8a33 2011-11-15 Container, Locale, Move 1.47.0 / \u65e5\u672c\u8a9e\u8a33 2011-07-11 Chrono, Geometry, Phoenix, Ratio 1.46.1 / \u65e5\u672c\u8a9e\u8a33 2011-03-12 1.46.0 / \u65e5\u672c\u8a9e\u8a33 2011-02-21 Icl 1.45.0 / \u65e5\u672c\u8a9e\u8a33 2010-11-19 1.44.0 2010-08-13 Meta State Machine, Polygon 1.43.0 2010-05-06 Functional/factory, Functional/forward 1.42.0 2010-02-02 Uuid 1.41.0 2009-11-17 Property Tree 1.40.0 2009-08-27 1.39.0 2009-05-02 Signals2 1.38.0 2009-02-08 Flyweight, ScopeExit, Swap 1.37.0 2008-11-03 Proto 1.36.0 2008-08-14 Accumulators, Exception, Units, Unordered 1.35.0 2008-03-29 Asio, Bimap, Circular Buffer, Function Types, Fusion,GIL, Interprocess, Intrusive, Math/Special Functions,Math/Statistical Distributions, MPI, System 1.34.1 2007-07-24 1.34.0 2007-05-12 Foreach, Statechart, TR1 (removed), Typeof, Xpressive 1.33.1 2006-12-05 1.33.0 2005-08-11 Iostreams, Functional/Hash, Parameter, Pointer Container, Wave 1.32.0 2004-11-19 Assignment, Minmax, Multi-index Containers,Numeric Conversion, Program Options, Range, Serialization,String Algorithms, Tribool 1.31.0 2004-01-26 enable_if, Variant 1.30.2 2003-08-19 1.30.1 2003-08-04 1.30.0 2003-03-19 Filesystem, Optional, Interval, MPL, Spirit 1.29.0 2002-10-10 Date-Time, Dynamic Bitset, Format \u2026 \u2026 \u2026"},{"location":"libraries/boost/#_1","title":"\u53c2\u8003\u6587\u732e","text":""},{"location":"libraries/concurrency/","title":"\u4e26\u884c\u30fb\u4e26\u5217","text":""},{"location":"libraries/concurrency/#_2","title":"\u30de\u30eb\u30c1\u30bf\u30b9\u30af\u30b9\u30b1\u30b8\u30e5\u30fc\u30ea\u30f3\u30b0","text":""},{"location":"libraries/concurrency/#_3","title":"\u30b3\u30eb\u30fc\u30c1\u30f3","text":""},{"location":"libraries/containers/","title":"\u30b3\u30f3\u30c6\u30ca","text":""},{"location":"libraries/containers/#_2","title":"\u30cf\u30c3\u30b7\u30e5\u30c6\u30fc\u30d6\u30eb","text":""},{"location":"libraries/math/","title":"\u6570\u5b66","text":""},{"location":"libraries/math/#_2","title":"\u56fa\u5b9a\u5c0f\u6570\u70b9\u6570","text":""},{"location":"libraries/testing/","title":"\u5358\u4f53\u30c6\u30b9\u30c8\u30d5\u30ec\u30fc\u30e0\u30ef\u30fc\u30af","text":""},{"location":"libraries/text-data/","title":"\u30c6\u30ad\u30b9\u30c8\u30c7\u30fc\u30bf","text":""},{"location":"libraries/text-data/#json","title":"JSON","text":""},{"location":"libraries/text-data/#_2","title":"\u30d9\u30f3\u30c1\u30de\u30fc\u30af","text":""},{"location":"libraries/text-data/#toml","title":"TOML","text":""},{"location":"libraries/text-data/#xml","title":"XML","text":""},{"location":"libraries/text-data/#csv","title":"CSV","text":""},{"location":"libraries/text-data/#ini","title":"INI","text":""},{"location":"libraries/text-data/#yaml","title":"YAML","text":""},{"location":"standardization/cpp20/","title":"C++20 \u306e\u65b0\u6a5f\u80fd","text":"

Info

\u9805\u76ee\u8ffd\u52a0\u30fb\u57f7\u7b46\u4f5c\u696d\u4e2d\u3067\u3059\uff08\u5b8c\u6210\u5ea6 \u7d04 35%\uff09

C++20 \u898f\u683c\u306b\u304a\u3051\u308b\u65b0\u6a5f\u80fd\u30fb\u4ed5\u69d8\u5909\u66f4\u3092\u89e3\u8aac\u3057\u307e\u3059\u3002

"},{"location":"standardization/cpp20/#_1","title":"\u8a00\u8a9e\u6a5f\u80fd","text":""},{"location":"standardization/cpp20/#p0683r1","title":"\u30d3\u30c3\u30c8\u30d5\u30a3\u30fc\u30eb\u30c9\u306b\u30c7\u30d5\u30a9\u30eb\u30c8\u306e\u521d\u671f\u5024\u3092\u8a2d\u5b9a\u53ef\u80fd\u306b (P0683R1)","text":"

\u30d3\u30c3\u30c8\u30d5\u30a3\u30fc\u30eb\u30c9\u306b\u304a\u3051\u308b\u30d3\u30c3\u30c8\u5e45\u306e\u6307\u5b9a\u306b\u7d9a\u3044\u3066\u3001= \u6f14\u7b97\u5b50\u307e\u305f\u306f {} \u521d\u671f\u5316\u5b50\u3092\u4f7f\u3063\u3066\u521d\u671f\u5316\u5f0f\u3092\u8a18\u8ff0\u3067\u304d\u308b\u3088\u3046\u306b\u306a\u308a\u307e\u3059\u3002

#include <iostream>\n\nenum class Terrain : unsigned char\n{\n    Open, Forest, Hill, Mountain, Desert, Tundra, River, Ocean\n};\n\nstruct Tile\n{\n    unsigned char height : 4 = 1; // \u30c7\u30d5\u30a9\u30eb\u30c8\u5024\u3092 1 \u306b\n    Terrain terrain : 3 = Terrain::Open; // \u30c7\u30d5\u30a9\u30eb\u30c8\u5024\u3092\u660e\u793a\u7684\u306b Terrain::Open \u306b\n    bool passable : 1 = true; // \u30c7\u30d5\u30a9\u30eb\u30c8\u5024\u3092 true \u306b\n};\n\nint main()\n{\n    std::cout << std::boolalpha;\n\n    Tile tile1;\n    std::cout << static_cast<int>(tile1.height) << \", \" << static_cast<int>(tile1.terrain) << \", \" << tile1.passable << '\\n';\n\n    Tile tile2{ 15, Terrain::Mountain, false };\n    std::cout << static_cast<int>(tile2.height) << \", \" << static_cast<int>(tile2.terrain) << \", \" << tile2.passable << '\\n';\n}\n
1, 0, true\n15, 3, false\n

"},{"location":"standardization/cpp20/#p0704r1","title":"\u30e1\u30f3\u30d0\u30dd\u30a4\u30f3\u30bf\u6f14\u7b97\u5b50\u306e\u4ed5\u69d8\u3092\u4e00\u8cab\u6027\u306e\u305f\u3081\u306b\u4fee\u6b63 (P0704R1)","text":"

C++17 \u307e\u3067\u306e\u30e1\u30f3\u30d0\u30dd\u30a4\u30f3\u30bf\u6f14\u7b97\u5b50 .* \u306f\u300c\u53f3\u8fba\u5024\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u304b\u3089\u3001\u5de6\u8fba\u5024\u53c2\u7167\u4fee\u98fe\u3055\u308c\u305f\u30e1\u30f3\u30d0\u95a2\u6570\u30dd\u30a4\u30f3\u30bf\u306b\u4f7f\u3046\u3053\u3068\u306f\u4e0d\u9069\u683c\u300d\u3068\u3044\u3046\u898f\u683c\u6587\u9762\u306b\u306a\u3063\u3066\u3044\u307e\u3057\u305f\u3002\u305d\u306e\u305f\u3081\u3001\u540c\u3058\u610f\u5473\u3092\u3082\u3064\u6b21\u306e 2 \u3064\u306e\u30d7\u30ed\u30b0\u30e9\u30e0\u3067\u5f8c\u8005\u3060\u3051\u4e0d\u9069\u683c\u3068\u3055\u308c\u3001\u4e00\u8cab\u6027\u304c\u3042\u308a\u307e\u305b\u3093\u3067\u3057\u305f\u3002

#include <iostream>\n#include <string>\n\nstruct Text\n{\n    std::string m_data;\n\n    const std::string& get() const &\n    {\n        return m_data;\n    }\n};\n\nint main()\n{\n    std::cout << Text{ \"Hello\" }.get() << '\\n'; // OK\n\n    std::cout << (Text{ \"Hello\" }.*&Text::get)() << '\\n'; // C++17 \u307e\u3067\u306f\u4e0d\u9069\u683c\u3001C++20 \u304b\u3089 OK\n}\n
C++20 \u3067\u306f\u300c\u53f3\u8fba\u5024\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u304b\u3089\u3001\u5de6\u8fba\u5024\u53c2\u7167\u4fee\u98fe\u3055\u308c\u305f \"\u975e const\" \u30e1\u30f3\u30d0\u95a2\u6570\u30dd\u30a4\u30f3\u30bf\u306b\u4f7f\u3046\u3053\u3068\u306f\u4e0d\u9069\u683c\u300d\u3068\u6587\u9762\u3092\u4fee\u6b63\u3057\u3001\u5f8c\u8005\u3082\u30b3\u30f3\u30d1\u30a4\u30eb\u3067\u304d\u308b\u3088\u3046\u306b\u306a\u308a\u307e\u3059\u3002

"},{"location":"standardization/cpp20/#2-p1236r1","title":"\u7b26\u53f7\u4ed8\u304d\u6574\u6570\u578b\u306e\u8ca0\u6570\u8868\u73fe\u3092 2 \u306e\u88dc\u6570\u3068\u898f\u5b9a (P1236R1)","text":"

\u307b\u307c\u3059\u3079\u3066\u306e\u73fe\u4ee3\u7684\u306a\u30b3\u30f3\u30d4\u30e5\u30fc\u30bf\u3067\u3001\u7b26\u53f7\u4ed8\u304d\u6574\u6570\u578b\u306e\u8ca0\u6570\u306f 2 \u306e\u88dc\u6570\u3067\u8868\u73fe\u3055\u308c\u307e\u3059\u3002\u3057\u304b\u3057\u3001C++ \u3067\u306f\u8ca0\u6570\u306e\u8868\u73fe\u65b9\u6cd5\u306b\u3064\u3044\u3066\u898f\u683c\u3067\u5b9a\u3081\u3066\u3044\u306a\u304b\u3063\u305f\u305f\u3081\u3001\uff08\u73fe\u5b9f\u7684\u3067\u306f\u3042\u308a\u307e\u305b\u3093\u304c\uff092 \u306e\u88dc\u6570\u4ee5\u5916\u3067\u8ca0\u6570\u8868\u73fe\u3092\u5b9f\u88c5\u3059\u308b\u4f59\u5730\u3082\u6b8b\u3055\u308c\u3066\u3044\u307e\u3057\u305f\u3002C++20 \u304b\u3089\u306f 2 \u306e\u88dc\u6570\u306e\u307f\u3092\u8a31\u53ef\u3059\u308b\u3088\u3046\u898f\u683c\u6587\u8a00\u304c\u4fee\u6b63\u3055\u308c\u307e\u3057\u305f\u3002 \u8fd1\u5e74\u306e\u30a2\u30fc\u30ad\u30c6\u30af\u30c1\u30e3\u3067 2 \u306e\u88dc\u6570\u4ee5\u5916\u3092\u4f7f\u3046\u4f8b\u306f\u30011 \u306e\u88dc\u6570\u3092\u4f7f\u3046 Unisys 2200 \u304c\u3042\u308a\u307e\u3059\u3002\u307e\u305f\u904e\u53bb\u306b\u306f\u7b26\u53f7\u3068\u7d76\u5bfe\u5024\u3067\u8868\u73fe\u3059\u308b\u30a2\u30fc\u30ad\u30c6\u30af\u30c1\u30e3\u3082\u3042\u308a\u307e\u3057\u305f\u3002\u3053\u308c\u3089\u306f\u30e2\u30c0\u30f3\u306a C++ \u3092\u958b\u767a\u74b0\u5883\u3068\u3057\u3066\u4f7f\u7528\u3057\u306a\u3044\u306e\u3067\u3001\u3053\u306e\u898f\u683c\u5909\u66f4\u306b\u3088\u308b\u5f71\u97ff\u306f\u7121\u3044\u3068\u8003\u3048\u3089\u308c\u307e\u3059\u3002

"},{"location":"standardization/cpp20/#8-bit-2","title":"\uff08\u53c2\u8003\uff09\u7b26\u53f7\u4ed8\u304d 8-bit \u6574\u6570\u306e 2 \u9032\u8868\u73fe","text":"10 \u9032\u8868\u73fe 2 \u306e\u88dc\u6570 1 \u306e\u88dc\u6570 \u7b26\u53f7\u3068\u7d76\u5bfe\u5024 127 01111111 01111111 01111111 126 01111110 01111110 01111110 125 01111101 01111101 01111101 2 00000010 00000010 00000010 1 00000001 00000001 00000001 0 00000000 00000000 00000000 -0 11111111 10000000 -1 11111111 11111110 10000001 -2 11111110 11111101 10000010 -126 10000010 10000001 11111110 -127 10000001 10000000 11111111 -128 10000000"},{"location":"standardization/cpp20/#0-no_unique_address-p0840r2","title":"\u30e1\u30f3\u30d0\u306e\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u304c\u7a7a\u306e\u30af\u30e9\u30b9\u306e\u5834\u5408\u306b\u30e1\u30e2\u30ea\u6d88\u8cbb\u3092 0 \u306b\u3067\u304d\u308b [[no_unique_address]] \u5c5e\u6027\u3092\u8ffd\u52a0 (P0840R2)","text":"

\u30a2\u30ed\u30b1\u30fc\u30bf\u306a\u3069\u3092\u30af\u30e9\u30b9\u306e\u30e1\u30f3\u30d0\u3068\u3057\u3066\u4fdd\u6301\u3059\u308b\u3068\u304d\u3001\u305d\u308c\u304c\u30b9\u30c6\u30fc\u30c8\u30ec\u30b9\u306a\u7a7a\u306e\u30af\u30e9\u30b9\u3067\u3042\u3063\u3066\u3082\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u306e\u30a2\u30c9\u30ec\u30b9\u3092\u4e00\u610f\u306b\u7528\u610f\u3057\u306a\u3044\u3068\u3044\u3051\u306a\u3044\u305f\u3081\u3001\u30b5\u30a4\u30ba\u3092 0 \u306b\u3067\u304d\u305a\u30e1\u30e2\u30ea\u6d88\u8cbb\u304c\u7121\u99c4\u306b\u5897\u3048\u3066\u3057\u307e\u3046\u554f\u984c\u304c\u3042\u308a\u307e\u3057\u305f\u3002

#include <iostream>\n\nstruct Empty {};\n\nstruct X\n{\n    int i;\n    Empty e;\n};\n\nint main()\n{\n    std::cout << sizeof(X) << '\\n'; // 4 \u3088\u308a\u5927\u304d\u3044\n}\n
\u3053\u308c\u3092\u56de\u907f\u3059\u308b\u305f\u3081\u306b\u300c\u7a7a\u306e\u57fa\u5e95\u30af\u30e9\u30b9\u306f\u6700\u9069\u5316\u306b\u3088\u3063\u3066\u30b5\u30a4\u30ba 0 \u306b\u3057\u3066\u3088\u3044\u300d\u3068\u3044\u3046\u4ed5\u69d8\u3092\u5229\u7528\u3057\u305f Empty Base Optimization (EBO) \u3068\u3044\u3046\u30c6\u30af\u30cb\u30c3\u30af\u304c\u3042\u308a\u3001\u6a19\u6e96\u30e9\u30a4\u30d6\u30e9\u30ea\u3067\u3082\u3000std::unique_ptr \u3084 std::shared_ptr, std::vector \u306a\u3069\u306b\u4f7f\u308f\u308c\u3066\u3044\u307e\u3059\u3002
#include <iostream>\n\nstruct Empty {};\n\nstruct X : public Empty\n{\n    int i;\n};\n\nint main()\n{\n    std::cout << sizeof(X) << '\\n'; // 4\n}\n
\u3057\u304b\u3057\u3001\u3053\u308c\u3089\u306e\u30af\u30e9\u30b9\u3067\u7d99\u627f\u306b\u3088\u308b EBO \u3092\u5b9f\u88c5\u3059\u308b\u3068\u30b3\u30fc\u30c9\u304c\u8907\u96d1\u306b\u306a\u308b\u3068\u3044\u3046\u6b20\u70b9\u304c\u3042\u308a\u307e\u3057\u305f\u3002C++20 \u3067\u306f\u30e1\u30f3\u30d0\u306e\u5ba3\u8a00\u306b [[no_unique_address]] \u5c5e\u6027\u3092\u4ed8\u3051\u308b\u3053\u3068\u3067\u3001\u7d99\u627f\u3092\u4f7f\u308f\u306a\u304f\u3066\u3082\u30b3\u30f3\u30d1\u30a4\u30e9\u304c EBO \u3068\u540c\u3058\u3088\u3046\u306a\u6700\u9069\u5316\u3092\u3067\u304d\u308b\u3088\u3046\u306b\u306a\u308a\u3001\u5f93\u6765\u306e\u7d99\u627f\u306b\u3088\u308b EBO \u3092\u4f7f\u3063\u3066\u3044\u305f\u30b3\u30fc\u30c9\u3092\u3001\u3088\u308a\u5358\u7d14\u306a\u30b3\u30fc\u30c9\u306b\u7f6e\u304d\u63db\u3048\u3089\u308c\u307e\u3059\u3002
#include <iostream>\n\nstruct Empty {};\n\nstruct X\n{\n    int i;\n    [[no_unique_address]] Empty e;\n};\n\nint main()\n{\n    std::cout << sizeof(X) << '\\n'; // 4\n}\n

"},{"location":"standardization/cpp20/#typename-p0634r3","title":"\u578b\u540d\u3067\u3042\u308b\u3053\u3068\u304c\u660e\u3089\u304b\u306a\u6587\u8108\u3067 typename \u3092\u7701\u7565\u53ef\u80fd\u306b (P0634R3)","text":"

C++17 \u3067\u4f9d\u5b58\u540d\u304c\u578b\u3067\u3042\u308b\u5834\u5408\u306b typename \u3092\u4ed8\u3051\u306a\u3044\u306e\u306f\u3001\u6d3e\u751f\u30af\u30e9\u30b9\u5b9a\u7fa9\u6642\u306e\u57fa\u5e95\u30af\u30e9\u30b9\u306e\u6307\u5b9a\u3068\u3001\u521d\u671f\u5316\u5b50\u30ea\u30b9\u30c8\u3067\u306e\u57fa\u5e95\u30af\u30e9\u30b9\u306e\u6307\u5b9a\u306e\u307f\u3067\u3057\u305f\uff08\u53b3\u5bc6\u306b\u306f\u3053\u306e 2 \u3064\u306b\u306f typename \u3092\u4ed8\u3051\u3089\u308c\u307e\u305b\u3093\uff09\u3002C++20 \u3067\u306f\u3001\u578b\u540d\u3057\u304b\u4f7f\u3048\u306a\u3044\u3055\u3089\u306b\u3044\u304f\u3064\u304b\u306e\u6587\u8108\u3067 typename \u304c\u7701\u7565\u53ef\u80fd\u306b\u306a\u308a\u307e\u3059\u3002\u6b21\u306e\u30b5\u30f3\u30d7\u30eb\u30b3\u30fc\u30c9\u306e\u5de6\u53f3\u30bf\u30d6\u3067\u6bd4\u8f03\u3067\u304d\u307e\u3059\u3002

C++17C++20
#include <vector>\n#include <string>\n\ntemplate <class T, class Alloc = typename T::allocator_type>\nstruct S : T::value_type // \u6d3e\u751f\u30af\u30e9\u30b9\u5b9a\u7fa9\u6642\u306e\u57fa\u5e95\u30af\u30e9\u30b9\u306e\u6307\u5b9a\n{\n    using value_type = typename T::value_type;\n\n    S()\n        : T::value_type() {} // \u521d\u671f\u5316\u5b50\u30ea\u30b9\u30c8\u3067\u306e\u57fa\u5e95\u30af\u30e9\u30b9\u306e\u6307\u5b9a\n\n    typename T::size_type max_size() const;\n\n    auto data()->typename T::pointer;\n\n    auto min_size() const\n    {\n        return static_cast<typename T::size_type>(0);\n    }\n};\n\ntemplate <class T> typename T::size_type MaxSize();\n\nint main()\n{\n    S<std::vector<std::string>> s;\n}\n
#include <vector>\n#include <string>\n\ntemplate <class T, class Alloc = T::allocator_type> // OK\nstruct S : T::value_type // \u6d3e\u751f\u30af\u30e9\u30b9\u5b9a\u7fa9\u6642\u306e\u57fa\u5e95\u30af\u30e9\u30b9\u306e\u6307\u5b9a\n{\n    using value_type = T::value_type; // OK\n\n    S()\n        : T::value_type() {} // \u521d\u671f\u5316\u5b50\u30ea\u30b9\u30c8\u3067\u306e\u57fa\u5e95\u30af\u30e9\u30b9\u306e\u6307\u5b9a\n\n    T::size_type max_size() const; // OK\n\n    auto data()->T::pointer; // OK\n\n    auto min_size() const\n    {\n        return static_cast<T::size_type>(0); // OK\n    }\n};\n\ntemplate <class T> T::size_type MaxSize(); // OK\n\nint main()\n{\n    S<std::vector<std::string>> s;\n}\n
"},{"location":"standardization/cpp20/#p1064r0","title":"\u5b9a\u6570\u5f0f\u3067\u306e\u4eee\u60f3\u95a2\u6570\u547c\u3073\u51fa\u3057\u304c\u53ef\u80fd\u306b (P1064R0)","text":"

\u30b3\u30f3\u30d1\u30a4\u30eb\u6642\u306b\u6c7a\u5b9a\u53ef\u80fd\u3067\u3042\u308c\u3070\u3001\u53c2\u7167\u3084\u30dd\u30a4\u30f3\u30bf\u3092\u901a\u3057\u305f\u4eee\u60f3\u95a2\u6570\u306e\u547c\u3073\u51fa\u3057\u3092 constexpr \u306b\u3067\u304d\u308b\u3088\u3046\u306b\u306a\u308a\u307e\u3059\u3002constexpr \u4fee\u98fe\u3055\u308c\u305f\u4eee\u60f3\u95a2\u6570\u3092\u975e constexpr \u95a2\u6570\u3067\u30aa\u30fc\u30d0\u30fc\u30e9\u30a4\u30c9\u3059\u308b\u3053\u3068\u3084\u3001\u305d\u306e\u9006\u3082\u53ef\u80fd\u3067\u3059\u3002

struct Cpp\n{\n    virtual int version() const = 0;\n};\n\nstruct Cpp17 : Cpp\n{\n    constexpr int version() const override\n    {\n        return 17;\n    }\n};\n\nstruct Cpp20 : Cpp\n{\n    constexpr int version() const override\n    {\n        return 20;\n    }\n};\n\nconstexpr int GetVersion(const Cpp& a)\n{\n    return a.version();\n}\n\nint main()\n{\n    constexpr Cpp17 cpp17;\n    constexpr Cpp20 cpp20;\n\n    static_assert(GetVersion(cpp17) == 17);\n    static_assert(GetVersion(cpp20) == 20);\n}\n
"},{"location":"standardization/cpp20/#type_id-dynamic_cast-constexpr-p1327r1","title":"type_id \u3068 dynamic_cast \u304c constexpr \u306b (P1327R1)","text":"

dynamic_cast \u3068 type_id \u304c\u3001\u4f8b\u5916\u3092\u6295\u3052\u308b\u30b1\u30fc\u30b9\u3092\u9664\u3044\u3066 constexpr \u306b\u306a\u308a\u307e\u3059\u3002

#include <typeinfo>\n\nstruct Cpp\n{\n    virtual int version() const = 0;\n};\n\nstruct Cpp17 : Cpp\n{\n    constexpr int version() const override\n    {\n        return 17;\n    }\n};\n\nstruct Cpp20 : Cpp\n{\n    constexpr int version() const override\n    {\n        return 20;\n    }\n};\n\nint main()\n{\n    constexpr static Cpp17 cpp17;\n    constexpr const Cpp* pCpp = &cpp17;\n    constexpr auto& cpptype = typeid(*pCpp);\n\n    constexpr const Cpp& refCpp = cpp17;\n    constexpr const Cpp17& redCpp2 = dynamic_cast<const Cpp17&>(refCpp);\n}\n

\u6b21\u306e\u3088\u3046\u306b\u4f8b\u5916\u3092\u6295\u3052\u308b\u30b1\u30fc\u30b9\u3067\u306f constexpr \u306b\u3067\u304d\u305a\u30b3\u30f3\u30d1\u30a4\u30eb\u30a8\u30e9\u30fc\u306b\u306a\u308a\u307e\u3059\u3002

#include <typeinfo>\n\nstruct Cpp\n{\n    virtual int version() const = 0;\n};\n\nstruct Cpp17 : Cpp\n{\n    constexpr int version() const override\n    {\n        return 17;\n    }\n};\n\nstruct Cpp20 : Cpp\n{\n    constexpr int version() const override\n    {\n        return 20;\n    }\n};\n\nint main()\n{\n    constexpr Cpp* pCpp = nullptr;\n    constexpr auto& cpptype = typeid(*pCpp); //\u30b3\u30f3\u30d1\u30a4\u30eb\u30a8\u30e9\u30fc: \u4f8b\u5916 std::bad_typeid \u3092\u6295\u3052\u308b\u305f\u3081 constexpr \u4e0d\u53ef\n\n    constexpr static Cpp17 cpp17;\n    constexpr const Cpp& refCpp = cpp17;\n    constexpr const Cpp20& redCpp2 = dynamic_cast<const Cpp20&>(refCpp); // \u30b3\u30f3\u30d1\u30a4\u30eb\u30a8\u30e9\u30fc: \u4f8b\u5916 std::bad_cast \u3092\u6295\u3052\u308b\u305f\u3081 constexpr \u4e0d\u53ef\n}\n
"},{"location":"standardization/cpp20/#p1330r0","title":"\u5b9a\u6570\u5f0f\u306b\u304a\u3044\u3066\u5171\u7528\u4f53\u306e\u30a2\u30af\u30c6\u30a3\u30d6\u30e1\u30f3\u30d0\u306e\u5207\u308a\u66ff\u3048\u304c\u53ef\u80fd\u306b (P1330R0)","text":"

\u5171\u7528\u4f53\u306e\u30a2\u30af\u30c6\u30a3\u30d6\u30e1\u30f3\u30d0\u3068\u306f\u3001\u6700\u5f8c\u306b\u521d\u671f\u5316\u307e\u305f\u306f\u5024\u3092\u4ee3\u5165\u3057\u305f\u30e1\u30f3\u30d0\u306e\u3053\u3068\u3067\u3059\u3002C++17 \u3067\u306f\u5171\u7528\u4f53\u306e\u521d\u671f\u5316\u3084\u30a2\u30af\u30c6\u30a3\u30d6\u30e1\u30f3\u30d0\u3078\u306e\u30a2\u30af\u30bb\u30b9\u3092\u5b9a\u6570\u5f0f\u3067\u884c\u3048\u307e\u3057\u305f\u304c\u3001\u30a2\u30af\u30c6\u30a3\u30d6\u30e1\u30f3\u30d0\u306e\u5207\u308a\u66ff\u3048\u306f\u3067\u304d\u307e\u305b\u3093\u3067\u3057\u305f\u3002\u5b9a\u6570\u5f0f\u3067\u306e\u30a2\u30af\u30c6\u30a3\u30d6\u30e1\u30f3\u30d0\u306e\u5207\u308a\u66ff\u3048\u304c\u53ef\u80fd\u306b\u306a\u308b\u3068\u3001\u5171\u7528\u4f53\u306b\u3088\u3063\u3066\u5b9f\u88c5\u3055\u308c\u308b std::string \u3084 std::optional \u306a\u3069\u306e\u6a19\u6e96\u30e9\u30a4\u30d6\u30e9\u30ea\u30af\u30e9\u30b9\u306e\u30e1\u30f3\u30d0\u95a2\u6570\u306e constexpr \u5bfe\u5fdc\u3092\u62e1\u5145\u3067\u304d\u307e\u3059\u3002\u975e\u30a2\u30af\u30c6\u30a3\u30d6\u30e1\u30f3\u30d0\u3078\u306e\u30a2\u30af\u30bb\u30b9\u306f\u672a\u5b9a\u7fa9\u52d5\u4f5c\u306a\u306e\u3067\u3001\u5b9a\u6570\u5f0f\u3067\u884c\u3046\u3068\u30b3\u30f3\u30d1\u30a4\u30eb\u30a8\u30e9\u30fc\u306b\u306a\u308a\u307e\u3059\u3002

#include <cstdint>\n\nunion Value\n{\n    float f;\n    std::uint32_t i;\n};\n\nconstexpr Value GetFloat(float x)\n{\n    return Value{ x }; // value.f \u304c\u30a2\u30af\u30c6\u30a3\u30d6\u30e1\u30f3\u30d0\n}\n\nconstexpr Value GetUint(std::uint32_t x)\n{\n    Value value = GetFloat(0.0f); // value.f \u304c\u30a2\u30af\u30c6\u30a3\u30d6\u30e1\u30f3\u30d0\n    value.i = x; // value.i \u304c\u30a2\u30af\u30c6\u30a3\u30d6\u30e1\u30f3\u30d0\u306b\n    return value;\n}\n\nint main()\n{\n    static_assert(GetUint(123).i == 123);\n}\n
"},{"location":"standardization/cpp20/#try-catch-p1002r1","title":"\u5b9a\u6570\u5f0f\u306e\u6587\u8108\u3067\u306f try-catch \u3092\u7121\u8996\u3059\u308b\u3088\u3046\u306b (P1002R1)","text":"

\u3053\u308c\u307e\u3067 constexpr \u95a2\u6570\u306e\u4e2d\u306b\u306f try-catch \u30d6\u30ed\u30c3\u30af\u3092\u66f8\u304f\u3053\u3068\u304c\u3067\u304d\u307e\u305b\u3093\u3067\u3057\u305f\u3002\u3057\u304b\u3057\u3001std::vector \u7b49\u306e\u30b3\u30f3\u30c6\u30ca\u3092 constexpr \u5bfe\u5fdc\u3059\u308b\u306b\u3042\u305f\u3063\u3066\u306f\u3001\u3053\u306e\u5236\u9650\u304c\u969c\u58c1\u3068\u306a\u308b\u305f\u3081\u3001C++20 \u3067\u306f constexpr \u95a2\u6570\u306e\u4e2d\u306e try-catch \u306f\u3001\u5b9a\u6570\u5f0f\u3068\u3057\u3066\u8a55\u4fa1\u3055\u308c\u308b\u3068\u304d\u306b\u306f\u7121\u8996\u3059\u308b\u3088\u3046\u4ed5\u69d8\u304c\u6539\u3081\u3089\u308c\u307e\u3059\u3002\u5b9a\u6570\u5f0f\u306e\u8a55\u4fa1\u4e2d\u306b\u4f8b\u5916\u3092\u6295\u3052\u308b\u3088\u3046\u3067\u3042\u308c\u3070\u30b3\u30f3\u30d1\u30a4\u30eb\u30a8\u30e9\u30fc\u306b\u306a\u308a\u307e\u3059\u3002std::vector \u306a\u3069\u3092 constexpr \u5bfe\u5fdc\u3055\u305b\u308b\u305f\u3081\u306e\u63aa\u7f6e\u3067\u3042\u308a\u3001\u5c06\u6765\u306e C++ \u306b\u304a\u3051\u308b\u30b3\u30f3\u30d1\u30a4\u30eb\u6642\u4f8b\u5916\u51e6\u7406\u306e\u5b9f\u73fe\u3092\u5426\u5b9a\u3059\u308b\u3082\u306e\u3067\u306f\u3042\u308a\u307e\u305b\u3093\u3002

#include <cstdint> \n#include <iostream> \n#include <exception> \n\nconstexpr std::uint32_t AddU8(std::uint32_t a, std::uint32_t b)\n{\n    if ((a + b) >= 256)\n    {\n        throw std::exception{};\n    }\n\n    return a + b;\n}\n\nconstexpr std::uint32_t DoubleU8(std::uint32_t n)\n{\n    try\n    {\n        return AddU8(n, n);\n    }\n    catch (const std::exception& except)\n    {\n        return 0;\n    }\n}\n\nint main()\n{\n    static_assert(DoubleU8(123) == 246); // OK: \u4f8b\u5916\u3092\u6295\u3052\u305a\u306b\u5b9a\u6570\u5f0f\u3068\u3057\u3066\u8a55\u4fa1\u53ef\u80fd\n\n    //static_assert(DoubleU8(200) > 0); // \u30b3\u30f3\u30d1\u30a4\u30eb\u30a8\u30e9\u30fc: \u5b9a\u6570\u5f0f\u3068\u3057\u3066\u8a55\u4fa1\u3055\u308c\u308b constexpr \u95a2\u6570\u5185\u3067\u4f8b\u5916\u3092\u6295\u3052\u308b\u305f\u3081\n\n    std::cout << \"result: \" << DoubleU8(200) << '\\n'; // OK: \u5b9f\u884c\u6642\u306b\u8a55\u4fa1\u3055\u308c\u308b\u95a2\u6570\u3067\u4f8b\u5916\u304c\u767a\u751f\u3059\u308b\n}\n
"},{"location":"standardization/cpp20/#deprecated-p1161r3","title":"\u6dfb\u5b57\u5f0f\u306b\u304b\u304b\u308b\u30b3\u30f3\u30de\u6f14\u7b97\u5b50\u306e\u4f7f\u7528\u3092 deprecated \u306b (P1161R3)","text":"

\u3053\u308c\u307e\u3067 array[x, y] \u3068\u3044\u3046\u30b3\u30fc\u30c9\u3067\u306f\u3001\u30b3\u30f3\u30de\u6f14\u7b97\u5b50\u306e\u4f5c\u7528\u3067 y \u304c\u6dfb\u5b57\u6f14\u7b97\u306e\u5f15\u6570\u3068\u3057\u3066\u6e21\u3055\u308c\u307e\u3057\u305f\u3002\u3057\u304b\u3057\u3001\u3053\u306e\u6319\u52d5\u306f\u7d1b\u3089\u308f\u3057\u304f\u3001\u5c06\u6765\u306e C++ \u6a19\u6e96\u30e9\u30a4\u30d6\u30e9\u30ea\u306b\u591a\u6b21\u5143\u914d\u5217\u30af\u30e9\u30b9\u304c\u5b9f\u88c5\u3055\u308c\u305f\u3068\u304d\u3001\u6dfb\u5b57\u6f14\u7b97\u5b50\u3092\u8907\u6570\u306e\u5f15\u6570\u306b\u5bfe\u5fdc\u3055\u305b\u308b\u3088\u3046\u306a\u898f\u683c\u3092\u8ffd\u52a0\u3059\u308b\u3046\u3048\u3067\u306e\u969c\u58c1\u306b\u3082\u306a\u308a\u307e\u3059\u3002\u305d\u306e\u305f\u3081\u3001C++20 \u304b\u3089\u3001array[(x, y)] \u306e\u3088\u3046\u306b\u62ec\u5f27\u3092\u4f7f\u7528\u3059\u308b\u5834\u5408\u3092\u306e\u305e\u304d\u3001\u6dfb\u5b57\u5f0f\u306b\u304b\u304b\u308b\u30b3\u30f3\u30de\u6f14\u7b97\u5b50\u306e\u4f7f\u7528\u304c deprecated \u306b\u306a\u308a\u307e\u3059\u3002\u53e4\u3044\u30b3\u30fc\u30c9\u3067 deprecated \u306a\u66f8\u304d\u65b9\u3092\u3057\u3066\u3044\u305f\u5834\u5408\u3001\u524d\u8ff0\u306e\u3088\u3046\u306b () \u3092\u4ed8\u3051\u308b\u3053\u3068\u3067\u3001\u30b3\u30fc\u30c9\u306e\u6319\u52d5\u306b\u5f71\u97ff\u3092\u4e0e\u3048\u305a\u306b\u79fb\u690d\u304c\u53ef\u80fd\u3067\u3059\u3002

#include <vector>\n\nint main()\n{\n    std::vector<int> v(10);\n\n    int index = 0;\n\n    v[++index, 0] = -1; // C++17 \u307e\u3067 OK, C++20 \u304b\u3089 deprecated\n\n    v[(++index, 0)] = -1; // OK\n}\n
"},{"location":"standardization/cpp20/#using-p1099r5","title":"\u30b9\u30b3\u30fc\u30d7\u4ed8\u304d\u5217\u6319\u578b\u306b\u5bfe\u3059\u308b using \u5ba3\u8a00\u304c\u3067\u304d\u308b\u3088\u3046\u306b (P1099R5)","text":"

\u3053\u308c\u307e\u3067\u306f\u3001enum class \u306e\u30b9\u30b3\u30fc\u30d7\u89e3\u6c7a\u3092\u7701\u7565\u3059\u308b\u65b9\u6cd5\u304c\u7121\u304f\u3001\u6b21\u306e\u3088\u3046\u306a switch \u3067\u3001\u5217\u6319\u578b\u306e\u540d\u524d\u304c\u4f55\u5ea6\u3082\u767b\u5834\u3059\u308b\u3088\u3046\u306a\u30b3\u30fc\u30c9\u3092\u66f8\u304f\u5fc5\u8981\u304c\u3042\u308a\u3001\u8aad\u307f\u306b\u304f\u304f\u3001\u9577\u3044\u5217\u6319\u578b\u306e\u540d\u524d\u304c\u907f\u3051\u3089\u308c\u308b\u539f\u56e0\u306b\u306a\u3063\u3066\u3044\u307e\u3057\u305f\u3002

#include <iostream>\n#include <string_view>\n\nenum class Terrain\n{\n    Open, Mountain, River, Ocean\n};\n\nconstexpr std::string_view ToString(Terrain terrain)\n{\n    using namespace std::string_view_literals;\n\n    switch (terrain)\n    {\n    case Terrain::Open:     return \"Open\"sv;\n    case Terrain::Mountain: return \"Mountain\"sv;\n    case Terrain::River:    return \"River\"sv;\n    case Terrain::Ocean:    return \"Ocean\"sv;\n    default:                return \"\"sv;\n    }\n}\n\nint main()\n{\n    std::cout << ToString(Terrain::Mountain);\n}\n
C++20 \u3067\u306f using \u5ba3\u8a00\u3092\u62e1\u5f35\u3057\u3001using Terrain::Open; \u3067 Open \u3092\u30a8\u30a4\u30ea\u30a2\u30b9\u3068\u3057\u3066\u4f7f\u3048\u308b\u3088\u3046\u306b\u306a\u308a\u307e\u3059\u3002\u307e\u305f using enum \u5ba3\u8a00\u3068\u3044\u3046\u65b0\u3057\u3044\u4ed5\u7d44\u307f\u306b\u3088\u308a\u3001using enum Terrain; \u3067 Terrain \u304c\u30ed\u30fc\u30ab\u30eb\u30b9\u30b3\u30fc\u30d7\u306b\u5c0e\u5165\u3055\u308c\u3001\u30b9\u30b3\u30fc\u30d7\u89e3\u6c7a\u6f14\u7b97\u5b50\u3092\u4f7f\u308f\u305a\u306b\u305d\u306e\u5217\u6319\u5b50\u3092\u4f7f\u3048\u308b\u3088\u3046\u306b\u306a\u308a\u307e\u3059\u3002
enum class Terrain\n{\n    Open, Mountain, River, Ocean\n};\n\nconstexpr std::string_view ToString(Terrain terrain)\n{\n    using namespace std::string_view_literals;\n\n    switch (terrain)\n    {\n    using enum Terrain; // using enum \u5ba3\u8a00\u3067\u3001\u5217\u6319\u578b\u306e\u540d\u524d Terrain \u3092\u30ed\u30fc\u30ab\u30eb\u30b9\u30b3\u30fc\u30d7\u306b\u5c0e\u5165\n    case Open:      return \"Open\"sv;\n    case Mountain:  return \"Mountain\"sv;\n    case River:     return \"River\"sv;\n    case Ocean:     return \"Ocean\"sv;\n    default:        return \"\"sv;\n    }\n}\n\nint main()\n{\n    using Terrain::Mountain; // using \u5ba3\u8a00\u3067\u3001\u5217\u6319\u5b50 Mountain \u3092\u30ed\u30fc\u30ab\u30eb\u30b9\u30b3\u30fc\u30d7\u306b\u5c0e\u5165\n    std::cout << ToString(Mountain);\n}\n
\u306a\u304a\u3001\u6b21\u306e\u3088\u3046\u306b\u8907\u6570\u306e using \u5ba3\u8a00\u306b\u3088\u3063\u3066\u540d\u524d\u306e\u885d\u7a81\u304c\u8d77\u3053\u308b\u5834\u5408\u306f\u30b3\u30f3\u30d1\u30a4\u30eb\u30a8\u30e9\u30fc\u306b\u306a\u308a\u307e\u3059\u3002
#include <iostream>\n#include <string_view>\n\nenum class Terrain\n{\n    Open, Mountain, River, Ocean\n};\n\nenum class State\n{\n    Open, Closed\n};\n\nint main()\n{\n    using enum Terrain; // OK\n    using enum State;   // \u30b3\u30f3\u30d1\u30a4\u30eb\u30a8\u30e9\u30fc: Terrain::Open \u3068 State::Open \u306e\u540d\u524d\u304c\u885d\u7a81\n}\n

"},{"location":"standardization/cpp20/#nodiscard-p1771r1","title":"\u30b3\u30f3\u30b9\u30c8\u30e9\u30af\u30bf\u306b [[nodiscard]] \u304c\u4f7f\u3048\u308b\u3088\u3046\u306b (P1771R1)","text":"

C++17 \u3067 [[nodiscard]] \u304c\u5c0e\u5165\u3055\u308c\u305f\u969b\u3001\u4ed5\u69d8\u3067\u306f\u30b3\u30f3\u30b9\u30c8\u30e9\u30af\u30bf\u3092\u5bfe\u8c61\u3068\u3057\u3066\u3044\u307e\u305b\u3093\u3067\u3057\u305f\uff08\u305f\u3060\u3057\u3001GCC \u3067\u306f\u8b66\u544a\u3092\u51fa\u3057\u3064\u3064\u3082\u30b3\u30f3\u30b9\u30c8\u30e9\u30af\u30bf\u306b\u4ed8\u3051\u305f [[nodiscard]] \u3092\u30c1\u30a7\u30c3\u30af\u3057\u3066\u3044\u307e\u3057\u305f\uff09\u3002\u30b3\u30f3\u30b9\u30c8\u30e9\u30af\u30bf\u306e\u547c\u3073\u51fa\u3057\u306b\u3088\u3063\u3066\u4f5c\u6210\u3055\u308c\u305f\u4e00\u6642\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u304c\u610f\u56f3\u305b\u305a\u7121\u8996\u3055\u308c\u305f\u3068\u304d\u306b\u8b66\u544a\u3092\u51fa\u305b\u308b\u3068\u3001\u30e6\u30fc\u30b6\u306e\u9593\u9055\u3044\u3092\u6e1b\u3089\u305b\u307e\u3059\u3002\u305d\u3053\u3067\u3001\u30b3\u30f3\u30b9\u30c8\u30e9\u30af\u30bf\u306b\u3082 [[nodiscard]] \u5c5e\u6027\u3092\u4ed8\u3051\u3089\u308c\u308b\u3088\u3046\u3001C++17 \u5411\u3051\u306e\u898f\u683c\u306b\u3055\u304b\u306e\u307c\u3063\u3066\u4ed5\u69d8\u304c\u4fee\u6b63\u3055\u308c\u3001C++20 \u304a\u3088\u3073\u3001\u3053\u306e\u5909\u66f4\u306b\u5bfe\u5fdc\u3057\u305f C++17 \u30b3\u30f3\u30d1\u30a4\u30e9\u3067\u65b0\u4ed5\u69d8\u3092\u5229\u7528\u3067\u304d\u308b\u3088\u3046\u306b\u306a\u308a\u307e\u3059\u3002\u306a\u304a\u3001\u30c7\u30b9\u30c8\u30e9\u30af\u30bf\u3092\u5b9a\u7fa9\u3057\u3066\u3044\u305f\u5834\u5408\u3067\u3082\u8b66\u544a\u306f\u6d88\u3048\u307e\u305b\u3093\u3002

struct Circle\n{\n    double x, y, r;\n\n    Circle() = default;\n\n    [[nodiscard]] constexpr Circle(double _x, double _y, double _r) noexcept\n        : x(_x), y(_y), r(_r) {}\n\n    void draw() const { /* ... */ }\n};\n\nint main()\n{\n    Circle(200, 300, 50); // warning: nodiscard \u5c5e\u6027\u306e\u30b3\u30f3\u30b9\u30c8\u30e9\u30af\u30bf\u3067\u4f5c\u6210\u3055\u308c\u305f\u4e00\u6642\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u3092\u7121\u8996\n\n    Circle(400, 300, 50).draw();\n}\n

"},{"location":"standardization/cpp20/#inline-namespace-p1094r2","title":"\u30cd\u30b9\u30c8\u3057\u305f\u540d\u524d\u7a7a\u9593\u5b9a\u7fa9\u3067 inline namespace \u3092\u4f7f\u3048\u308b\u3088\u3046\u306b (P1094R2)","text":"

C++17 \u3067\u30cd\u30b9\u30c8\u3057\u305f\u540d\u524d\u7a7a\u9593\u5b9a\u7fa9\u304c\u5c0e\u5165\u3055\u308c\u307e\u3057\u305f\u304c\u3001\u305d\u306e\u4e2d\u3067\u306f inline namespace \u3092\u4f7f\u3046\u3053\u3068\u304c\u3067\u304d\u305a\u3001inline namespace \u304c namespace \u5185\u306b\u3042\u308b\u6b21\u306e\u3088\u3046\u306a\u30b1\u30fc\u30b9\u3067\u6069\u6075\u3092\u53d7\u3051\u3089\u308c\u307e\u305b\u3093\u3067\u3057\u305f\u3002C++20 \u304b\u3089\u306f\u30cd\u30b9\u30c8\u3057\u305f\u540d\u524d\u7a7a\u9593\u5b9a\u7fa9\u306e\u4e2d\u3067 inline \u3092\u4f7f\u3048\u308b\u3088\u3046\u306b\u306a\u308a\u307e\u3059\u3002

C++17C++20
#include <iostream>\n\nnamespace mylib::v1::util\n{\n    constexpr int GetValue() { return 1; }\n}\n\nnamespace mylib\n{\n    inline namespace v2\n    {\n        namespace util\n        {\n            constexpr int GetValue() { return 2; }\n        }\n    }\n}\n\nint main()\n{\n    std::cout << mylib::v1::util::GetValue() << '\\n';\n    std::cout << mylib::v2::util::GetValue() << '\\n';\n    std::cout << mylib::util::GetValue() << '\\n'; // v2\n}\n
#include <iostream>\n\nnamespace mylib::v1::util\n{\n    constexpr int GetValue() { return 1; }\n}\n\nnamespace mylib::inline v2::util\n{\n    constexpr int GetValue() { return 2; }\n}\n\nint main()\n{\n    std::cout << mylib::v1::util::GetValue() << '\\n';\n    std::cout << mylib::v2::util::GetValue() << '\\n';\n    std::cout << mylib::util::GetValue() << '\\n'; // v2\n}\n
"},{"location":"standardization/cpp20/#private-p0969r0","title":"\u672c\u6765\u30a2\u30af\u30bb\u30b9\u53ef\u80fd\u306a private \u30e1\u30f3\u30d0\u306b\u69cb\u9020\u5316\u675f\u7e1b\u3067\u306f\u30a2\u30af\u30bb\u30b9\u3067\u304d\u306a\u304b\u3063\u305f\u4ed5\u69d8\u3092\u4fee\u6b63 (P0969R0)","text":"

\u30e1\u30f3\u30d0\u95a2\u6570\u5185\u3067\u81ea\u8eab\u306e private \u30e1\u30f3\u30d0\u306b\u30a2\u30af\u30bb\u30b9\u3059\u308b\u3053\u3068\u3084\u3001friend \u6307\u5b9a\u3055\u308c\u305f\u95a2\u6570\u3067\u8a72\u5f53\u30af\u30e9\u30b9\u306e private \u30e1\u30f3\u30d0\u5909\u6570\u306b\u30a2\u30af\u30bb\u30b9\u3059\u308b\u3053\u3068\u306f\u901a\u5e38\u53ef\u80fd\u3067\u3059\u304c\u3001C++17 \u306e\u69cb\u9020\u5316\u675f\u7e1b\u306f\u30af\u30e9\u30b9\u306e public \u30e1\u30f3\u30d0\u306b\u3057\u304b\u30d0\u30a4\u30f3\u30c9\u3067\u304d\u306a\u3044\u3068\u3044\u3046\u898f\u683c\u6587\u9762\u306e\u5236\u7d04\u304c\u3042\u308a\u3001\u6b21\u306e\u3088\u3046\u306a\u30b1\u30fc\u30b9\u3067\u4e00\u8cab\u6027\u304c\u3042\u308a\u307e\u305b\u3093\u3067\u3057\u305f\u3002\u3053\u306e\u5236\u7d04\u3092\u8ab2\u3059\u5408\u7406\u7684\u306a\u7406\u7531\u306f\u7121\u304b\u3063\u305f\u305f\u3081\u3001C++17 \u5411\u3051\u306e\u898f\u683c\u306b\u3055\u304b\u306e\u307c\u3063\u3066\u4ed5\u69d8\u304c\u4fee\u6b63\u3055\u308c\u3001\u30a2\u30af\u30bb\u30b9\u53ef\u80fd\u3067\u3042\u308c\u3070 private \u30e1\u30f3\u30d0\u5909\u6570\u3092\u30d0\u30a4\u30f3\u30c9\u3067\u304d\u308b\u3088\u3046\u306b\u306a\u308a\u307e\u3059\u3002C++20 \u304a\u3088\u3073\u3001\u3053\u306e\u5909\u66f4\u306b\u5bfe\u5fdc\u3057\u305f C++17 \u30b3\u30f3\u30d1\u30a4\u30e9\u3067\u65b0\u4ed5\u69d8\u3092\u5229\u7528\u3067\u304d\u307e\u3059\u3002

class Date\n{\nprivate:\n\n    int m_year, m_month, m_day;\n\npublic:\n\n    friend void Work(const Date& date);\n\n    void f(const Date& other) const\n    {\n        // OK\n        int year = other.m_year;\n        int month = other.m_month;\n        int day = other.m_day;\n\n        // \u3053\u308c\u307e\u3067\u306f\u30b3\u30f3\u30d1\u30a4\u30eb\u30a8\u30e9\u30fc, C++20 \u4ee5\u964d OK\n        auto [y, m, d] = other;\n    }\n};\n\n// friend \u6307\u5b9a\u3055\u308c\u3066\u3044\u308b\u95a2\u6570\nvoid Work(const Date& date)\n{\n    // OK\n    int year = date.m_year;\n    int month = date.m_month;\n    int day = date.m_day;\n\n    // \u3053\u308c\u307e\u3067\u306f\u30b3\u30f3\u30d1\u30a4\u30eb\u30a8\u30e9\u30fc, C++20 \u4ee5\u964d OK\n    auto [y, m, d] = date;\n}\n\nint main()\n{\n\n}\n
"},{"location":"standardization/cpp20/#p1008r1","title":"\u30e6\u30fc\u30b6\u5ba3\u8a00\u3055\u308c\u305f\u30b3\u30f3\u30b9\u30c8\u30e9\u30af\u30bf\u3092\u6301\u3064\u30af\u30e9\u30b9\u306e\u96c6\u6210\u4f53\u521d\u671f\u5316\u3092\u7981\u6b62 (P1008R1)","text":"

C++17 \u307e\u3067\u306f\u96c6\u6210\u4f53\u306e\u8981\u4ef6\u304c\u7de9\u304b\u3063\u305f\u305f\u3081\u3001\u30b3\u30f3\u30b9\u30c8\u30e9\u30af\u30bf\u306b\u3064\u3044\u3066\u306f\u3001\u30c7\u30d5\u30a9\u30eb\u30c8\u30b3\u30f3\u30b9\u30c8\u30e9\u30af\u30bf\u304c = delete \u307e\u305f\u306f private \u3067\u3042\u3063\u3066\u3082\u3001\u96c6\u6210\u4f53\u521d\u671f\u5316\u306b\u3088\u3063\u3066\u521d\u671f\u5316\u3067\u304d\u308b\u629c\u3051\u9053\u304c\u3042\u308a\u307e\u3057\u305f\u3002\u3053\u308c\u306f\u30e1\u30f3\u30d0\u5909\u6570\u304c\u610f\u56f3\u3057\u306a\u3044\u5024\u3067\u521d\u671f\u5316\u3055\u308c\u308b\u3068\u3044\u3063\u305f\u554f\u984c\u3092\u5f15\u304d\u8d77\u3053\u3057\u307e\u3059\u3002C++20 \u304b\u3089\u306f\u96c6\u6210\u4f53\u306e\u8981\u4ef6\u304c\u53b3\u3057\u304f\u306a\u308a\u3001\u30e6\u30fc\u30b6\u5ba3\u8a00\u3055\u308c\u305f\u30b3\u30f3\u30b9\u30c8\u30e9\u30af\u30bf\u304c\u3042\u308b\u30af\u30e9\u30b9\u306f\u96c6\u6210\u4f53\u306b\u306f\u306a\u308a\u307e\u305b\u3093\u3002

struct A\n{\n    A() = delete;\n};\n\nstruct B\n{\nprivate:\n    B() = default;\n};\n\nstruct C\n{\n    int i = 0;\n    C() = default;\n};\n\nint main()\n{\n    A a1; // \u30b3\u30f3\u30d1\u30a4\u30eb\u30a8\u30e9\u30fc\n    A a2{}; // C++17 \u307e\u3067\u306f OK, C++20 \u304b\u3089\u306f\u30b3\u30f3\u30d1\u30a4\u30eb\u30a8\u30e9\u30fc\n\n    B b1; // \u30b3\u30f3\u30d1\u30a4\u30eb\u30a8\u30e9\u30fc\n    B b2{}; // C++17 \u307e\u3067\u306f OK, C++20 \u304b\u3089\u306f\u30b3\u30f3\u30d1\u30a4\u30eb\u30a8\u30e9\u30fc\n\n    C c1(123); //\u30b3\u30f3\u30d1\u30a4\u30eb\u30a8\u30e9\u30fc\n    C c2{ 123 }; // C++17 \u307e\u3067\u306f OK, C++20 \u304b\u3089\u306f\u30b3\u30f3\u30d1\u30a4\u30eb\u30a8\u30e9\u30fc\n}\n
"},{"location":"standardization/cpp20/#throw-p0619r4","title":"throw() \u306b\u3088\u308b\u52d5\u7684\u4f8b\u5916\u6307\u5b9a\u3092\u524a\u9664 (P0619R4)","text":"

C++11 \u3067\u306f\u3001noexcept \u306e\u8ffd\u52a0\u306b\u5408\u308f\u305b\u3001throw(typeid, ...) \u3084 throw() \u306b\u3088\u308b\u52d5\u7684\u4f8b\u5916\u6307\u5b9a\u304c\u975e\u63a8\u5968\u5316\u3055\u308c\u307e\u3057\u305f\u3002C++17 \u3067\u306f\u524d\u8005\u304c\u524a\u9664\u3055\u308c\u307e\u3057\u305f\u304c\u3001\u53e4\u3044\u30b3\u30fc\u30c9\u306b\u304a\u3044\u3066\u5e83\u304f\u4f7f\u308f\u308c\u3066\u3044\u305f\u5f8c\u8005\u306f\u3001\u79fb\u884c\u7336\u4e88\u306e\u305f\u3081\u306b noexcept(true) \u306e\u30a8\u30a4\u30ea\u30a2\u30b9\u3068\u3057\u3066\u6539\u3081\u3089\u308c\u3064\u3064\u4fdd\u6301\u3055\u308c\u3066\u3044\u307e\u3057\u305f\u3002C++20 \u3067\u306f\u5f8c\u8005\u3082\u524a\u9664\u3055\u308c\u307e\u3059\u3002

"},{"location":"standardization/cpp20/#nodiscard-p1301r4","title":"\u30e1\u30c3\u30bb\u30fc\u30b8\u4ed8\u304d\u306e [[nodiscard]] \u5c5e\u6027 (P1301R4)","text":"

C++17 \u3067\u8ffd\u52a0\u3055\u308c\u305f [[nodiscard]] \u5c5e\u6027\u306f\u3001\u30e9\u30a4\u30d6\u30e9\u30ea\u306a\u3069\u304c\u63d0\u4f9b\u3059\u308b\u95a2\u6570\u306e\u8aa4\u7528\u3092\u9632\u3050\u52a9\u3051\u306b\u306a\u308a\u307e\u3059\u304c\u3001\u95a2\u6570\u304c\u306a\u305c [[nodiscard]] \u5c5e\u6027\u3092\u6301\u3063\u3066\u3044\u308b\u306e\u304b\u306b\u3064\u3044\u3066\u3001\u5229\u7528\u8005\u306b\u5341\u5206\u306a\u60c5\u5831\u304c\u4f1d\u308f\u3089\u306a\u3044\u5834\u5408\u304c\u3042\u308a\u307e\u3057\u305f\u3002C++20 \u3067\u306f [[nodiscard(\"....\")]] \u306e\u3088\u3046\u306a\u5f62\u5f0f\u3067\u30e1\u30c3\u30bb\u30fc\u30b8\u3092\u8ffd\u52a0\u3067\u304d\u308b\u3088\u3046\u306b\u306a\u308a\u307e\u3059\u3002\u623b\u308a\u5024\u306e\u7121\u8996\u304c\u3042\u3063\u305f\u5834\u5408\u3001\u30b3\u30f3\u30d1\u30a4\u30e9\u306f\u8b66\u544a\u306b\u52a0\u3048\u3066\u3053\u306e\u30e1\u30c3\u30bb\u30fc\u30b8\u3092\u88dc\u8db3\u60c5\u5831\u3068\u3057\u3066\u51fa\u529b\u3067\u304d\u307e\u3059\u3002

#include <vector>\n\nstruct Data\n{\nprivate:\n\n    std::vector<int> m_data;\n\npublic:\n\n    void clear()\n    {\n        m_data.clear();\n    }\n\n    [[nodiscard(\"Did you mean 'clear'?\")]]\n    bool empty() const\n    {\n        return m_data.empty();\n    }\n};\n\nint main()\n{\n    Data data;\n\n    data.empty();\n}\n

\u30b3\u30f3\u30d1\u30a4\u30e9\u306e\u51fa\u529b\u4f8b

prog.cc:27:2: warning: ignoring return value of function declared with 'nodiscard' attribute:\n        Did you mean 'clear'? [-Wunused-result]\n        data.empty();\n        ^~~~~~~~~~\n1 warning generated.\n
"},{"location":"standardization/cpp20/#p0329r4","title":"\u6307\u793a\u4ed8\u304d\u521d\u671f\u5316\u5b50\u306b\u3088\u308b\u96c6\u6210\u4f53\u306e\u521d\u671f\u5316 (P0329R4)","text":"

C++20 \u304b\u3089\u3001\u96c6\u6210\u4f53\u306b\u304a\u3044\u3066\u3001\u30e1\u30f3\u30d0\u5909\u6570\u540d\u3092\u6307\u5b9a\u3057\u305f\u521d\u671f\u5316\uff08\u6307\u793a\u4ed8\u304d\u521d\u671f\u5316\u5b50\u3092\u7528\u3044\u305f\u521d\u671f\u5316: \"Designated Initialization\" \uff09\u304c\u3067\u304d\u308b\u3088\u3046\u306b\u306a\u308a\u307e\u3059\u3002C \u8a00\u8a9e (C99) \u306b\u3082\u540c\u69d8\u306e\u6a5f\u80fd\u304c\u3042\u308a\u307e\u3059\u304c\u3001C++20 \u3067\u306f C99 \u306e\u6307\u793a\u4ed8\u304d\u521d\u671f\u5316\u5b50\u3068\u6bd4\u8f03\u3057\u3066\u4ee5\u4e0b\u306e\u3088\u3046\u306a\u5236\u7d04\u304c\u8ffd\u52a0\u3055\u308c\u3066\u3044\u307e\u3059\u3002

\u307e\u305f\u3001\u521d\u671f\u5316\u5b50\u306e\u8a55\u4fa1\u9806\u5e8f\u304c\u5de6\u304b\u3089\u53f3\u3067\u3042\u308b\u3053\u3068\u304c\u4fdd\u8a3c\u3055\u308c\u307e\u3059\u3002

#include <string>\n\nstruct Point\n{\n    int x, y;\n};\n\nstruct Item\n{\n    std::string name;\n    int id = -1;\n    Point pos = { -1, -1 };\n};\n\nvoid F(Point) {}\n\nint main()\n{\n    Point p1 = { .x = 10, .y = 20 }; // OK\n    Point p2{ .x = 10, .y = 20 }; // OK\n    Point p3 = { .x = 10 }; // OK: y \u306f 0 \u306b\u521d\u671f\u5316\u3055\u308c\u308b\n    Point p4 = { .y = 20 }; // OK: x \u306f 0 \u306b\u521d\u671f\u5316\u3055\u308c\u308b\n    F({ .x = 10, .y = 20 }); // OK\n\n    Point p4 = { .y = 20, .x = 30 }; // \u30b3\u30f3\u30d1\u30a4\u30eb\u30a8\u30e9\u30fc: (a) \u6307\u793a\u5b50\u306e\u9806\u756a\u304c\u30e1\u30f3\u30d0\u306e\u5ba3\u8a00\u9806\u3068\u7570\u306a\u308b\n    Point p5 = { .x = 20, 40 }; // \u30b3\u30f3\u30d1\u30a4\u30eb\u30a8\u30e9\u30fc: (b) \u6307\u793a\u4ed8\u304d\u521d\u671f\u5316\u5b50\u3068\u901a\u5e38\u306e\u521d\u671f\u5316\u5b50\u306f\u6df7\u5728\u3067\u304d\u306a\u3044\n    Point p6 = { .x = 20, .x = 30, .y = 30 }; // \u30b3\u30f3\u30d1\u30a4\u30eb\u30a8\u30e9\u30fc: (c) \u540c\u4e00\u30e1\u30f3\u30d0\u306e\u6307\u793a\u4ed8\u304d\u521d\u671f\u5316\u5b50\u306f\u8907\u6570\u56de\u767b\u5834\u3067\u304d\u306a\u3044\n\n    Item i1{ .name = \"shield\", .id = 30, .pos = { 5, 2 } }; // OK\n    Item i2{ .id = 0 }; // OK: name \u306f {} \u3067\u521d\u671f\u5316\u3001pos \u306f { -1, -1 } \u3067\u521d\u671f\u5316\n\n    Item i3{ .pos.x = 10, .pos.y = 40 }; // \u30b3\u30f3\u30d1\u30a4\u30eb\u30a8\u30e9\u30fc: (d) \u6307\u793a\u4ed8\u304d\u521d\u671f\u5316\u5b50\u306f\u30cd\u30b9\u30c8\u3067\u304d\u306a\u3044\n\n    int arr[3] = { [1] = 5 }; // \u30b3\u30f3\u30d1\u30a4\u30eb\u30a8\u30e9\u30fc: (e) \u914d\u5217\u306e\u6307\u793a\u4ed8\u304d\u521d\u671f\u5316\u306f\u3067\u304d\u306a\u3044\n}\n

\u5f93\u6765\u307e\u3067\u306e Point p{}, Item i{} \u306e\u3088\u3046\u306a\u96c6\u6210\u4f53\u521d\u671f\u5316\u3092\u300c\u6307\u793a\u4ed8\u304d\u521d\u671f\u5316\u5b50\u304c 0 \u500b\u306e\u521d\u671f\u5316\u300d\u3068\u8003\u3048\u308b\u3068\u3001\u65b0\u3057\u3044\u6319\u52d5\u3082\u7406\u89e3\u3057\u3084\u3059\u304f\u306a\u308a\u307e\u3059\u3002\u306a\u304a\u3001\u6b21\u306e\u3088\u3046\u306b\u96c6\u6210\u4f53\u3067\u306f\u306a\u3044\u30af\u30e9\u30b9\u306e\u521d\u671f\u5316\u306b\u306f\u3001\u6307\u793a\u4ed8\u304d\u521d\u671f\u5316\u5b50\u306f\u4f7f\u3048\u307e\u305b\u3093\u3002

#include <string>\n\nstruct Point\n{\n    int x, y;\n    Point() = default;\n    Point(int _x, int _y)\n        : x(_x)\n        , y(_y) {}\n};\n\nint main()\n{\n    // \u30b3\u30f3\u30d1\u30a4\u30eb\u30a8\u30e9\u30fc:\n    // \u30e6\u30fc\u30b6\u5ba3\u8a00\u3055\u308c\u305f\u30b3\u30f3\u30b9\u30c8\u30e9\u30af\u30bf\u3092\u6301\u3064\u305f\u3081\u96c6\u6210\u4f53\u3067\u306f\u306a\u3044\n    // \u96c6\u6210\u4f53\u3067\u306a\u3044\u305f\u3081\u6307\u793a\u4ed8\u304d\u521d\u671f\u5316\u5b50\u3092\u4f7f\u3048\u306a\u3044\n    Point p{ .x = 20, .y = 4 }; \n}\n
"},{"location":"standardization/cpp20/#_2","title":"\u6a19\u6e96\u30e9\u30a4\u30d6\u30e9\u30ea","text":""},{"location":"standardization/cpp20/#p0457r2","title":"\u6587\u5b57\u5217\u306e\u5148\u982d\u3084\u672b\u5c3e\u304c\u3001\u3042\u308b\u6587\u5b57\u5217\u3068\u4e00\u81f4\u3059\u308b\u304b\u5224\u5b9a (P0457R2)","text":"

std::basic_string \u3068 std::basic_string_view \u306b\u3001starts_with() \u3068 ends_with() \u30e1\u30f3\u30d0\u95a2\u6570\u304c\u8ffd\u52a0\u3055\u308c\u307e\u3059\u3002

#include <iostream>\n#include <string_view>\n\nconstexpr bool HasPNGExtension(std::string_view filePath)\n{\n    // \u6587\u5b57\u5217\u304c \".png\" \u3067\u7d42\u308f\u308b\u306a\u3089 true, \u305d\u308c\u4ee5\u5916\u306f false \u3092\u8fd4\u3059\n    return filePath.ends_with(\".png\");\n}\n\nint main()\n{\n    std::cout << std::boolalpha;\n    std::cout << HasPNGExtension(\"picture.png\") << '\\n';\n    std::cout << HasPNGExtension(\"photo.jpg\") << '\\n';\n    std::cout << HasPNGExtension(\"music.mp3\") << '\\n';\n}\n
true\nfalse\nfalse\n

"},{"location":"standardization/cpp20/#operatorbasic_istream-chart-chartn-p0487r1","title":"operator>>(basic_istream&, charT*) \u306e\u7b2c\u4e8c\u5f15\u6570\u3092 charT(&)[N] \u306b\u5909\u66f4\u3057\u3066\u5b89\u5168\u306b (P0487R1)","text":"

C++17 \u307e\u3067\u306e operator>>(basic_istream&, charT*) \u306f\u3001\u95a2\u6570\u306b\u30d0\u30c3\u30d5\u30a1\u306e\u30b5\u30a4\u30ba\u304c\u6e21\u3055\u308c\u306a\u3044\u305f\u3081\u3001\u6b21\u306e\u3088\u3046\u306a\u30d7\u30ed\u30b0\u30e9\u30e0\u3067\u30d0\u30c3\u30d5\u30a1\u30aa\u30fc\u30d0\u30fc\u30d5\u30ed\u30fc\u3078\u306e\u5bfe\u7b56\u304c\u5fc5\u8981\u3067\u3057\u305f\u3002

#include <iostream>\n#include <iomanip>\n\nint main()\n{\n    char buffer[4];\n\n    // std::cin >> buffer; // \u5371\u967a: \u30d0\u30c3\u30d5\u30a1\u30aa\u30fc\u30d0\u30fc\u30d5\u30ed\u30fc\u306e\u53ef\u80fd\u6027\n\n    std::cin >> std::setw(4) >> buffer; // OK: \u30d0\u30c3\u30d5\u30a1\u30aa\u30fc\u30d0\u30fc\u30d5\u30ed\u30fc\u5bfe\u7b56\n\n    std::cout << buffer;\n}\n
C++20 \u3067\u306f\u5f15\u6570\u3092\u6b21\u306e\u3088\u3046\u306b\u5909\u66f4\u3057\u3001\u95a2\u6570\u304c\u30d0\u30c3\u30d5\u30a1\u30aa\u30fc\u30d0\u30fc\u30d5\u30ed\u30fc\u306e\u5bfe\u7b56\u3092\u5b9f\u88c5\u3059\u308b\u3088\u3046\u306b\u306a\u308a\u307e\u3059\u3002
// C++17 \u307e\u3067\ntemplate<class charT, class traits>\nbasic_istream<charT, traits>& operator>>(basic_istream<charT, traits>& in, charT* s);\n\n// C++20 \u304b\u3089\ntemplate<class charT, class traits, size_t N>\nbasic_istream<charT, traits>& operator>>(basic_istream<charT, traits>& in, charT (&s)[N]);\n
#include <iostream>\n#include <iomanip>\n\nint main()\n{\n    char buffer[4];\n\n    std::cin >> buffer; // OK: C++20 \u3067\u306f\u30d0\u30c3\u30d5\u30a1\u30aa\u30fc\u30d0\u30fc\u30d5\u30ed\u30fc\u3092\u9632\u3052\u308b\n\n    std::cout << buffer;\n}\n
\u3053\u306e\u5909\u66f4\u306b\u4f34\u3044\u3001C++17 \u307e\u3067\u306f\u6709\u52b9\u3060\u3063\u305f\u6b21\u306e\u3088\u3046\u306a\u30d7\u30ed\u30b0\u30e9\u30e0\u304c\u3001C++20 \u304b\u3089\u30b3\u30f3\u30d1\u30a4\u30eb\u30a8\u30e9\u30fc\u306b\u306a\u308a\u307e\u3059\u3002
#include <iostream>\n#include <iomanip>\n\nint main()\n{\n    char* p = new char[100];\n    std::cin >> std::setw(100) >> p; // C++20 \u304b\u3089\u306f\u30b3\u30f3\u30d1\u30a4\u30eb\u30a8\u30e9\u30fc\n    std::cout << p;\n}\n

"},{"location":"standardization/cpp20/#nodiscard-p0600r1","title":"\u623b\u308a\u5024\u306e\u7121\u8996\u304c\u4e0d\u5177\u5408\u3092\u3082\u305f\u3089\u3059\u95a2\u6570\u306b [[nodiscard]] \u3092\u4ed8\u4e0e (P0600R1)","text":"

C++17 \u3067\u5c0e\u5165\u3055\u308c\u305f [[nodiscard]] \u5c5e\u6027\u3092\u6a19\u6e96\u30e9\u30a4\u30d6\u30e9\u30ea\u3067\u6d3b\u7528\u3059\u308b\u3088\u3046\u306b\u306a\u308a\u307e\u3059\u3002C++20 \u3067\u306f\u4ed8\u4e0e\u57fa\u6e96\u3092\u300c\u623b\u308a\u5024\u306e\u7121\u8996\u304c\u30c8\u30e9\u30d6\u30eb\u3084\u30e1\u30e2\u30ea\u30ea\u30fc\u30af\u306a\u3069\u306e\u91cd\u5927\u306a\u30a8\u30e9\u30fc\u3092\u5f15\u304d\u8d77\u3053\u3059 C++ \u306e\u95a2\u6570\u300d\u3068\u3057\u3001async(), launder(), allocate(), empty(), operator new() \u304c\u5bfe\u8c61\u3068\u306a\u3063\u3066\u3044\u307e\u3059\u3002

#include <vector>\n#include <future>\n\nint main()\n{\n    std::vector v = { 10, 20, 30 };\n\n    v.empty(); // C++20 \u3067\u306f\u8b66\u544a\n\n    std::async(std::launch::async, [] { return 1; }); // C++20 \u3067\u306f\u8b66\u544a\n}\n
MSVC \u306e\u6a19\u6e96\u30e9\u30a4\u30d6\u30e9\u30ea\u3067\u306f Visual Studio 2017 15.6 \u4ee5\u964d\u3001\u898f\u683c\u306e\u7bc4\u56f2\u3092\u8d85\u3048\u3066\u3088\u308a\u591a\u304f\u306e\u95a2\u6570\uff082,500 \u500b\u4ee5\u4e0a\uff09\u306b [[nodiscard]] \u5c5e\u6027\u3092\u4f7f\u3063\u3066\u3044\u307e\u3059\u3002\u305d\u306e\u7d50\u679c\u3001Chromium \u306e\u30bd\u30fc\u30b9\u306b\u7121\u610f\u5473\u306a std::move() \u304c\u898b\u3064\u304b\u308b\u306a\u3069\u3001\u65e2\u5b58\u306e\u30b3\u30fc\u30c9\u30d9\u30fc\u30b9\u306e\u30d0\u30b0\u306e\u767a\u898b\u306b\u5f79\u7acb\u3063\u3066\u3044\u307e\u3059\u3002

"},{"location":"standardization/cpp20/#array-constexpr-p1023r0-p1032r1","title":"<array> \u30d8\u30c3\u30c0\u306e\u3059\u3079\u3066\u306e\u95a2\u6570\u304c constexpr \u306b (P1023R0), (P1032R1)","text":"

C++17 \u306e <array> \u30d8\u30c3\u30c0\u3067\u306f\u3001\u6bd4\u8f03\u6f14\u7b97\u5b50\u3001swap(), fill() \u4ee5\u5916\u306e\u3059\u3079\u3066\u306e\u95a2\u6570\u304c constexpr \u3067\u3057\u305f\u3002C++20 \u3067\u306f\u3055\u3089\u306b\u3001array \u306e\u6bd4\u8f03\u6f14\u7b97\u306e\u5b9f\u88c5\u306b\u4f7f\u308f\u308c\u3066\u3044\u308b std::equal() \u3068 std::lexicographical_compare() \u304c constexpr \u306b\u306a\u3063\u305f (P0202R3) \u3053\u3068\u306b\u3068\u3082\u306a\u3044\u3001array \u306e\u6bd4\u8f03\u6f14\u7b97\u5b50\u3092 constexpr \u3068\u3057\u3001\u307e\u305f swap() \u3068 fill() \u306b\u3064\u3044\u3066\u3082 constexpr \u306b\u3059\u308b\u3053\u3068\u3092\u6c7a\u3081\u3001array \u30d8\u30c3\u30c0\u306e\u3059\u3079\u3066\u306e\u95a2\u6570\u304c constexpr \u3067\u63d0\u4f9b\u3055\u308c\u307e\u3059\u3002

"},{"location":"standardization/cpp20/#chrono-zero-min-max-noexcept-p0972r0","title":"<chrono> \u30d8\u30c3\u30c0\u306e zero(), min(), max() \u95a2\u6570\u304c noexcept \u306b (P0972R0)","text":"

std::chrono::duration_values, std::chrono::duration, std::chrono::time_point \u306a\u3069\u306e zero(), min(), max() \u95a2\u6570\u306b noexcept \u304c\u4ed8\u304d\u307e\u3059\u3002

"},{"location":"standardization/cpp20/#pointer_traits-constexpr-p1006r1","title":"pointer_traits \u304c constexpr \u306b (P1006R1)","text":"

std::vector \u3092 constexpr \u306b\u3059\u308b\u306e\u306b\u5fc5\u8981\u306a\u305f\u3081\u3001std::pointer_traits::pointer_to() \u95a2\u6570\u304c constrexpr \u306b\u306a\u308a\u307e\u3059\u3002

"},{"location":"standardization/cpp20/#assume_aligned-p1007r3","title":"\u30dd\u30a4\u30f3\u30bf\u306e\u30a2\u30e9\u30a4\u30e1\u30f3\u30c8\u3092\u6700\u9069\u5316\u30d2\u30f3\u30c8\u3068\u3057\u3066\u30b3\u30f3\u30d1\u30a4\u30e9\u306b\u4f1d\u3048\u308b assume_aligned() \u95a2\u6570 (P1007R3)","text":"

\u30c7\u30fc\u30bf\u306e\u30a2\u30c9\u30ec\u30b9\u304c 16 \u30d0\u30a4\u30c8\u306a\u3069\u306e\u30b5\u30a4\u30ba\u306b\u30a2\u30e9\u30a4\u30e1\u30f3\u30c8\u3055\u308c\u3066\u3044\u308b\u5834\u5408\u3001\u30b3\u30f3\u30d1\u30a4\u30e9\u304c SIMD \u3092\u4f7f\u3063\u305f\u6700\u9069\u306a\u30b3\u30fc\u30c9\u3092\u751f\u6210\u3067\u304d\u308b\u53ef\u80fd\u6027\u304c\u3042\u308a\u307e\u3059\u3002\u3042\u308b\u30dd\u30a4\u30f3\u30bf\u306e\u6307\u3059\u30c7\u30fc\u30bf\u304c\u30a2\u30e9\u30a4\u30e1\u30f3\u30c8\u3055\u308c\u3066\u3044\u308b\u3053\u3068\u3092\u30b3\u30f3\u30d1\u30a4\u30e9\u306b\u4f1d\u3048\u308b\u65b9\u6cd5\u3068\u3057\u3066\u3001GCC \u3084 Clang \u3067\u306f __builtin_assume_aligned() \u3084 __attribute__((assume_aligned(alignment))), ICC \u3067\u306f __assume_aligned() \u306a\u3069\u306e\u72ec\u81ea\u62e1\u5f35\u304c\u3042\u308a\u307e\u3059\u304c\u3001\u6a19\u6e96\u5316\u3055\u308c\u305f\u65b9\u6cd5\u306f\u3042\u308a\u307e\u305b\u3093\u3067\u3057\u305f\u3002C++20 \u3067\u306f\u3001\u3053\u308c\u3089\u306e\u5dee\u7570\u3092\u5438\u53ce\u3059\u308b\u6b21\u306e\u3088\u3046\u306a\u95a2\u6570\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8\u304c\u63d0\u4f9b\u3055\u308c\u307e\u3059\u3002

template <size_t N, class T>\n[[nodiscard]] constexpr T* assume_aligned(T* ptr);\n
\u5b9f\u969b\u306b\u306f\u6b21\u306e\u3088\u3046\u306b\u4f7f\u3044\u307e\u3059\u3002
void Multiply(float* x, size_t size, float factor)\n{\n    float* ax = std::assume_aligned<64>(x); // x \u304c 64 \u30d0\u30a4\u30c8\u30a2\u30e9\u30a4\u30e1\u30f3\u30c8\u3067\u3042\u308b\u3053\u3068\u3092\u4f1d\u3048\u308b\n\n    for (size_t i = 0; i < size; ++i) // \u30eb\u30fc\u30d7\u304c\u9069\u5b9c\u6700\u9069\u5316\u3055\u308c\u308b\n    {\n        ax[i] *= factor;\n    }\n}\n

"},{"location":"standardization/cpp20/#make-p1020r1-p1973r1","title":"\u30b9\u30de\u30fc\u30c8\u30dd\u30a4\u30f3\u30bf\u306e\u4f5c\u6210\u6642\u306b\u5024\u3092\u30c7\u30d5\u30a9\u30eb\u30c8\u521d\u671f\u5316\u3059\u308b make \u95a2\u6570\u3092\u8ffd\u52a0 (P1020R1), (P1973R1)","text":"

\u5b9f\u884c\u6642\u6027\u80fd\u306e\u305f\u3081\u306b\u3001float \u3084 unsigned char \u306a\u3069\u7d44\u307f\u8fbc\u307f\u578b\u306e\u914d\u5217\u306e\u5024\u3092\u30c7\u30d5\u30a9\u30eb\u30c8\u521d\u671f\u5316\u3055\u305b\u305f\u3044\uff08\u30bc\u30ed\u521d\u671f\u5316\u3057\u306a\u3044\uff09\u30b1\u30fc\u30b9\u304c\u3042\u308a\u307e\u3059\u3002\u3057\u304b\u3057\u3001make_unique \u3084 make_shared, allocate_shared \u3067\u30b9\u30de\u30fc\u30c8\u30dd\u30a4\u30f3\u30bf\u3092\u4f5c\u6210\u3057\u305f\u5834\u5408\u306b\u306f\u5024\u521d\u671f\u5316\u304c\u5b9f\u884c\u3055\u308c\u307e\u3059\u3002C++20 \u3067\u306f\u3001\u5024\u521d\u671f\u5316\u3092\u305b\u305a\u306b\u30c7\u30d5\u30a9\u30eb\u30c8\u521d\u671f\u5316\u3067\u30b9\u30de\u30fc\u30c8\u30dd\u30a4\u30f3\u30bf\u3092\u4f5c\u6210\u3059\u308b\u95a2\u6570 make_unique_for_overwrite, make_shared_for_overwrite, allocate_shared_for_overwrite \u304c\u8ffd\u52a0\u3055\u308c\u307e\u3057\u305f\u3002

#include <iostream>\n#include <memory>\n\n// \u672a\u521d\u671f\u5316\u306e\u5909\u6570\u3092\u4f7f\u3046\u5b9f\u9a13\u7684\u306a\u30b3\u30fc\u30c9\nint main()\n{\n    float v[4]; // \u30c7\u30d5\u30a9\u30eb\u30c8\u521d\u671f\u5316\n\n    for (int i = 0; i < 4; ++i)\n    {\n        std::cout << v[i] << '\\n';\n    }\n\n    auto pv = std::make_unique<float[]>(4); // \u5024\u521d\u671f\u5316 (0 \u521d\u671f\u5316) \n\n    for (int i = 0; i < 4; ++i)\n    {\n        std::cout << pv[i] << '\\n';\n    }\n\n    auto pd = std::make_unique_for_overwrite<float[]>(4); // \u30c7\u30d5\u30a9\u30eb\u30c8\u521d\u671f\u5316\n\n    for (int i = 0; i < 4; ++i)\n    {\n        std::cout << pd[i] << '\\n';\n    }\n}\n
\u51fa\u529b\u4f8b
2.20325e-38\n4.11052e+32\n1.3013e-45\n2.48626e-38\n0\n0\n0\n0\n2.30415e-38\n2.51341e-38\n4.63281e+30\n2.32703e+17\n

"},{"location":"standardization/cpp20/#key_type-p0919r3-p1690r1","title":"\u975e\u9806\u5e8f\u9023\u60f3\u30b3\u30f3\u30c6\u30ca\u306e\u30eb\u30c3\u30af\u30a2\u30c3\u30d7\u64cd\u4f5c\u3067\u3001key_type \u3068\u6bd4\u8f03\u53ef\u80fd\u306a\u578b\u3092\u5909\u63db\u305b\u305a\u306b\u4f7f\u3048\u308b\u3088\u3046\u306b (P0919R3), (P1690R1)","text":"

C++17 \u307e\u3067\u306e unorderd_map \u3084 unordered_set \u306a\u3069\u975e\u9806\u5e8f\u9023\u60f3\u30b3\u30f3\u30c6\u30ca\u3067\u306f\u3001find(), count(), equal_range() \u306a\u3069\u30eb\u30c3\u30af\u30a2\u30c3\u30d7\u3092\u884c\u3046\u30e1\u30f3\u30d0\u95a2\u6570\u306f\u5f15\u6570\u306b key_type \u3092\u3068\u308a\u3001\u4f8b\u3048\u3070\u6b21\u306e\u3088\u3046\u306a\u30b1\u30fc\u30b9\u3067 std::string \u578b\u306e\u4e00\u6642\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u304c\u4f5c\u6210\u3055\u308c\u3066\u975e\u52b9\u7387\u3067\u3057\u305f\u3002

#include <string>\n#include <unordered_map>\n\nint main()\n{\n    std::unordered_map<std::string, int> table = { /* ... */ };\n\n    auto it = table.find(\"abc\"); // std::string \u578b\u306e\u4e00\u6642\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u304c\u4f5c\u6210\u3055\u308c\u308b\n}\n

C++20 \u3067\u306f\u3001\u975e\u9806\u5e8f\u9023\u60f3\u30b3\u30f3\u30c6\u30ca\u306e\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8\u30d1\u30e9\u30e1\u30fc\u30bf\u306b\u3064\u3044\u3066 Hash::is_transparent \u3068 Pred::is_transparent \u304c\u5b58\u5728\u3059\u308b\u3068\u304d\u306b\u3001key_type \u4ee5\u5916\u306e\u578b\u3092\u5f15\u6570\u306b\u3068\u308b\u30e1\u30f3\u30d0\u95a2\u6570\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8\u306e\u30aa\u30fc\u30d0\u30fc\u30ed\u30fc\u30c9\u304c\u4f7f\u7528\u53ef\u80fd\u306b\u306a\u308a\u3001\u4e00\u6642\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u306e\u4f5c\u6210\u3092\u56de\u907f\u3067\u304d\u308b\u3088\u3046\u306b\u306a\u308a\u307e\u3059\u3002

#include <string>\n#include <string_view>\n#include <unordered_map>\n\nstruct string_compare\n{\n    using is_transparent = void;\n    bool operator()(std::string_view key, std::string_view txt) const { return key == txt; }\n};\n\nstruct string_hash\n{\n    using is_transparent = void;\n    using transparent_key_equal = string_compare;\n    using hash_type = std::hash<std::string_view>; // helper local type\n    size_t operator()(std::string_view txt) const { return hash_type{}(txt); }\n    size_t operator()(const std::string& txt) const { return hash_type{}(txt); }\n    size_t operator()(const char* txt) const { return hash_type{}(txt); }\n};\n\nint main()\n{\n    using namespace std::literals;\n\n    std::unordered_map<std::string, int, string_hash, string_compare> table = { /* ... */ };\n\n    auto it1 = table.find(\"abc\"); // std::string \u578b\u306e\u4e00\u6642\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u306f\u4f5c\u6210\u3055\u308c\u306a\u3044\n\n    auto it2 = table.find(\"abc\"sv); // std::string \u578b\u306e\u4e00\u6642\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u306f\u4f5c\u6210\u3055\u308c\u306a\u3044\n}\n
"},{"location":"standardization/cpp20/#2-stdmidpoint-p0811r3","title":"2 \u3064\u306e\u5024\u306e\u4e2d\u70b9\u3092\u8a08\u7b97\u3059\u308b std::midpoint() \u95a2\u6570 (P0811R3)","text":"

2 \u3064\u306e\u5024 a, b \u306e\u4e2d\u70b9\u3092\u8a08\u7b97\u3059\u308b\u969b\u306b\u3001\u5358\u7d14\u306a (a + b) / 2 \u3068\u3044\u3046\u5f0f\u3067\u306f\u30aa\u30fc\u30d0\u30fc\u30d5\u30ed\u30fc\u3092\u8d77\u3053\u3059\u53ef\u80fd\u6027\u304c\u3042\u308a\u307e\u3059\u3002C++20 \u3067\u8ffd\u52a0\u3055\u308c\u308b std::midpoint() \u95a2\u6570\u3067\u306f\u3001\u6574\u6570\u306b\u5bfe\u3057\u3066

constexpr Integer midpoint(Integer a, Integer b) noexcept\n{\n    using U = make_unsigned_t<Integer>;\n    return a>b ? a-(U(a)-b)/2 : a+(U(b)-a)/2;\n}\n
\u306e\u3088\u3046\u306a\u5b9f\u88c5\u304c\u4f7f\u308f\u308c\u3001\u30aa\u30fc\u30d0\u30fc\u30d5\u30ed\u30fc\u3092\u56de\u907f\u3067\u304d\u307e\u3059\u3002(a + b) \u304c\u5947\u6570\u306b\u306a\u308b\u30b1\u30fc\u30b9\u306e\u7d50\u679c\u306f a \u306e\u65b9\u5411\u306b\u4e38\u3081\u3089\u308c\u307e\u3059\u3002 \u6d6e\u52d5\u5c0f\u6570\u70b9\u6570\u306b\u5bfe\u3057\u3066\u306f\u6b21\u306e\u3088\u3046\u306a\u5b9f\u88c5\u304c\u4f7f\u308f\u308c\u307e\u3059\u3002
Float midpoint(Float a, Float b)\n{\n    return isnormal(a) && isnormal(b) ? a/2+b/2 : (a+b)/2;\n}\n
#include <iostream>\n#include <numeric>\n\nint main()\n{\n    std::cout << (2'000'000'000 + 1'000'000'000) / 2 << '\\n'; // \u30aa\u30fc\u30d0\u30fc\u30d5\u30ed\u30fc\n\n    std::cout << std::midpoint(2'000'000'000, 1'000'000'000) << '\\n'; // 1500000000\n\n    std::cout << std::midpoint(1, 4) << '\\n'; // 2\n\n    std::cout << std::midpoint(4, 1) << '\\n'; // 3\n}\n

"},{"location":"standardization/cpp20/#2-stdlerp-p0811r3","title":"2 \u3064\u306e\u5024\u306e\u7dda\u5f62\u88dc\u9593\u3092\u8a08\u7b97\u3059\u308b std::lerp() \u95a2\u6570 (P0811R3)","text":"

2 \u70b9 a, b \u306e\u9593\u3092\u30d1\u30e9\u30e1\u30fc\u30bf t \u306b\u3088\u3063\u3066\u7dda\u5f62\u88dc\u9593\u3059\u308b\u95a2\u6570\u304c\u63d0\u4f9b\u3055\u308c\u307e\u3059\u3002\u8a08\u7b97\u7d50\u679c r \u306f a + t * (b - a) \u306b\u3088\u3063\u3066\u6c42\u3081\u3089\u308c\u307e\u3059\u304c\u3001\u5b9f\u88c5\u306b\u3088\u308a isfinite(a) && isfinite(b) \u306e\u3068\u304d

\u307e\u305f\u3001cmp(lerp(a,b,t2), lerp(a,b,t1)) * cmp(t2,t1) * cmp(b,a) >= 0 (cmp \u306f -1, 0, 1 \u3092\u8fd4\u3059\u4e09\u65b9\u6bd4\u8f03\u95a2\u6570\u3068\u3059\u308b) \u3067\u3042\u308b\u3053\u3068\u304c\u4fdd\u8a3c\u3055\u308c\u307e\u3059\u3002

#include <iostream>\n#include <numeric>\n\nint main()\n{\n    std::cout << std::lerp(0.0, 10.0, 0.0) << '\\n'; // 0\n\n    std::cout << std::lerp(0.0, 10.0, 0.3) << '\\n'; // 3\n\n    std::cout << std::lerp(0.0, 10.0, 1.0) << '\\n'; // 10\n\n    std::cout << std::lerp(0.0, 10.0, 1.2) << '\\n'; // 12\n}\n

"},{"location":"standardization/cpp20/#version-p0754r2","title":"\u5b9f\u88c5\u56fa\u6709\u306e\u60c5\u5831\u3092\u307e\u3068\u3081\u308b <version> \u30d8\u30c3\u30c0\u3092\u8ffd\u52a0 (P0754R2)","text":"

__cpp_lib_byte, __cpp_lib_void_t \u306e\u3088\u3046\u306a\u6a19\u6e96\u30e9\u30a4\u30d6\u30e9\u30ea\u306e\u6a5f\u80fd\u30c6\u30b9\u30c8\u30de\u30af\u30ed\u3001\u305d\u306e\u4ed6\u30e9\u30a4\u30d6\u30e9\u30ea\u306e\u30d0\u30fc\u30b8\u30e7\u30f3\u3084\u5b9f\u88c5\u56fa\u6709\u306e\u60c5\u5831\u3092\u307e\u3068\u3081\u308b\u76ee\u7684\u306e <version> \u30d8\u30c3\u30c0\u304c\u8ffd\u52a0\u3055\u308c\u307e\u3057\u305f\u3002 \u4f8b\u3048\u3070 C++20 \u4ee5\u524d\u306e MSVC \u306e\u6a19\u6e96\u30e9\u30a4\u30d6\u30e9\u30ea\u3067\u306f\u3001<yvals_core.h> \u3068\u3044\u3046\u72ec\u81ea\u30d8\u30c3\u30c0\u306b\u6a19\u6e96\u30e9\u30a4\u30d6\u30e9\u30ea\u306e\u6a5f\u80fd\u30c6\u30b9\u30c8\u30de\u30af\u30ed\u304c\u307e\u3068\u3081\u3089\u308c\u3066\u3044\u307e\u3057\u305f\u304c\u3001C++20 \u4ee5\u964d\u3067\u306f\u3042\u3089\u3086\u308b\u5b9f\u88c5\u306b\u304a\u3044\u3066\u3001<version> \u30d8\u30c3\u30c0\u3092\u898b\u308b\u3053\u3068\u3067\u3001\u3053\u3046\u3057\u305f\u5b9f\u88c5\u56fa\u6709\u306e\u60c5\u5831\u306b\u30a2\u30af\u30bb\u30b9\u3067\u304d\u308b\u305f\u3081\u5229\u4fbf\u6027\u304c\u9ad8\u307e\u308a\u307e\u3059\u3002

"},{"location":"standardization/cpp20/#is_nothrow_convertible-p0758r1","title":"\u4f8b\u5916\u3092\u6295\u3052\u306a\u3044\u6697\u9ed9\u306e\u5909\u63db\u304c\u53ef\u80fd\u304b\u8abf\u3079\u308b is_nothrow_convertible (P0758R1)","text":"

\u578b From \u304b\u3089\u578b To \u3078\u306e\u6697\u9ed9\u306e\u5909\u63db\u304c\u53ef\u80fd\u3067\u3042\u308b\u304b\u3092\u8abf\u3079\u308b\u578b\u7279\u6027\u30af\u30e9\u30b9 std::is_convertible<class From, class To> \u304c C++11 \u304b\u3089\u5c0e\u5165\u3055\u308c\u307e\u3057\u305f\u304c\u3001\u305d\u306e\u5909\u63db\u304c noexcept \u3067\u3082\u3042\u308b\u304b\u3092\u8abf\u3079\u3089\u308c\u308b\u30d0\u30fc\u30b8\u30e7\u30f3\u306f\u5b9f\u88c5\u3055\u308c\u3066\u3044\u307e\u305b\u3093\u3067\u3057\u305f\u3002 \u3053\u306e\u3053\u3068\u304c\u539f\u56e0\u3067\u3001std::decay_copy \u306e\u63d0\u6848 (N3255) \u306b\u304a\u3044\u3066\u3001\u9069\u5207\u306a noexcept \u4f8b\u5916\u4ed5\u69d8\u3092\u79fb\u690d\u6027\u306e\u3042\u308b\u65b9\u6cd5\u3067\u5b9a\u7fa9\u3067\u304d\u306a\u3044\u554f\u984c (LWG 2040) \u304c\u6307\u6458\u3055\u308c\u3066\u3044\u307e\u3057\u305f\u3002

template <class T> \ntypename decay<T>::type decay_copy(T&& v) noexcept(??? /* is_nothrow_convertible<T, T>::value */);\n
C++20 \u304b\u3089\u306f\u3001noexcept \u306a\u6697\u9ed9\u306e\u5909\u63db\u304c\u53ef\u80fd\u3067\u3042\u308b\u3053\u3068\u3092\u8abf\u3079\u308b\u65b0\u3057\u3044\u578b\u7279\u6027\u30af\u30e9\u30b9 std::is_nothrow_convertible<class From, class To> \u304c\u5b9f\u88c5\u3055\u308c\u308b\u3053\u3068\u3067\u554f\u984c\u3092\u89e3\u6d88\u3067\u304d\u307e\u3059\u3002 \u65e2\u5b58\u306e\u6a19\u6e96\u30e9\u30a4\u30d6\u30e9\u30ea\u95a2\u6570\u306b\u304a\u3044\u3066\u3082\u3001std::basic_string \u306e\u30e1\u30f3\u30d0\u95a2\u6570\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8\u306b\u3001\u3088\u308a\u9069\u5207\u306a noexcept \u4f8b\u5916\u4ed5\u69d8\u3092\u5b9a\u7fa9\u3059\u308b\u305f\u3081\u306b\u6d3b\u7528\u3055\u308c\u307e\u3059\u3002

template <class T>\nsize_type find(const T& t, size_type pos = 0) const noexcept(is_nothrow_convertible_v<const T&, basic_string_view<CharT, Traits>>);\n
"},{"location":"standardization/cpp20/#stdto_address-p0653r2","title":"\u30dd\u30a4\u30f3\u30bf\u30e9\u30a4\u30af\u306a\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u304b\u3089\u30a2\u30c9\u30ec\u30b9\u3092\u53d6\u5f97\u3059\u308b std::to_address() \u95a2\u6570 (P0653R2)","text":"

\u30dd\u30a4\u30f3\u30bf\u30e9\u30a4\u30af\u306a\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u3092\u5f15\u6570\u306b\u3068\u308a\u3001\u305d\u308c\u304c\u8868\u3059\u306e\u3068\u540c\u3058\u30a2\u30c9\u30ec\u30b9\u3092\u751f\u30dd\u30a4\u30f3\u30bf\u3067\u8fd4\u3059\u95a2\u6570 std::to_address(p) \u304c\u8ffd\u52a0\u3055\u308c\u307e\u3059\u3002\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u304c\u30dd\u30a4\u30f3\u30bf\u578b\u306e\u5834\u5408\u306f\u305d\u306e\u5024\u3092\u8fd4\u3057\u3001\u305d\u308c\u4ee5\u5916\u306e\u5834\u5408\u3001std::pointer_traits<Ptr>::to_address(p) \u306e\u7279\u6b8a\u5316\u304c\u5b9a\u7fa9\u3055\u308c\u3066\u3044\u3066\u4f7f\u3048\u308c\u3070\u305d\u306e\u623b\u308a\u5024\u3092\u3001\u305d\u3046\u3067\u306a\u3044\u5834\u5408\u306f std::to_address(p.operator->()) \u306e\u623b\u308a\u5024\u3092\u8fd4\u3057\u307e\u3059\u3002

"},{"location":"standardization/cpp20/#complex-constexpr-p0415r1","title":"<complex> \u30d8\u30c3\u30c0\u306e\u95a2\u6570\u306e constexpr \u5bfe\u5fdc\u3092\u5f37\u5316 (P0415R1)","text":"

<complex> \u30d8\u30c3\u30c0\u304c\u63d0\u4f9b\u3059\u308b\u95a2\u6570\u306e\u3046\u3061\u3001\u8907\u7d20\u6570\u306e\u56db\u5247\u6f14\u7b97\u3001\u30ce\u30eb\u30e0\u306e\u53d6\u5f97\u3001\u5171\u5f79\u8907\u7d20\u6570\u306e\u53d6\u5f97\u306a\u3069\u3001constexpr \u975e\u5bfe\u5fdc\u306e\u6570\u5b66\u95a2\u6570 (sqrt \u306a\u3069) \u3092\u4f7f\u308f\u305a\u306b\u5b9f\u88c5\u3067\u304d\u308b\u3082\u306e\u304c constexpr \u5316\u3055\u308c\u307e\u3059\u3002

"},{"location":"standardization/cpp20/#stdis_constant_evaluated-p0595r2","title":"\u30b3\u30f3\u30d1\u30a4\u30eb\u6642\u8a55\u4fa1\u306e\u6587\u8108\u304b\u5b9f\u884c\u6642\u8a55\u4fa1\u306e\u6587\u8108\u304b\u3092\u5224\u5225\u3067\u304d\u308b std::is_constant_evaluated() \u95a2\u6570 (P0595R2)","text":"

C++17 \u307e\u3067\u306f\u3001\u5b9f\u884c\u3059\u308b\u30b3\u30fc\u30c9\u3092\u3001\u30b3\u30f3\u30d1\u30a4\u30eb\u6642\u8a55\u4fa1\u304b\u5b9f\u884c\u6642\u8a55\u4fa1\u304b\u306b\u5fdc\u3058\u3066\u4f7f\u3044\u5206\u3051\u308b\u65b9\u6cd5\u306f\u3042\u308a\u307e\u305b\u3093\u3067\u3057\u305f\u3002C++20 \u3067\u306f\u3001\u30b3\u30f3\u30d1\u30a4\u30eb\u6642\u8a55\u4fa1\u3055\u308c\u3066\u3044\u308b\u6587\u8108\u3067\u306f true \u3092\u3001\u305d\u308c\u4ee5\u5916\u306e\u5834\u5408\u3067\u306f false \u3092\u8fd4\u3059 std::is_constant_evaluated() \u95a2\u6570\u304c <type_traits> \u30d8\u30c3\u30c0\u306b\u8ffd\u52a0\u3055\u308c\u307e\u3059\u3002\u4f8b\u3048\u3070\u6a19\u6e96\u30e9\u30a4\u30d6\u30e9\u30ea\u3067 constexpr \u5bfe\u5fdc\u3057\u3066\u3044\u306a\u3044\u3088\u3046\u306a\u6570\u5b66\u95a2\u6570\u3092\u63d0\u4f9b\u3059\u308b\u969b\u3001\u30b3\u30f3\u30d1\u30a4\u30eb\u6642\u8a55\u4fa1\u3067\u306f constexpr \u7248\u306e\u5b9f\u88c5\u3092\u3001\u5b9f\u884c\u6642\u306b\u306f\u975e constexpr \u306e\u6a19\u6e96\u30e9\u30a4\u30d6\u30e9\u30ea\u306e\u5b9f\u88c5\u3092\u63d0\u4f9b\u3059\u308b\u3088\u3046\u9078\u629e\u3055\u305b\u308b\u3053\u3068\u304c\u3067\u304d\u307e\u3059\u3002\u306a\u304a\u3001std::is_constant_evaluated() \u3092 if constexpr \u306e ( ) \u5185\u3084 static_assert \u5185\u3067\u4f7f\u3046\u3068\u5e38\u306b true \u306b\u8a55\u4fa1\u3055\u308c\u3066\u3057\u307e\u3046\u306e\u3067\u6ce8\u610f\u304c\u5fc5\u8981\u3067\u3059\u3002\u57fa\u672c\u7684\u306b\u306f if (std::is_constant_evaluated()) \u3068\u66f8\u304d\u307e\u3059\u3002

#include <cmath>\n#include <type_traits>\n#include <iostream>\n#include <iomanip>\n\nconstexpr float Sin_impl(float x2, int i, int k, float xn, long long nf)\n{\n    return (i > 10) ? 0.0f : (k * xn / nf + Sin_impl(x2, i + 2, -k, xn * x2, nf * (i + 1) * (i + 2)));\n}\n\nconstexpr float Sin(float x)\n{\n    if (std::is_constant_evaluated())\n    {\n        return Sin_impl(x * x, 1, 1, x, 1);\n    }\n    else\n    {\n        return std::sin(x);\n    }\n}\n\nint main()\n{\n    constexpr float Pi = 3.14159265f;\n    constexpr float theta = Pi / 4.0;\n\n    constexpr float x1 = Sin(theta); // \u30b3\u30f3\u30d1\u30a4\u30eb\u6642\u8a08\u7b97    \n    float x2 = Sin(theta);  // \u5b9f\u884c\u6642\u8a08\u7b97\n\n    std::cout << std::setprecision(16);\n    std::cout << x1 << '\\n';\n    std::cout << x2 << '\\n';\n}\n
0.7071068286895752\n0.7071067690849304\n

"},{"location":"standardization/cpp20/#p0020r6","title":"\u6d6e\u52d5\u5c0f\u6570\u70b9\u6570\u578b\u306e\u30a2\u30c8\u30df\u30c3\u30af\u64cd\u4f5c\u3092\u62e1\u5f35 (P0020R6)","text":"

std::atomic<T> \u306e float, double, long double \u578b\u306e\u7279\u6b8a\u5316\u306b\u3001\u30e1\u30f3\u30d0\u95a2\u6570 fetch_add(), fetch_sub(), operator+=(), operator-=() \u304c\u8ffd\u52a0\u3055\u308c\u307e\u3059\u3002

"},{"location":"standardization/cpp20/#stdmemory_order-enum-class-p0439r0","title":"std::memory_order \u3092 enum class \u306b\u5909\u66f4 (P0439R0)","text":"

C++17 \u307e\u3067 enum \u3067\u5b9a\u7fa9\u3055\u308c\u3066\u3044\u305f std::memory_order \u3092\u3001\u30e2\u30c0\u30f3\u306a C++ \u6587\u6cd5\u3068\u578b\u5b89\u5168\u306e\u305f\u3081\u306b\u3001enum class \u3067\u5b9a\u7fa9\u3059\u308b\u4ed5\u69d8\u306b\u5909\u66f4\u3055\u308c\u307e\u3059\u3002\u3053\u308c\u307e\u3067\u306e\u8868\u8a18\u306f\u5b9a\u6570\u3067\u63d0\u4f9b\u3055\u308c\u308b\u3088\u3046\u306b\u306a\u308b\u305f\u3081\u3001\u65e2\u5b58\u306e\u30bd\u30fc\u30b9\u30b3\u30fc\u30c9\u306f\u5f71\u97ff\u3092\u53d7\u3051\u307e\u305b\u3093\u3002\u307e\u305f\u3001\u30d0\u30a4\u30ca\u30ea\u4e92\u63db\u6027\u306e\u305f\u3081\u306b\u3001enum class \u306e\u57fa\u5e95\u578b\u306e\u9078\u629e\u306f\u5b9f\u88c5\u306b\u4efb\u305b\u3089\u308c\u3066\u3044\u307e\u3059\u3002

C++17C++20
namespace std\n{\n    typedef enum memory_order\n    {\n        memory_order_relaxed,\n        memory_order_consume,\n        memory_order_acquire,\n        memory_order_release,\n        memory_order_acq_rel,\n        memory_order_seq_cst\n    } memory_order;\n}\n
namespace std\n{\n    enum class memory_order /* : unspecified */\n    {\n        relaxed,\n        consume,\n        acquire,\n        release,\n        acq_rel,\n        seq_cst\n    };\n\n    inline constexpr memory_order memory_order_relaxed = memory_order::relaxed;\n    inline constexpr memory_order memory_order_consume = memory_order::consume;\n    inline constexpr memory_order memory_order_acquire = memory_order::acquire;\n    inline constexpr memory_order memory_order_release = memory_order::release;\n    inline constexpr memory_order memory_order_acq_rel = memory_order::acq_rel;\n    inline constexpr memory_order memory_order_seq_cst = memory_order::seq_cst;\n}\n
"},{"location":"standardization/cpp20/#hash-p0809r0","title":"Hash \u304c\u540c\u4e00\u306e\u6319\u52d5\u3092\u3057\u306a\u3044\u975e\u9806\u5e8f\u9023\u60f3\u30b3\u30f3\u30c6\u30ca\u3069\u3046\u3057\u306e\u6bd4\u8f03\u304c\u53ef\u80fd\u306b (P0809R0)","text":"

C++17 \u307e\u3067\u306f\u3001\u975e\u9806\u5e8f\u9023\u60f3\u30b3\u30f3\u30c6\u30ca\u306e operator==, operator!= \u306b\u3064\u3044\u3066\u3001\u300c\u4e21\u8005\u306e Hash \u3068 Pred \u304c\u305d\u308c\u305e\u308c\u540c\u4e00\u306e\u6319\u52d5\u3092\u3057\u306a\u3044\u5834\u5408\u306f\u672a\u5b9a\u7fa9\u52d5\u4f5c\u300d\u3068\u898f\u683c\u306b\u8a18\u3055\u308c\u3066\u3044\u307e\u3057\u305f\u3002\u3057\u304b\u3057\u3001\u30e9\u30f3\u30c0\u30e0\u306a\u30bd\u30eb\u30c8\u3092\u4f7f\u3046\u30cf\u30c3\u30b7\u30e5\u95a2\u6570\u3092\u6301\u3064\u30b3\u30f3\u30c6\u30ca\u540c\u58eb\u306e\u6bd4\u8f03\u3082\u30e6\u30fc\u30b9\u30b1\u30fc\u30b9\u3068\u3057\u3066\u60f3\u5b9a\u3055\u308c\u3001\u307e\u305f\u3001\u5bfe\u5fdc\u3059\u308b\u305f\u3081\u306e\u5b9f\u88c5\u3082\u96e3\u3057\u304f\u306a\u304b\u3063\u305f\u3053\u3068\u304b\u3089\u3001C++20 \u304b\u3089\u306f\u3053\u306e\u3046\u3061 Hash \u306b\u95a2\u3059\u308b\u8a18\u8ff0\u304c\u524a\u9664\u3055\u308c\u307e\u3057\u305f\u3002

#include <iostream>\n#include <unordered_map>\n#include <random>\n#include <string>\n\ntemplate <class Type>\nstruct RandomizedHash\n{\n    size_t rnd;\n\n    RandomizedHash()\n    {\n        std::random_device rd;\n        rnd = std::uniform_int_distribution<size_t>{}(rd);\n    }\n\n    size_t operator()(const Type& s) const\n    {\n        return (std::hash<Type>{}(s) ^ rnd);\n    }\n};\n\nint main()\n{\n    std::unordered_map<std::string, int, RandomizedHash<std::string>> u1 =\n    {\n        { \"One\", 1 }, { \"Two\", 2 }, { \"Three\", 3 },\n    };\n\n    std::unordered_map<std::string, int, RandomizedHash<std::string>> u2 =\n    {\n        { \"One\", 1 }, { \"Two\", 2 }, { \"Three\", 3 },\n    };\n\n    // \u305d\u308c\u305e\u308c\u7570\u306a\u308b\u30cf\u30c3\u30b7\u30e5\u5024\u3092\u8fd4\u3059\n    const std::string s = \"abcde\";\n    std::cout << \"u1: \" << u1.hash_function()(s) << '\\n';\n    std::cout << \"u2: \" << u2.hash_function()(s) << '\\n';\n\n    std::cout << std::boolalpha;\n\n    // C++17 \u307e\u3067\u306f\u672a\u5b9a\u7fa9\u52d5\u4f5c\u3001C++20 \u304b\u3089 OK\n    std::cout << (u1 == u2) << '\\n';\n}\n
"},{"location":"standardization/cpp20/#p0463r1","title":"\u5b9f\u884c\u74b0\u5883\u306e\u30a8\u30f3\u30c7\u30a3\u30a2\u30f3\u3092\u5224\u5225\u3059\u308b\u305f\u3081\u306e\u5217\u6319\u5b9a\u6570\u3092\u8ffd\u52a0 (P0463R1)","text":"

\u3053\u308c\u307e\u3067\u306e C++ \u30d7\u30ed\u30b0\u30e9\u30e0\u3067\u306f\u3001\u30bf\u30fc\u30b2\u30c3\u30c8\u30a2\u30fc\u30ad\u30c6\u30af\u30c1\u30e3\u306e\u30d0\u30a4\u30c8\u30aa\u30fc\u30c0\u3092\u5224\u5225\u3059\u308b\u969b\u306b\u30c8\u30ea\u30c3\u30ad\u30fc\u306a\u30b3\u30fc\u30c9\u3092\u66f8\u304f\u5fc5\u8981\u304c\u3042\u308a\u307e\u3057\u305f\u3002C++20 \u304b\u3089\u306f\u3001\u30ea\u30c8\u30eb\u30a8\u30f3\u30c7\u30a3\u30a2\u30f3\u3092\u8868\u3059 endian::little, \u30d3\u30c3\u30b0\u30a8\u30f3\u30c7\u30a3\u30a2\u30f3\u3092\u8868\u3059 endian::big, \u5b9f\u884c\u74b0\u5883\u306e\u30a8\u30f3\u30c7\u30a3\u30a2\u30f3\u3092\u8868\u3059 endian::native \u306e 3 \u3064\u306e endian \u578b\u306e\u5217\u6319\u5b9a\u6570\uff08\u5024\u306f\u5b9f\u88c5\u306b\u4f9d\u5b58\uff09\u304c <type_traits> \u306b\u5b9a\u7fa9\u3055\u308c\u3001endian::native \u3092\u305d\u308c\u4ee5\u5916\u306e\u5024\u3068\u6bd4\u8f03\u3059\u308b\u3053\u3068\u3067\u3001\u5b9f\u884c\u74b0\u5883\u306e\u30d0\u30a4\u30c8\u30aa\u30fc\u30c0\u3092\u5224\u5225\u3067\u304d\u308b\u3088\u3046\u306b\u306a\u308a\u307e\u3059\u3002\u73fe\u5728\u306e C++ \u30b3\u30f3\u30d1\u30a4\u30e9\u3067\u3001\u30ea\u30c8\u30eb\u30a8\u30f3\u30c7\u30a3\u30a2\u30f3\u3067\u3082\u30d3\u30c3\u30b0\u30a8\u30f3\u30c7\u30a3\u30a2\u30f3\u3067\u3082\u306a\u3044\u30df\u30c9\u30eb\u30a8\u30f3\u30c7\u30a3\u30a2\u30f3\uff08PDP \u30a8\u30f3\u30c7\u30a3\u30a2\u30f3\u306a\u3069\uff09\u3092\u30b5\u30dd\u30fc\u30c8\u3057\u3066\u3044\u308b\u3082\u306e\u306f\u3042\u308a\u307e\u305b\u3093\u304c\u3001\u30df\u30c9\u30eb\u30a8\u30f3\u30c7\u30a3\u30a2\u30f3\u306e\u74b0\u5883\u306b\u304a\u3044\u3066\u306f\u3001endian::native \u306f endian::big \u3067\u3082 endian::little \u3067\u3082\u306a\u3044\u5024\u3092\u6301\u3064\u3053\u3068\u306b\u306a\u3063\u3066\u3044\u307e\u3059\u3002

#include <iostream>\n#include <type_traits>\n\nint main()\n{\n    if constexpr (std::endian::native == std::endian::little)\n    {\n        std::cout << \"Little-endian\\n\";\n    }\n    else if constexpr (std::endian::native == std::endian::big)\n    {\n        std::cout << \"Big-endian\\n\";\n    }\n    else\n    {\n        std::cout << \"Middle-endian\\n\";\n    }\n}\n
"},{"location":"standardization/cpp20/#cv-stdremove_cvref-trait-p0550r2","title":"\u578b\u304b\u3089 cv \u4fee\u98fe\u3068\u53c2\u7167\u3092\u9664\u53bb\u3059\u308b std::remove_cvref trait (P0550R2)","text":"

\u578b\u304b\u3089 const \u3084 volatile \u306e\u4fee\u98fe\u304a\u3088\u3073\u53c2\u7167\u3092\u9664\u53bb\u3057\u305f\u3044\u3060\u3051\u3067\u3001\u914d\u5217\u304b\u3089\u30dd\u30a4\u30f3\u30bf\u3001\u95a2\u6570\u578b\u304b\u3089\u95a2\u6570\u30dd\u30a4\u30f3\u30bf\u3078\u306e\u5909\u63db\u306b\u3064\u3044\u3066\u306f\u4e0d\u8981\u3067\u3042\u3063\u3066\u3082\u3001C++17 \u3067\u306f std::remove_cv_t<std::remove_reference_t<T>> \u3068\u66f8\u304f\u3068\u9577\u304f\u306a\u308b\u305f\u3081 std::decay \u3092\u4f7f\u3046\u3068\u3044\u3046\u30b1\u30fc\u30b9\u304c\u3088\u304f\u3042\u308a\u307e\u3057\u305f\u3002C++20 \u304b\u3089\u306f std::remove_cv_t<std::remove_reference_t<T>> \u3068\u540c\u3058\u52b9\u679c\u3092\u6301\u3064 std::remove_cvref trait \u3068\u3001\u305d\u306e\u30d8\u30eb\u30d1\u30fc\u578b std::remove_cvref_t \u304c\u8ffd\u52a0\u3055\u308c\u3001\u77ed\u304f\u66f8\u3051\u308b\u3088\u3046\u306b\u306a\u308a\u307e\u3059\u3002std::remove_reference_t<std::remove_cv_t<T>> \u306e\u3088\u3046\u306a\u9806\u756a\u306e\u9593\u9055\u3044\u3092\u9632\u3050\u3053\u3068\u306b\u3082\u3064\u306a\u304c\u308a\u307e\u3059\u3002

"},{"location":"standardization/cpp20/#stddecay-p0777r1","title":"\u6a19\u6e96\u30e9\u30a4\u30d6\u30e9\u30ea\u3067\u306e\u4e0d\u5fc5\u8981\u306a std::decay \u306e\u4f7f\u7528\u3092\u56de\u907f (P0777R1)","text":"

C++17 \u306e\u6a19\u6e96\u30e9\u30a4\u30d6\u30e9\u30ea\u306e\u898f\u683c\u3067\u306f std::decay_t \u304c\u304a\u3088\u305d 40 \u7b87\u6240\u3067\u4f7f\u308f\u308c\u3066\u3044\u307e\u3057\u305f\u304c\u3001\u305d\u306e\u3046\u3061 cv \u4fee\u98fe\u306e\u9664\u53bb\u3084\u53c2\u7167\u306e\u9664\u53bb\u3060\u3051\u3067\u5341\u5206\u306a\u7b87\u6240\u306b\u3064\u3044\u3066\u3001\u5b9f\u88c5\u306e\u610f\u56f3\u3092\u3088\u308a\u660e\u78ba\u306b\u3059\u308b\u305f\u3081 std::remove_reference_t \u3084\u3001C++20 \u304b\u3089\u5c0e\u5165\u3055\u308c\u308b std::remove_cvref_t \u306b\u7f6e\u304d\u63db\u3048\u3089\u308c\u307e\u3059\u3002\u5177\u4f53\u7684\u306b\u306f\u3001std::apply \u3084\u3001std::optional, std::variant \u306e\u4e00\u90e8\u306e\u30e1\u30f3\u30d0\u95a2\u6570\u306a\u3069\u3067\u7f6e\u304d\u63db\u3048\u304c\u767a\u751f\u3057\u307e\u3059\u3002

"},{"location":"standardization/cpp20/#numbers-p0631r8","title":"\u6570\u5b66\u5b9a\u6570\u3092\u63d0\u4f9b\u3059\u308b <numbers> \u30d8\u30c3\u30c0 (P0631R8)","text":"

\u3053\u308c\u307e\u3067 C++ \u306e\u6a19\u6e96\u30e9\u30a4\u30d6\u30e9\u30ea\u306b\u306f\u6570\u5b66\u5b9a\u6570\u304c\u7528\u610f\u3055\u308c\u3066\u3044\u307e\u305b\u3093\u3067\u3057\u305f\uff08M_PI \u306a\u3069\u306f\u62e1\u5f35\uff09\u3002C++20 \u304b\u3089\u306f\u6570\u5b66\u5b9a\u6570\u3092\u307e\u3068\u3081\u305f <numbers> \u30d8\u30c3\u30c0\u304c\u8ffd\u52a0\u3055\u308c\u300113 \u7a2e\u985e\u306e\u6570\u5b66\u5b9a\u6570\u306e\u5909\u6570\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8\u5ba3\u8a00\u3068\u3001\u305d\u308c\u3089\u306e double \u578b\u3078\u306e\u7279\u6b8a\u5316\u306e\u5b9a\u7fa9\u304c\u63d0\u4f9b\u3055\u308c\u307e\u3059\u3002 \u5909\u6570\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8\u306f\u3001\u6a19\u6e96\u30e9\u30a4\u30d6\u30e9\u30ea\u30b3\u30f3\u30bb\u30d7\u30c8 floating_point \u3092\u4f7f\u3063\u3066\u3001std::numbers \u540d\u524d\u7a7a\u9593\u306b\u6b21\u306e\u3088\u3046\u306b\u5ba3\u8a00\u3055\u308c\u307e\u3059\u3002

template <floating_point T>\ninline constexpr T pi_v<T> = 3.141592653589793238462643383279502884L;\n
\u5408\u308f\u305b\u3066 double \u578b\u3078\u306e\u7279\u6b8a\u5316\u306e\u5b9a\u7fa9\u304c\u6b21\u306e\u3088\u3046\u306a\u5b9f\u88c5\u3067\u63d0\u4f9b\u3055\u308c\u307e\u3059\u3002
inline constexpr double pi = pi_v<double>;\n
C++20 \u3067\u8ffd\u52a0\u3055\u308c\u308b\u6570\u5b66\u5b9a\u6570\u306e\u4e00\u89a7\u306f\u6b21\u306e\u3068\u304a\u308a\u3067\u3059\u3002

\u5b9a\u6570\u540d \u8aac\u660e binary128 \u306b\u5145\u5206\u306a\u7cbe\u5ea6\u3092\u6301\u3064\u5024 e_v e 2.718281828459045235360287471352662498L log2e_v 2 \u3092\u5e95\u3068\u3059\u308b e \u306e\u5bfe\u6570 1.442695040888963407359924681001892137L log10e_v 10 \u3092\u5e95\u3068\u3059\u308b e \u306e\u5bfe\u6570 0.434294481903251827651128918916605082L pi_v \u5186\u5468\u7387 (\u03c0) 3.141592653589793238462643383279502884L inv_pi_v 1/\u03c0 0.318309886183790671537767526745028724L inv_sqrtpi_v 1/\u221a\u03c0 0.564189583547756286948079451560772586L ln2_v 2 \u306e\u81ea\u7136\u5bfe\u6570 0.693147180559945309417232121458176568L ln10_v 10 \u306e\u81ea\u7136\u5bfe\u6570 2.302585092994045684017991454684364208L sqrt2_v \u221a2 1.414213562373095048801688724209698078L sqrt3_v \u221a3 1.732050807568877293527446341505872366L inv_sqrt3_v 1/\u221a3 0.577350269189625764509148780501957456L egamma_v \u30aa\u30a4\u30e9\u30fc\u306e\u5b9a\u6570 0.577215664901532860606512090082402431L phi_v \u9ec4\u91d1\u6570 (\u03c6) 1.618033988749894848204586834365638117L

\u30b3\u30fc\u30c9\u3067\u4f7f\u7528\u3059\u308b\u969b\u306f\u3001using \u5ba3\u8a00\u306b\u3088\u3063\u3066\u8a18\u8ff0\u3092\u77ed\u304f\u3067\u304d\u307e\u3059\u3002

#include <iostream>\n#include <numbers>\n\nint main()\n{\n    using std::numbers::pi;\n    using std::numbers::pi_v;\n\n    std::cout << 2.0 * pi  << '\\n';\n    std::cout << pi_v<float> << '\\n';\n}\n
"},{"location":"standardization/cpp20/#basic_stringreserve-capacity-p0966r1","title":"basic_string::reserve() \u304c capacity \u3092\u7e2e\u5c0f\u3057\u306a\u3044\u3088\u3046\u306b (P0966R1)","text":"

C++17 \u3067\u306f\u3001std::basic_string::reserve(size_type) \u306b\u73fe\u5728\u306e capacity() \u3088\u308a\u3082\u5c0f\u3055\u3044\u5024\u304c\u6e21\u3055\u308c\u305f\u969b\u3001shrink-to-fit \u3092\u5b9f\u884c\u3059\u308b\u3053\u3068\u304c\u8a31\u53ef\u3055\u308c\u3066\u3044\u305f\u305f\u3081\u3001\u6ce8\u610f\u6df1\u304f\u4f7f\u308f\u306a\u3044\u3068\u30e1\u30e2\u30ea\u306e\u518d\u914d\u7f6e\u3092\u983b\u7e41\u306b\u5f15\u304d\u8d77\u3053\u3057\u3001\u5b9f\u884c\u6642\u6027\u80fd\u3092\u4f4e\u4e0b\u3055\u305b\u308b\u3053\u3068\u304c\u3042\u308a\u307e\u3057\u305f\u3002\u307e\u305f\u3001\u30c7\u30d5\u30a9\u30eb\u30c8\u5f15\u6570\u3068\u3057\u3066 0 \u304c\u5b9a\u7fa9\u3055\u308c\u3066\u304a\u308a\u3001s.reserve() \u3068 s.shrink_to_fit() \u3067\u6a5f\u80fd\u304c\u91cd\u8907\u3059\u308b\u3068\u3044\u3046\u554f\u984c\u3084\u3001shrink-to-fit \u3092\u5b9f\u884c\u305b\u305a\u30c7\u30d5\u30a9\u30eb\u30c8\u5f15\u6570\u3082\u7121\u3044 std::vector::reserve(size_type) \u3068\u306e\u4e00\u8cab\u6027\u304c\u306a\u3044\u3068\u3044\u3046\u554f\u984c\u304c\u3042\u308a\u307e\u3057\u305f\u3002C++20 \u304b\u3089\u306e\u65b0\u3057\u3044\u4ed5\u69d8\u3067\u306f std::vector \u5074\u306b\u5408\u308f\u305b\u3001std::basic_string::reserve(size_type) \u306b\u73fe\u5728\u306e capacity() \u3088\u308a\u3082\u5c0f\u3055\u3044\u5024\u304c\u6e21\u3055\u308c\u305f\u969b\u306b\u306f\u4f55\u3082\u3057\u306a\u3044\u3053\u3068\u304c\u4fdd\u8a3c\u3055\u308c\u3001\u30c7\u30d5\u30a9\u30eb\u30c8\u5f15\u6570\u3082\u5ec3\u6b62\uff08\u4e92\u63db\u6027\u306e\u305f\u3081\u306b deprecated \u6307\u5b9a\u306e std::basic_string:reserve(void) \u30aa\u30fc\u30d0\u30fc\u30ed\u30fc\u30c9\u304c\u8ffd\u52a0\uff09\u3068\u306a\u308a\u3001\u3053\u308c\u3089\u306e\u554f\u984c\u304c\u89e3\u6c7a\u3055\u308c\u307e\u3059\u3002

"},{"location":"standardization/cpp20/#contains-p0458r2","title":"\u9023\u60f3\u30b3\u30f3\u30c6\u30ca\u306b contains() \u30e1\u30f3\u30d0\u95a2\u6570\u3092\u8ffd\u52a0 (P0458R2)","text":"

\u3042\u308b\u8981\u7d20\u304c\u9023\u60f3\u30b3\u30f3\u30c6\u30ca\u306b\u542b\u307e\u308c\u3066\u3044\u308b\u304b\u8abf\u3079\u308b\u305f\u3081\u306e C++17 \u307e\u3067\u306e\u30a4\u30c7\u30a3\u30aa\u30e0\u306f\u3001\u76f4\u611f\u7684\u3067\u306a\u304f\u521d\u5fc3\u8005\u306b\u3068\u3063\u3066\u3082\u660e\u5feb\u3067\u306f\u3042\u308a\u307e\u305b\u3093\u3067\u3057\u305f\u3002C++20 \u304b\u3089\u306f\u3001\u8981\u7d20\u306e\u5b58\u5728\u3092\u30c1\u30a7\u30c3\u30af\u3059\u308b contains(key) \u30e1\u30f3\u30d0\u95a2\u6570\u304c std::map, std::multimap, std::set, std::multiset, std::unordered_map, std::unordered_multimap, std::unordered_set, std::unordered_multiset \u306b\u8ffd\u52a0\u3055\u308c\u307e\u3059\u3002

C++17C++20
#include <iostream>\n#include <unordered_map>\n\nint main()\n{\n    const std::unordered_map<int, std::string> table =\n    {\n        { 200, \"OK\" }, { 201, \"Created\" }, { 202, \"Accepted\" }\n    };\n\n    if (table.find(200) != table.end())\n    {\n        std::cout << \"key exists\\n\";\n    }\n}\n
#include <iostream>\n#include <unordered_map>\n\nint main()\n{\n    const std::unordered_map<int, std::string> table =\n    {\n        { 200, \"OK\" }, { 201, \"Created\" }, { 202, \"Accepted\" }\n    };\n\n    if (table.contains(200))\n    {\n        std::cout << \"key exists\\n\";\n    }\n}\n
"},{"location":"standardization/cpp20/#stderase-stderase_if-p1209r0","title":"\u30b3\u30f3\u30c6\u30ca\u304b\u3089\u6307\u5b9a\u3057\u305f\u8981\u7d20\u3092\u524a\u9664\u3059\u308b\u64cd\u4f5c\u306b\u4e00\u8cab\u3057\u3066\u4f7f\u3048\u308b std::erase(), std::erase_if() \u95a2\u6570 (P1209R0)","text":"

\u30b3\u30f3\u30c6\u30ca\u304b\u3089\u7279\u5b9a\u306e\u8981\u7d20\u3092\u524a\u9664\u3059\u308b\u3068\u3044\u3046\u51e6\u7406\u306f\u3001\u30b3\u30f3\u30c6\u30ca\u306e\u7a2e\u985e\u306b\u3088\u3063\u3066\u6700\u9069\u306a\u66f8\u304d\u65b9\u304c\u7570\u306a\u308a\u307e\u3059\u3002std::unordered_map \u3067\u306f\u30a4\u30c6\u30ec\u30fc\u30bf\u3092\u4f7f\u3063\u3066\u5148\u982d\u304b\u3089\u8981\u7d20\u3092\u524a\u9664\u3057\u3066\u3044\u304d\u3001std::list \u3067\u306f\u30e1\u30f3\u30d0\u95a2\u6570\u306e remove() \u3084 remove_if() \u3092\u4f7f\u3044\u3001std::vector \u3067\u306f std::remove_if() \u3068 erase() \u30e1\u30f3\u30d0\u95a2\u6570\u3092\u7d44\u307f\u5408\u308f\u305b\u307e\u3059\u3002\u3053\u306e\u3088\u3046\u306b\u30b3\u30f3\u30c6\u30ca\u306e\u7279\u6027\u306b\u5fdc\u3058\u3066\u30b3\u30fc\u30c9\u3092\u66f8\u304d\u5206\u3051\u308b\u306e\u306f\u5927\u5909\u3060\u3063\u305f\u305f\u3081\u3001C++20 \u3067\u306f\u3059\u3079\u3066\u306e\u30b3\u30f3\u30c6\u30ca\u5411\u3051\u306b\u9069\u5207\u306a\u5b9f\u88c5\u3092\u63d0\u4f9b\u3059\u308b\u3001\u4e00\u8cab\u3057\u3066\u4f7f\u3048\u308b\u975e\u30e1\u30f3\u30d0\u95a2\u6570 std::erase(), std::erase_if() \u304c\u8ffd\u52a0\u3055\u308c\u307e\u3059\u3002

#include <iostream>\n#include <vector>\n#include <list>\n#include <unordered_map>\n#include <string>\n\nint main()\n{\n    std::vector v = { 3, 14, 1, 5, 92 };\n    std::list li = { 3, 14, 1, 5, 92 };\n    std::unordered_map<std::string, int> m = {\n        { \"aa\", 3 }, { \"bb\", 14 }, { \"cc\", 1 }, { \"dd\", 5 }, { \"ee\", 92 } };\n\n    std::erase(v, 3);\n    std::erase(li, 3);\n    std::erase_if(m, [](const auto& p) { return p.second == 3; });\n\n    std::erase_if(v, [](auto n) { return n < 10; });\n    std::erase_if(li, [](auto n) { return n < 10; });\n    std::erase_if(m, [](const auto& p) { return p.second < 10; });\n}\n
"},{"location":"standardization/cpp20/#stdbit_cast-p0476r2","title":"\u30d0\u30a4\u30c8\u5217\u306e\u518d\u89e3\u91c8\u30ad\u30e3\u30b9\u30c8\u3092\u88dc\u52a9\u3059\u308b std::bit_cast() \u95a2\u6570 (P0476R2)","text":"

\u3042\u308b\u578b\u306e\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u304c\u683c\u7d0d\u3055\u308c\u3066\u3044\u308b\u30d0\u30a4\u30c8\u5217\u306b\u5bfe\u3057\u3066\u3001\u5225\u306e\u578b\u306e\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u3068\u89e3\u91c8\u3057\u3066\u30a2\u30af\u30bb\u30b9\u3059\u308b\u3053\u3068 (type punning) \u306f C++ \u3067\u306f\u7981\u6b62\u3055\u308c\u3066\u3044\u307e\u3059 (strict aliasing rule). float \u578b\u306e\u5024\u306e\u30d0\u30a4\u30c8\u5217\u3092 std::uint32_t \u578b\u3068\u3057\u3066\u6271\u3046\u3068\u304d\u306e\u9593\u9055\u3063\u305f\u65b9\u6cd5\u3068\u3057\u3066\u3001\u6b21\u306e\u30b5\u30f3\u30d7\u30eb\u306e\u3088\u3046\u306b reinterpret_cast \u3084 union \u3092\u7528\u3044\u308b\u4f8b\u304c\u3042\u308a\u307e\u3059\u3002\u3053\u308c\u306f\u76f4\u611f\u7684\u306b\u898b\u3048\u3001\u5b9f\u969b\u307b\u3068\u3093\u3069\u306e\u30b3\u30f3\u30d1\u30a4\u30e9\u3067\u671f\u5f85\u901a\u308a\u52d5\u4f5c\u3057\u307e\u3059\u304c\u3001\u898f\u683c\u4e0a\u306f\u672a\u5b9a\u7fa9\u52d5\u4f5c\u3068\u306a\u308b\u4e0d\u6b63\u306a\u30b3\u30fc\u30c9\u3067\u3059\u3002\u6b63\u3057\u304f\u306f std::memcpy() \u3092\u4f7f\u3044\u307e\u3059\u3002

#include <cstdint>\n#include <cstring>\n#include <iostream>\n\nunion FloatUint32\n{\n    float f;\n    std::uint32_t u;\n};\n\nint main()\n{\n    constexpr float f = 0.5f;\n\n    // \u672a\u5b9a\u7fa9\u52d5\u4f5c\n    const std::uint32_t u1 = *reinterpret_cast<const std::uint32_t*>(&f);\n\n    // \u672a\u5b9a\u7fa9\u52d5\u4f5c\n    const std::uint32_t u2 = FloatUint32{ f }.u;\n\n    // OK\n    std::uint32_t u3;\n    std::memcpy(&u3, &f, sizeof(f));\n\n    std::cout << u1 << '\\n';\n    std::cout << u2 << '\\n';\n    std::cout << u3 << '\\n';\n}\n

\u3057\u304b\u3057\u3001std::memcpy() \u3067\u306f\u578b\u5909\u63db\u3092 constexpr \u306b\u3067\u304d\u305a\u3001\u307e\u305f\u3001\u30c7\u30d5\u30a9\u30eb\u30c8\u30b3\u30f3\u30b9\u30c8\u30e9\u30af\u30c8\u53ef\u80fd\u3067\u306a\u3044\u578b\u306b\u5bfe\u5fdc\u3059\u308b\u306b\u306f std::aligned_storage \u3068\u7d44\u307f\u5408\u308f\u305b\u308b\u5fc5\u8981\u304c\u3042\u308b\u306a\u3069\u3001\u9069\u5207\u306a\u5b9f\u88c5\u306f\u9762\u5012\u3067\u3057\u305f\u3002C++20 \u3067\u306f\u3001\u3053\u306e\u5b9f\u88c5\u3092\u30b3\u30f3\u30d1\u30a4\u30e9\u30b5\u30dd\u30fc\u30c8\u306b\u3088\u308b constexpr \u5bfe\u5fdc\u3082\u542b\u3081\u3066\u5b9f\u73fe\u3059\u308b std::bit_cast() \u95a2\u6570\u304c\u63d0\u4f9b\u3055\u308c\u307e\u3059\u3002

template <typename To, typename From>\nconstexpr To bit_cast(const From& from) noexcept;\n

\u5909\u63db\u5148\u306e\u578b To \u3068\u5909\u63db\u5143\u306e\u578b From \u306b\u3064\u3044\u3066\u3001sizeof(To) != sizeof(From) \u306e\u5834\u5408\u3084\u3001std::is_trivially_copyable_v<To> == false \u307e\u305f\u306f std::is_trivially_copyable_v<From> == false \u306e\u5834\u5408\u306b\u306f\u30b3\u30f3\u30d1\u30a4\u30eb\u30a8\u30e9\u30fc\u306b\u306a\u308b\u305f\u3081\u3001\u9593\u9055\u3044\u3092\u6e1b\u3089\u3059\u52b9\u679c\u3082\u3042\u308a\u307e\u3059\u3002

#include <cstdint>\n#include <bit>\n#include <iostream>\n\nint main()\n{\n    constexpr float f = 0.5f;\n\n    constexpr std::uint32_t u = std::bit_cast<std::uint32_t>(f);\n\n    std::cout << u << '\\n';\n}\n
"},{"location":"standardization/cpp20/#numeric-p0616r0","title":"<numeric> \u306e\u95a2\u6570\u306e\u975e\u52b9\u7387\u306a\u5b9f\u88c5\u3092\u6539\u5584 (P0616R0)","text":"

C++17 \u3067\u306f\u3001std::accumulate() \u306f acc = binary_op(acc, *i) \u3068\u3057\u3066\u5b9f\u88c5\u3055\u308c\u308b\u3068\u898f\u683c\u306b\u5b9a\u3081\u3089\u308c\u3066\u3044\u3044\u305f\u305f\u3081\u3001\u6b21\u306e\u3088\u3046\u306a\u30b1\u30fc\u30b9\u3067 std::accumulate() \u306e\u6700\u4e2d\u306b std::string \u306e\u30a2\u30ed\u30b1\u30fc\u30b7\u30e7\u30f3\u304c\u5927\u91cf\u306b\u767a\u751f\u3057\u3066\u975e\u52b9\u7387\u3067\u3057\u305f\u3002

#include <iostream>\n#include <string>\n#include <numeric>\n#include <vector>\n\nint main()\n{\n    std::vector<std::string> words(100, \"abc\");\n\n    std::string s = \"start\";\n\n    std::string r = std::accumulate(words.begin(), words.end(), s);\n\n    std::cout << r << '\\n';\n}\n
C++17 \u306e std::accumulate() \u306e\u4e2d\u3067\u884c\u308f\u308c\u308b\u3053\u3068:
acc = acc + *i; // operator+(const std::string&, const std::string&)\n++i;\n... // \u304f\u308a\u8fd4\u3057\n

C++20 \u3067\u306f\u3001std::move() \u3092\u4f7f\u3046 acc = binary_op(std::move(acc), *i) \u3068\u3044\u3046\u5b9f\u88c5\u306b\u5909\u66f4\u3055\u308c\u3001\u53f3\u8fba\u5024\u306e\u6f14\u7b97\u306b\u5bfe\u3059\u308b\u52b9\u7387\u7684\u306a\u5b9f\u88c5\u3092\u63d0\u4f9b\u3059\u308b\u578b (std::string \u306a\u3069) \u304c\u3001\u6069\u6075\u3092\u53d7\u3051\u3089\u308c\u308b\u3088\u3046\u306b\u306a\u308a\u307e\u3059\u3002

C++20 \u306e std::accumulate() \u306e\u4e2d\u3067\u884c\u308f\u308c\u308b\u3053\u3068:

acc = std::move(acc) + *i; // operator+(std::string&&, const std::string&)\n++i;\n...\n
operator+(std::string&& lhs, const std::string& rhs) \u306f\u57fa\u672c\u7684\u306b lhs.append(rhs) \u3067\u3059\u3002\u6b21\u306e\u3088\u3046\u306b\u3042\u3089\u304b\u3058\u3081\u5341\u5206\u306a\u30ad\u30e3\u30d1\u30b7\u30c6\u30a3\u3092\u78ba\u4fdd\u3057\u305f\u30d0\u30c3\u30d5\u30a1\u3092 std::accumulate() \u5185\u3067\u4f7f\u3048\u308b\u3088\u3046\u306b\u3082\u306a\u308a\u307e\u3059\u3002

#include <iostream>\n#include <string>\n#include <numeric>\n#include <vector>\n\nint main()\n{\n    std::vector<std::string> words(100, \"abc\");\n\n    std::string s = \"start\";\n\n    s.reserve(s.size() + (word.size() * words.front().size())); // C++17 \u3067\u306f\u7121\u610f\u5473\n\n    std::string r = std::accumulate(words.begin(), words.end(), std::move(s));\n\n    std::cout << r << '\\n';\n}\n

std::move() \u3092\u4f7f\u3046\u3053\u306e\u4ed5\u69d8\u5909\u66f4\u306f\u3001\u540c\u3058 <numeric> \u30d8\u30c3\u30c0\u306e std::inner_product() \u3084 std::partial_sum(), std::adjacent_difference() \u306b\u3082\u9069\u7528\u3055\u308c\u307e\u3059\u3002

"},{"location":"standardization/cpp20/#2-p0556r3-p1355r2-p1956r1","title":"2 \u306e\u7d2f\u4e57\u6570\u306b\u95a2\u3059\u308b\u30e6\u30fc\u30c6\u30a3\u30ea\u30c6\u30a3\u95a2\u6570\u3092\u8ffd\u52a0 (P0556R3), (P1355R2), (P1956R1)","text":"

\u3042\u308b\u6574\u6570\u304c 2 \u306e\u7d2f\u4e57\u6570\u3067\u3042\u308b\u304b\u3092\u8abf\u3079\u305f\u308a\u3001\u3042\u308b\u6574\u6570\u306b\u8fd1\u3044 2 \u306e\u7d2f\u4e57\u6570\u3092\u63a2\u3057\u305f\u308a\u3059\u308b\u51e6\u7406\u306f\u3001\u30d7\u30ed\u30b0\u30e9\u30df\u30f3\u30b0\u3067\u3088\u304f\u767b\u5834\u3057\u307e\u3059\u304c\u3001C++17 \u306e\u6a19\u6e96\u30e9\u30a4\u30d6\u30e9\u30ea\u306b\u306f\u5b9f\u88c5\u3055\u308c\u3066\u3044\u307e\u305b\u3093\u3067\u3057\u305f\u3002C++20 \u3067\u306f\u6b21\u306e\u3088\u3046\u306a\u95a2\u6570\u304c\u8ffd\u52a0\u3055\u308c\u307e\u3059\u3002

namespace std\n{\n    template <class T>\n    constexpr bool has_single_bit(T x) noexcept;\n\n    template <class T>\n    constexpr T bit_ceil(T x);\n\n    template <class T>\n    constexpr T bit_floor(T x) noexcept;\n\n    template <class T>\n    constexpr T bit_width(T x) noexcept;\n}\n

\u3044\u305a\u308c\u306e\u95a2\u6570\u3082\u3001\u578b T \u304c\u7b26\u53f7\u306a\u3057\u6574\u6570\u578b (unsigned char, unsigned short, unsigned int, unsigned long, unsigned long long) \u306e\u5834\u5408\u306e\u307f\u30aa\u30fc\u30d0\u30fc\u30ed\u30fc\u30c9\u89e3\u6c7a\u306b\u53c2\u52a0\u3057\u307e\u3059\u3002\u306a\u304a\u3001std::bit_ceil(x) \u306b\u3064\u3044\u3066\u3001\u7d50\u679c\u304c\u578b T \u3067\u8868\u73fe\u3067\u304d\u306a\u3044\u5834\u5408\u306e\u52d5\u4f5c\u306f\u672a\u5b9a\u7fa9\u3067\u3059\u3002

#include <iostream>\n#include <bit>\n\nint main()\n{\n    for (unsigned i = 0; i <= 16; ++i)\n    {\n        std::cout << i << \": \"\n            << std::has_single_bit(i) << ' '\n            << std::bit_ceil(i) << ' '\n            << std::bit_floor(i) << ' '\n            << std::bit_width(i) << '\\n';\n    }\n}\n
0: 0 1 0 0\n1: 1 1 1 1\n2: 1 2 2 2\n3: 0 4 2 2\n4: 1 4 4 3\n5: 0 8 4 3\n6: 0 8 4 3\n7: 0 8 4 3\n8: 1 8 8 4\n9: 0 16 8 4\n10: 0 16 8 4\n11: 0 16 8 4\n12: 0 16 8 4\n13: 0 16 8 4\n14: 0 16 8 4\n15: 0 16 8 4\n16: 1 16 16 5\n

"},{"location":"standardization/cpp20/#stdlist-stdforward_list-p0646r1","title":"std::list \u3068 std::forward_list \u306e\u8981\u7d20\u524a\u9664\u30e1\u30f3\u30d0\u95a2\u6570\u304c\u3001\u524a\u9664\u3057\u305f\u8981\u7d20\u6570\u3092\u8fd4\u3059\u3088\u3046\u306b (P0646R1)","text":"

std::list \u306e\u30e1\u30f3\u30d0\u95a2\u6570 remove() \u3067\u8981\u7d20\u3092\u524a\u9664\u3057\u305f\u969b\u3001\u5b9f\u969b\u306b\u524a\u9664\u3055\u308c\u305f\u8981\u7d20\u6570\u3092\u77e5\u308b\u306b\u306f\u3001\u524d\u5f8c\u3067 size() \u306e\u6bd4\u8f03\u3092\u884c\u308f\u306a\u3051\u308c\u3070\u306a\u308a\u307e\u305b\u3093\u3067\u3057\u305f\u3002\u3057\u304b\u3057\u3001std::forward_list \u306e\u5834\u5408\u306f size() \u30e1\u30f3\u30d0\u95a2\u6570\u3092\u6301\u305f\u306a\u3044\u305f\u3081\u3001O(n) \u306e\u64cd\u4f5c\u3067\u3042\u308b std::distance() \u3092\u4f7f\u3046\u5fc5\u8981\u304c\u3042\u308a\u307e\u3057\u305f\u3002C++20 \u3067\u306f\u3001std::list \u304a\u3088\u3073 std::forward_list \u306e remove(), remove_if(), unique() \u30e1\u30f3\u30d0\u95a2\u6570\u304c\u3001\u524a\u9664\u3055\u308c\u305f\u8981\u7d20\u6570\u3092\u623b\u308a\u5024\u3068\u3057\u3066\u8fd4\u3059\u3088\u3046\u306b\u306a\u308a\u307e\u3059\u3002\u306a\u304a\u3001\u547c\u3073\u51fa\u3057\u5074\u3067\u623b\u308a\u5024\u3092\u4f7f\u308f\u306a\u3044\u5834\u5408\u3001\u4e3b\u8981\u30b3\u30f3\u30d1\u30a4\u30e9\u306f\u6700\u9069\u5316\u3067\u51e6\u7406\u3092\u7701\u7565\u3059\u308b\u305f\u3081\u3001\u3053\u306e\u4ed5\u69d8\u5909\u66f4\u304c\u5b9f\u884c\u6642\u6027\u80fd\u306b\u4e0e\u3048\u308b\u5f71\u97ff\u306f\u7121\u3044\u3068\u3055\u308c\u3066\u3044\u307e\u3059\u3002

"},{"location":"standardization/cpp20/#stdis_bounded_array-stdis_unbounded_array-p1357r1","title":"\u8981\u7d20\u6570\u304c\u6c7a\u307e\u3063\u3066\u3044\u308b\u914d\u5217\u578b\u304b\u3069\u3046\u304b\u3092\u8abf\u3079\u308b\u578b\u7279\u6027 std::is_bounded_array, std::is_unbounded_array (P1357R1)","text":"

C++17 \u306e\u6a19\u6e96\u30e9\u30a4\u30d6\u30e9\u30ea\u304c\u63d0\u4f9b\u3059\u308b\u578b\u7279\u6027\u306b\u306f\u3001\u914d\u5217\u306e\u8981\u7d20\u6570\u304c\u6c7a\u307e\u3063\u3066\u3044\u308b (bounded) \u304b\u3069\u3046\u304b\u3092\u5224\u5b9a\u3059\u308b\u3082\u306e\u306f\u3042\u308a\u307e\u305b\u3093\u3067\u3057\u305f\u3002C++20 \u3067\u306f\u5229\u4fbf\u6027\u306e\u305f\u3081\u306b\u3001\u578b T \u304c\u8981\u7d20\u6570\u65e2\u77e5\u306e\u914d\u5217\u578b\u3067\u3042\u308b\u304b\u3092\u8abf\u3079\u308b\u578b\u7279\u6027 std::is_bounded_array<T> \u3068\u3001\u578b T \u304c\u8981\u7d20\u6570\u672a\u77e5\u306e\u914d\u5217\u578b\u3067\u3042\u308b\u304b\u3092\u8abf\u3079\u308b\u578b\u7279\u6027 std::is_unbounded_array<T> \u304c\u8ffd\u52a0\u3055\u308c\u307e\u3057\u305f\u3002

#include <iostream>\n#include <type_traits>\n\nint main()\n{\n    std::cout << std::boolalpha;\n\n    std::cout << std::is_bounded_array_v<int> << '\\n'; // false\n    std::cout << std::is_bounded_array_v<int[]> << '\\n'; // false\n    std::cout << std::is_bounded_array_v<int[5]> << '\\n'; // true\n\n    std::cout << std::is_unbounded_array_v<int> << '\\n'; // false\n    std::cout << std::is_unbounded_array_v<int[]> << '\\n'; // true\n    std::cout << std::is_unbounded_array_v<int[5]> << '\\n'; // false\n}\n
false\nfalse\ntrue\nfalse\ntrue\nfalse\n

C++ \u6a19\u6e96\u30e9\u30a4\u30d6\u30e9\u30ea\u306e\u6a5f\u80fd\u3067\u306f\u3001\u4f8b\u3048\u3070 std::make_unique() \u304c\u8981\u7d20\u6570\u65e2\u77e5\u306e\u914d\u5217\u578b\u3092\u7981\u6b62\u3057\u3066\u3044\u307e\u3059\u3002\u3053\u3046\u3057\u305f\u30aa\u30fc\u30d0\u30fc\u30ed\u30fc\u30c9\u3092\u6271\u3046\u3068\u304d\u306b\u3001\u3053\u306e\u578b\u7279\u6027\u304c\u4fbf\u5229\u3067\u3059\u3002

#include <iostream>\n#include <memory>\n\nint main()\n{\n    auto p1 = std::make_unique<int[]>(3);\n    auto p2 = std::make_unique<int[5]>(); // \u30b3\u30f3\u30d1\u30a4\u30eb\u30a8\u30e9\u30fc\n}\n
"},{"location":"standardization/cpp20/#stdfunction-noexcept-p0771r1","title":"std::function \u306e\u30e0\u30fc\u30d6\u30b3\u30f3\u30b9\u30c8\u30e9\u30af\u30bf\u304c noexcept \u306b (P0771R1)","text":"

\u5b9f\u884c\u6642\u6027\u80fd\u3092\u5411\u4e0a\u3055\u305b\u308b\u305f\u3081\u3001C++20 \u3067\u306f std::function \u306e\u30e0\u30fc\u30d6\u30b3\u30f3\u30b9\u30c8\u30e9\u30af\u30bf\u304c noexcept \u306b\u306a\u308a\u307e\u3059\u3002\u306a\u304a\u3001libstdc++ \u3068 libc++ \u3067\u306f\u63d0\u6848\u6642\u70b9\u3067\u3059\u3067\u306b\u5b9f\u88c5\u6e08\u307f\u3067\u3057\u305f\u3002

"},{"location":"standardization/cpp20/#utility-algorithm-constexpr-p0202r3-p0879r0","title":"<utility>, <algorithm> \u306e\u591a\u304f\u306e\u95a2\u6570\u304c constexpr \u306b (P0202R3), (P0879R0)","text":"

C++20 \u3067\u306f <utility> \u30d8\u30c3\u30c0\u306e std::swap(), std::exchange() \u304a\u3088\u3073\u3001<algorithm> \u30d8\u30c3\u30c0\u3067\u6761\u4ef6\u3092\u6e80\u305f\u3059\u5168\u95a2\u6570\u304c constexpr \u306b\u5bfe\u5fdc\u3057\u307e\u3059\u3002std::all_of() \u3084 std::sort(), std::reverse() \u306a\u3069\u3001\u3088\u304f\u4f7f\u308f\u308c\u308b\u30a2\u30eb\u30b4\u30ea\u30ba\u30e0\u95a2\u6570\u304c constexpr \u306b\u306a\u308a\u307e\u3059\u3002

<algorithm> \u30d8\u30c3\u30c0\u3067 constexpr \u306b\u306a\u3089\u306a\u3044\u306e\u306f\u4ee5\u4e0b\u306e\u95a2\u6570\u306e\u307f\u3067\u3059\u3002

#include <array>\n#include <algorithm>\n#include <iostream>\n\nconstexpr int SumOfTop3(std::array<int, 5> a)\n{\n    std::nth_element(a.begin(), a.begin() + 3, a.end()); // C++20 \u3067\u306f constexpr\n\n    return a[0] + a[1] + a[2];\n}\n\nint main()\n{\n    constexpr int n = SumOfTop3({ 1, 8, 16, 4, 2 });\n\n    static_assert(n == 7);\n\n    std::cout << n << '\\n'; // 7\n}\n
7\n
"},{"location":"standardization/cpp20/#delete-p0722r3","title":"\u30c7\u30b9\u30c8\u30e9\u30af\u30bf\u3092\u81ea\u52d5\u3067\u547c\u3070\u306a\u3044 delete \u6f14\u7b97\u5b50\u30aa\u30fc\u30d0\u30fc\u30ed\u30fc\u30c9 (P0722R3)","text":"

C++17 \u3067\u306f\u3001\u30e6\u30fc\u30b6\u5b9a\u7fa9\u306e delete \u306e\u4e2d\u3067\u30e1\u30f3\u30d0\u5909\u6570\u306b\u30a2\u30af\u30bb\u30b9\u3057\u305f\u304f\u3066\u3082\u3001\u3059\u3067\u306b\u30af\u30e9\u30b9\u306e\u30c7\u30b9\u30c8\u30e9\u30af\u30bf\u304c\u547c\u3070\u308c\u3066\u3044\u308b\u305f\u3081\u672a\u5b9a\u7fa9\u306e\u52d5\u4f5c\u306b\u306a\u308a\u307e\u3059\u3002

#include <iostream>\n#include <new>\n\nstruct Object\n{\n    std::string m_str = \"ABCDEFGHIJKLMNOPQRSTUVWXYZ\";\n\n    static void operator delete(void* p)\n    {    \n        std::cout << \"m_str: \"\n            << static_cast<Object*>(p)->m_str // \u672a\u5b9a\u7fa9\u306e\u52d5\u4f5c\n            << '\\n';\n        ::operator delete(p);\n    }\n};\n\nint main()\n{\n    Object* p = new Object;\n    delete p;\n}\n

C++20 \u3067\u306f\u3001delete \u306e\u7b2c\u4e8c\u5f15\u6570\u3092 std::destroying_delete_t \u578b\u306b\u3059\u308b\u3053\u3068\u3067\u3001\u30c7\u30b9\u30c8\u30e9\u30af\u30bf\u306e\u547c\u3073\u51fa\u3057\u304c\u81ea\u52d5\u3067\u5b9f\u884c\u3055\u308c\u306a\u3044\u6319\u52d5\u306b\u8a2d\u5b9a\u3067\u304d\u307e\u3059\uff08\u3053\u306e\u65b0\u3057\u3044\u6319\u52d5\u3092\u300cdestroying operator delete\u300d\u3068\u547c\u3073\u307e\u3059\uff09\u3002void T::operator delete(T* ptr, std::destroying_delete_t) \u306e\u3088\u3046\u306b\u3001\u7b2c\u4e00\u5f15\u6570\u306b\u306f\u30af\u30e9\u30b9\u3078\u306e\u30dd\u30a4\u30f3\u30bf\u304c\u6e21\u3055\u308c\u3001\u660e\u793a\u7684\u306b\u30c7\u30b9\u30c8\u30e9\u30af\u30bf ptr->~T() \u3092\u547c\u3076\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059\u3002

#include <iostream>\n#include <new>\n\nstruct Object\n{\n    std::string m_str = \"ABCDEFGHIJKLMNOPQRSTUVWXYZ\";\n\n    static void operator delete(Object* p, std::destroying_delete_t)\n    {    \n        std::cout << \"m_str: \"\n            << p->m_str\n            << '\\n';      \n        p->~Object();\n        ::operator delete(p);\n    }\n};\n\nint main()\n{\n    Object* p = new Object;\n    delete p;\n}\n
"},{"location":"standardization/cpp20/#p0553r4","title":"\u30d3\u30c3\u30c8\u5faa\u74b0\u30b7\u30d5\u30c8\u30fb\u30d3\u30c3\u30c8\u30ab\u30a6\u30f3\u30c8\u95a2\u6570 (P0553R4)","text":"

\u30d3\u30c3\u30c8\u5217\u306e\u5de6\u7aef\u3068\u53f3\u7aef\u304c\u5faa\u74b0\u3059\u308b\u3088\u3046\u306b\u30b7\u30d5\u30c8\u3059\u308b\u30d3\u30c3\u30c8\u30ed\u30fc\u30c6\u30fc\u30b7\u30e7\u30f3\u3084\u30011 \u306b\u306a\u3063\u3066\u3044\u308b\u30d3\u30c3\u30c8\u3092\u6570\u3048\u308b popcount \u306a\u3069\u306e\u30d3\u30c3\u30c8\u64cd\u4f5c\u547d\u4ee4\u306f\u3001\u591a\u304f\u306e CPU \u30a2\u30fc\u30ad\u30c6\u30af\u30c1\u30e3\u306b\u642d\u8f09\u3055\u308c\u3066\u3044\u307e\u3059\u304c\u3001\u305d\u308c\u306b\u5bfe\u5fdc\u3059\u308b\u95a2\u6570\u306f C++17 \u6a19\u6e96\u30e9\u30a4\u30d6\u30e9\u30ea\u306b\u306f\u5b58\u5728\u305b\u305a\u3001__builtin_popcount (GCC, Clang) \u3084 __popcnt (MSVC) \u306e\u3088\u3046\u306a\u3001\u51e6\u7406\u7cfb\u304c\u63d0\u4f9b\u3059\u308b\u975e\u6a19\u6e96\u306e\u7d44\u307f\u8fbc\u307f\u95a2\u6570\u3092\u4f7f\u3046\u5fc5\u8981\u304c\u3042\u308a\u307e\u3057\u305f\u3002C++20 \u3067\u306f\u30017 \u7a2e\u985e\u306e\u30d3\u30c3\u30c8\u64cd\u4f5c\u304c\u6a19\u6e96\u30e9\u30a4\u30d6\u30e9\u30ea\u95a2\u6570\u3068\u3057\u3066\u63d0\u4f9b\u3055\u308c\u307e\u3059\u3002

namespace std\n{\n    template<class T>\n    [[nodiscard]] constexpr T rotl(T x, int s) noexcept;\n\n    template<class T>\n    [[nodiscard]] constexpr T rotr(T x, int s) noexcept;\n\n    template<class T>\n    constexpr int countl_zero(T x) noexcept;\n\n    template<class T>\n    constexpr int countl_one(T x) noexcept;\n\n    template<class T>\n    constexpr int countr_zero(T x) noexcept;\n\n    template<class T>\n    constexpr int countr_one(T x) noexcept;\n\n    template<class T>\n    constexpr int popcount(T x) noexcept;\n}\n

\u3044\u305a\u308c\u306e\u95a2\u6570\u3082\u3001\u578b T \u304c\u7b26\u53f7\u306a\u3057\u6574\u6570\u578b (unsigned char, unsigned short, unsigned int, unsigned long, unsigned long long) \u306e\u5834\u5408\u306e\u307f\u30aa\u30fc\u30d0\u30fc\u30ed\u30fc\u30c9\u89e3\u6c7a\u306b\u53c2\u52a0\u3057\u307e\u3059\u3002

#include <iostream>\n#include <cstdint>\n#include <bit>\n\nvoid ShowBinary(std::uint16_t x)\n{\n    for (size_t i = 0; i < 16; ++i)\n    {\n        std::cout << ((x >> (15 - i)) & 1);\n    }\n    std::cout << '\\n';\n}\n\nint main()\n{\n    const std::uint16_t x = 0b0001'0110'1110'1111;\n\n    ShowBinary(x);\n    std::cout << '\\n';\n\n    for (int s = -4; s <= 4; ++s)\n    {\n        ShowBinary(std::rotl(x, s));\n    }\n    std::cout << '\\n';\n\n    for (int s = -4; s <= 4; ++s)\n    {\n        ShowBinary(std::rotr(x, s));\n    }\n    std::cout << '\\n';\n\n    std::cout << std::countl_zero(x) << '\\n';   // 3\n    std::cout << std::countl_one(x) << '\\n';    // 0\n    std::cout << std::countr_zero(x) << '\\n';   // 0\n    std::cout << std::countr_one(x) << '\\n';    // 4\n    std::cout << std::popcount(x) << '\\n';      // 10\n}\n
0001011011101111\n\n1111000101101110\n1110001011011101\n1100010110111011\n1000101101110111\n0001011011101111\n0010110111011110\n0101101110111100\n1011011101111000\n0110111011110001\n\n0110111011110001\n1011011101111000\n0101101110111100\n0010110111011110\n0001011011101111\n1000101101110111\n1100010110111011\n1110001011011101\n1111000101101110\n\n3\n0\n0\n4\n10\n

"},{"location":"standardization/cpp20/#stdarray-stdto_array-p0325r4","title":"\u7d44\u307f\u8fbc\u307f\u914d\u5217\u304b\u3089 std::array \u3092\u4f5c\u6210\u3059\u308b std::to_array() (P0325R4)","text":"

C++17 \u3067\u5c0e\u5165\u3055\u308c\u305f\u578b\u63a8\u8ad6\u30ac\u30a4\u30c9\u306b\u3088\u3063\u3066\u3001std::array \u3067\u6b21\u306e\u3088\u3046\u306a\u30b3\u30fc\u30c9\u304c\u66f8\u3051\u308b\u3088\u3046\u306b\u306a\u308a\u307e\u3057\u305f\u3002

#include <array>\n\nint main()\n{\n    auto a = std::array{ 1, 2, 3 }; // std::array<int, 3>\n}\n

\u3057\u304b\u3057\u3001\"hello\" \u3084 int[4] \u306e\u3088\u3046\u306a\u7d44\u307f\u8fbc\u307f\u914d\u5217\u304b\u3089 std::array<char, 6> \u3084 std::array<int, 4> \u3092\u4f5c\u6210\u3059\u308b\u65b9\u6cd5\u306f\u3042\u308a\u307e\u305b\u3093\u3067\u3057\u305f\u3002

#include <array>\n\nint main()\n{\n    auto a1 = std::array{ \"hello\" }; // std::array<const char*, 1>\n\n    int xs[4] = { 1,2,3,4 };\n    auto a2 = std::array{ xs }; // std::array<int*, 1>\n}\n

C++20 \u3067\u306f\u3001\u7d44\u307f\u8fbc\u307f\u914d\u5217\u306e\u5de6\u8fba\u5024\u307e\u305f\u306f\u53f3\u8fba\u5024\u3092\u5f15\u6570\u306b\u3068\u308a\u3001\u5024\u3092\u30b3\u30d4\u30fc\uff08\u30e0\u30fc\u30d6\uff09\u3057\u3066\u65b0\u3057\u3044 std::array \u3092\u4f5c\u6210\u3059\u308b\u88dc\u52a9\u95a2\u6570 std::to_array() \u304c\u8ffd\u52a0\u3055\u308c\u3001\u7d44\u307f\u8fbc\u307f\u914d\u5217\u304b\u3089\u306e std::array \u306e\u4f5c\u6210\u304c\u7c21\u5358\u306b\u306a\u308a\u307e\u3057\u305f\u3002

#include <array>\n\nint main()\n{\n    auto a1 = std::to_array(\"hello\"); // std::array<char, 6>\n\n    int xs[4] = { 1,2,3,4 };\n    auto a2 = std::to_array(xs); // std::array<int, 4>\n\n    auto a3 = std::to_array<long>({ 1, 2 }); // std::array<long, 2>\n}\n
"},{"location":"standardization/cpp20/#stdfilesystemcreate_directory-p1164r1","title":"std::filesystem::create_directory() \u306e\u6319\u52d5\u3092\u76f4\u611f\u7684\u306b (P1164R1)","text":"

C++17 \u3067\u5c0e\u5165\u3055\u308c\u305f std::filesystem::create_directory() \u304a\u3088\u3073 std::filesystem::create_directories() \u306e\u5f53\u521d\u306e\u4ed5\u69d8\u3067\u306f\u3001

\u3068\u3044\u3046\u3001\u5bfe\u51e6\u3057\u306b\u304f\u304f\u4e00\u8cab\u3057\u306a\u3044\u6319\u52d5\u304c\u3042\u308a\u307e\u3057\u305f\u3002C++20 \u3067\u306f\u540c\u540d\u306e\uff08\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u3067\u306a\u3044\uff09\u30d5\u30a1\u30a4\u30eb\u304c\u5b58\u5728\u3059\u308b\u5834\u5408\u306f\u5e38\u306b\u30a8\u30e9\u30fc\u306b\u306a\u308b\u3088\u3046\u4ed5\u69d8\u304c\u4fee\u6b63\u3055\u308c\u307e\u3059\u3002\u3053\u306e\u5909\u66f4\u306f C++17 \u898f\u683c\u306b\u3055\u304b\u306e\u307c\u3063\u3066\u9069\u7528\u3055\u308c\u3001\u5bfe\u5fdc\u3057\u305f C++17 \u74b0\u5883\u3067\u3082\u5229\u7528\u3067\u304d\u307e\u3059\u3002

"},{"location":"standardization/cpp20/#stdmake_shared-stdallocate_shared-p0674r1","title":"std::make_shared() \u3068 std::allocate_shared() \u304c\u914d\u5217\u3092\u30b5\u30dd\u30fc\u30c8 (P0674R1)","text":"

C++11 \u3067\u5c0e\u5165\u3055\u308c\u305f std::make_shared(), std::allocate_shared() \u306f\u914d\u5217\u3092\u30b5\u30dd\u30fc\u30c8\u3057\u3066\u3044\u307e\u305b\u3093\u3067\u3057\u305f\u3002C++20 \u304b\u3089\u306f\u914d\u5217\u578b\u306e\u305f\u3081\u306e\u30aa\u30fc\u30d0\u30fc\u30ed\u30fc\u30c9\u304c\u8ffd\u52a0\u3055\u308c\u307e\u3059\u3002

#include <iostream>\n#include <memory>\n\nint main()\n{\n    // \u5024\u521d\u671f\u5316\u3055\u308c\u305f int[100]\n    std::shared_ptr<int[]> p1 = std::make_shared<int[]>(100);\n    std::cout << p1[99] << '\\n'; // 0\n\n    // \u5024\u521d\u671f\u5316\u3055\u308c\u305f double[6][4]\n    std::shared_ptr<double[][4]> p2 = std::make_shared<double[][4]>(6);\n    std::cout << p2[5][3] << '\\n'; // 0.0\n\n    // \u5024\u521d\u671f\u5316\u3055\u308c\u305f int[100]\n    std::shared_ptr<int[100]> p3 = std::make_shared<int[100]>();\n    std::cout << p3[99] << '\\n'; // 0\n\n    // \u5024\u521d\u671f\u5316\u3055\u308c\u305f double[6][4]\n    std::shared_ptr<double[6][4]> p4 = std::make_shared<double[6][4]>();\n    std::cout << p4[5][3] << '\\n'; // 0.0\n\n    // int[100] \u3067\u5404\u8981\u7d20\u306f -1\n    std::shared_ptr<int[]> p5 = std::make_shared<int[]>(100, -1);\n    std::cout << p5[99] << '\\n'; // -1\n\n    // double[6][4] \u3067\u3001\u5404 double[4] \u306f { 1.0, 0.9, 0.8, 0.7 }\n    std::shared_ptr<double[][4]> p6 = std::make_shared<double[][4]>(6, { 1.0, 0.9, 0.8, 0.7 });\n    std::cout << p6[5][3] << '\\n'; // 0.7\n\n    // int[100] \u3067\u5404\u8981\u7d20\u306f -2\n    std::shared_ptr<int[100]> p7 = std::make_shared<int[100]>(-2);\n    std::cout << p7[99] << '\\n'; // -2\n\n    // double[6][4] \u3067\u3001\u5404 double[4] \u306f { 0.0, 0.1, 0.2, 0.3 }\n    std::shared_ptr<double[6][4]> p8 = std::make_shared<double[6][4]>({ 0.0, 0.1, 0.2, 0.3 });\n    std::cout << p8[5][3] << '\\n'; // 0.3\n}\n
0\n0\n0\n0\n-1\n0.7\n-2\n0.3\n

"},{"location":"standardization/cpp20/#stdshift_left-stdshift_right-p0769r2","title":"\u7bc4\u56f2\u306e\u8981\u7d20\u3092\u5de6\u53f3\u306b\u30b7\u30d5\u30c8\u3059\u308b std::shift_left(), std::shift_right() \u95a2\u6570 (P0769R2)","text":"

\u3042\u308b\u7bc4\u56f2\u306e\u8981\u7d20\u3092\u5de6\u53f3\u306b\u79fb\u52d5\u3055\u305b\u305f\u3044\u3068\u304d\u306f std::rotate() \u3092\u4f7f\u3046\u65b9\u6cd5\u304c\u3042\u308a\u307e\u3057\u305f\u304c\u3001\u306f\u307f\u51fa\u305f\u5206\u306f\u56de\u8ee2\u3057\u3066\u53cd\u5bfe\u5074\u306b\u79fb\u52d5\u3059\u308b\u64cd\u4f5c\u3067\u3042\u308b\u305f\u3081\u3001\u305d\u308c\u3089\u306e\u5024\u304c\u4e0d\u8981\u306a\u5834\u5408\u306f\u4f59\u8a08\u306a\u30b3\u30b9\u30c8\u304c\u767a\u751f\u3057\u3066\u3044\u307e\u3057\u305f\u3002\u307e\u305f\u3001std::rotate() \u3067\u306f\u8981\u7d20\u3092\u3069\u3061\u3089\u306b\u3069\u308c\u3060\u3051\u79fb\u52d5\u3059\u308b\u304b\u3068\u3044\u3046\u610f\u56f3\u3092\u660e\u5feb\u306b\u8868\u73fe\u3067\u304d\u307e\u305b\u3093\u3067\u3057\u305f\u3002

C++20 \u3067\u306f\u3001\u3042\u308b\u7bc4\u56f2\u306e\u8981\u7d20\u3092\u56de\u8ee2\u7121\u3057\u3067\u79fb\u52d5\uff08\u30b7\u30d5\u30c8\uff09\u3055\u305b\u308b std::shift_left(first, last, n), std::shift_right(first, last, n) \u95a2\u6570\u304c\u8ffd\u52a0\u3055\u308c\u307e\u3059\u3002\u79fb\u52d5\u3055\u305b\u308b\u8981\u7d20\u306e\u7bc4\u56f2\u3092 first, last \u3067\u6307\u5b9a\u3057\u3001n \u500b\u5206\u5de6\u53f3\u306b\u30b7\u30d5\u30c8\u3057\u307e\u3059\u3002n \u304c 0 \u4ee5\u4e0b\u306e\u5834\u5408\u306f\u4f55\u3082\u3057\u307e\u305b\u3093\u3002\u79fb\u52d5\u306b\u3088\u308a\u8981\u7d20\u304c\u306a\u304f\u306a\u3063\u305f\u90e8\u5206\u306f\u6709\u52b9\u3067\u672a\u898f\u5b9a\u306e\u72b6\u614b\u306b\u306a\u308b\u305f\u3081\u3001\u65b0\u3057\u3044\u8981\u7d20\u3092\u4ee3\u5165\u3059\u308b\u304b\u3001erase() \u3067\u524a\u9664\u3057\u307e\u3059\u3002

#include <iostream>\n#include <vector>\n#include <algorithm>\n\nint main()\n{\n    {\n        std::vector v = { 1, 2, 3, 4, 5 };\n\n        // \u5de6\u3078 1 \u30ed\u30fc\u30c6\u2015\u30c8\n        // { 2, 3, 4, 5, 1 }\n        std::rotate(v.begin(), v.begin() + 1, v.end());\n\n        v.back() = 6;\n\n        for (const auto& e : v)\n        {\n            std::cout << e << ' '; // 2 3 4 5 6\n        }\n\n        std::cout << '\\n';\n    }\n\n    {\n        std::vector v = { 1, 2, 3, 4, 5 };\n\n        // \u5de6\u3078 1 \u30b7\u30d5\u30c8\n        // { 2, 3, 4, 5, (\u672a\u898f\u5b9a) }\n        std::shift_left(v.begin(), v.end(), 1);\n\n        v.back() = 6;\n\n        for (const auto& e : v)\n        {\n            std::cout << e << ' '; // 2 3 4 5 6\n        }\n\n        std::cout << '\\n';\n    }\n}\n
2 3 4 5 6 \n2 3 4 5 6 \n

"},{"location":"standardization/cpp20/#stdstring_view-p1391r4","title":"std::string_view \u306e\u30b3\u30f3\u30b9\u30c8\u30e9\u30af\u30bf\u306b\u3001\u7bc4\u56f2\u306e\u30a4\u30c6\u30ec\u30fc\u30bf\u30da\u30a2\u3092\u53d7\u3051\u53d6\u308b\u30aa\u30fc\u30d0\u30fc\u30ed\u30fc\u30c9\u3092\u8ffd\u52a0 (P1391R4)","text":"

\u3053\u308c\u307e\u3067\u306f\u3001\u30e1\u30e2\u30ea\u9023\u7d9a\u306a\u7bc4\u56f2\u304b\u3089 std::string_view \u3092\u4f5c\u6210\u3059\u308b\u306b\u306f\u3001\u5148\u982d\u30dd\u30a4\u30f3\u30bf\u3068\u30b5\u30a4\u30ba\u3092\u6e21\u3059\u5fc5\u8981\u304c\u3042\u308a\u3001\u30a4\u30c6\u30ec\u30fc\u30bf\u3092\u4f7f\u7528\u3059\u308b\u3053\u3068\u306f\u3067\u304d\u307e\u305b\u3093\u3067\u3057\u305f\u3002

C++20 \u3067\u306f\u3001\u30a4\u30c6\u30ec\u30fc\u30bf\u30b3\u30f3\u30bb\u30d7\u30c8 std::contiguous_iterator<It> \u3092\u6e80\u305f\u3059\u5148\u982d\u30a4\u30c6\u30ec\u30fc\u30bf It \u3068\u3001std::sized_sentinel_for<It> \u3092\u6e80\u305f\u3059\u30a4\u30c6\u30ec\u30fc\u30bf End \u306b\u3088\u308b string_view::string_view(It first, End last); \u3068\u3044\u3046\u30b3\u30f3\u30b9\u30c8\u30e9\u30af\u30bf\u306e\u30aa\u30fc\u30d0\u30fc\u30ed\u30fc\u30c9\u304c\u8ffd\u52a0\u3055\u308c\u307e\u3059\u3002\u3053\u308c\u306b\u3088\u308a\u3001char \u578b\u306e\u914d\u5217\u3084 std::vector<char>, \u975e\u6a19\u6e96\u306e\u30e9\u30a4\u30d6\u30e9\u30ea\u3067\u4f7f\u308f\u308c\u3066\u3044\u308b\u69d8\u3005\u306a\u6587\u5b57\u5217\u30af\u30e9\u30b9\u304b\u3089\u306e std::string_view \u306e\u69cb\u7bc9\u304c\u3001\u30a4\u30c6\u30ec\u30fc\u30bf\u3092\u4f7f\u3046\u65b9\u6cd5\u3067\u5b9f\u73fe\u3067\u304d\u308b\u3088\u3046\u306b\u306a\u308a\u307e\u3059\u3002

#include <iostream>\n#include <vector>\n#include <string_view>\n\nint main()\n{\n    const std::vector<char> chars = { 'A', 'B', 'C', 'D', 'E' };\n\n    // C++17 \u307e\u3067\n    //const std::string_view sv{ chars.data(), chars.size() };\n\n    const std::string_view sv{ chars.begin(), chars.end() };\n\n    std::cout << sv << '\\n';\n}\n
ABCDE\n

"},{"location":"standardization/cpp23/","title":"C++23 \u306e\u65b0\u6a5f\u80fd","text":"

C++23 \u306e\u898f\u683c\u30c9\u30e9\u30d5\u30c8\u306b\u5165\u308b\u3053\u3068\u304c\u6c7a\u307e\u3063\u305f\u65b0\u6a5f\u80fd\u30fb\u4ed5\u69d8\u5909\u66f4\u3092\u968f\u6642\u8ffd\u52a0\u3057\u3066\u3044\u304d\u307e\u3059\u3002

"},{"location":"standardization/cpp23/#_1","title":"\u8a00\u8a9e\u6a5f\u80fd","text":""},{"location":"standardization/cpp23/#stdsize_t-p0330","title":"std::size_t \u578b\u306e\u6574\u6570\u30ea\u30c6\u30e9\u30eb\u306e\u305f\u3081\u306e\u30b5\u30d5\u30a3\u30c3\u30af\u30b9\u3092\u8ffd\u52a0 (P0330)","text":"

\u3053\u308c\u307e\u3067 std::size_t \u578b\u306e\u5024\u3092\u30ea\u30c6\u30e9\u30eb\u3067\u8868\u73fe\u3059\u308b\u65b9\u6cd5\u304c\u306a\u304f\u3001\u6b21\u306e\u3088\u3046\u306a\u4e0d\u4fbf\u306e\u539f\u56e0\u306b\u306a\u3063\u3066\u3044\u307e\u3057\u305f\u3002

#include <vector>\n#include <algorithm>\n\nint main()\n{\n    std::vector<int> v{ 0, 1, 2, 3 };\n\n    // \u30b3\u30f3\u30d1\u30a4\u30eb\u30a8\u30e9\u30fc (64-bit \u74b0\u5883): i \u3068 s \u304c\u7570\u306a\u308b\u578b\n    for (auto i = 0u, s = v.size(); i < s; ++i)\n    {\n\n    }\n\n    // OK\n    for (auto i = size_t(0), s = v.size(); i < s; ++i)\n    {\n\n    }\n\n    size_t s2 = std::max(1u, v.size()); // \u30b3\u30f3\u30d1\u30a4\u30eb\u30a8\u30e9\u30fc (64-bit \u74b0\u5883): \u5f15\u6570\u306e\u578b\u304c\u4e0d\u4e00\u81f4\n\n    size_t s3 = std::max<size_t>(1u, v.size()); // OK\n}\n

C++23 \u3067\u306f std::size_t \u578b\u306e\u5024\u3092\u8868\u3059\u30ea\u30c6\u30e9\u30eb\u306e\u30b5\u30d5\u30a3\u30c3\u30af\u30b9 z \u304a\u3088\u3073 Z \u304c\u8ffd\u52a0\u3055\u308c\u3001123z \u306f\u7b26\u53f7\u4ed8\u304d\u306e std::size_t \u306b\u76f8\u5f53\u3059\u308b\u578b (std::ptrdiff_\u00adt), 123uz \u304c std::size_t \u578b\u3068\u898b\u306a\u3055\u308c\u307e\u3059\u3002

#include <vector>\n#include <algorithm>\n\nint main()\n{\n    std::vector<int> v{ 0, 1, 2, 3 };\n\n    // OK\n    for (auto i = 0uz, s = v.size(); i < s; ++i)\n    {\n\n    }\n\n    size_t s2 = std::max(1uz, v.size()); // OK\n}\n
"},{"location":"standardization/cpp23/#_2","title":"\u6a19\u6e96\u30e9\u30a4\u30d6\u30e9\u30ea","text":""},{"location":"standardization/cpp23/#c-atomics-stdatomich-p0943r6","title":"C \u8a00\u8a9e\u3068\u306e atomics \u306e\u4e92\u63db\u3092\u76ee\u7684\u3068\u3057\u305f\u6a19\u6e96\u30e9\u30a4\u30d6\u30e9\u30ea\u30d8\u30c3\u30c0 <stdatomic.h> \u3092\u8ffd\u52a0 (P0943R6)","text":"

C++ atomics \u306e\u975e\u30b8\u30a7\u30cd\u30ea\u30c3\u30af\u306a\u90e8\u5206 (atomic_char \u3084 atomic_ulong \u306a\u3069) \u306f C \u8a00\u8a9e\u304b\u3089\u3082\u4f7f\u3048\u308b\u3088\u3046\u306b\u8a2d\u8a08\u3055\u308c\u3066\u3044\u307e\u3057\u305f\u304c\u3001C \u8a00\u8a9e\u304c\u30b8\u30a7\u30cd\u30ea\u30c3\u30af\u7528\u3068\u3057\u3066\u72ec\u81ea\u306b _Atomic(T) \u578b\u6307\u5b9a\u5b50\u3092\u8ffd\u52a0\u3057\u305f\u307b\u304b\u3001C++ \u306e\u898f\u683c\u3067\u306f C \u8a00\u8a9e\u306e\u30d8\u30c3\u30c0 <stdatomic.h> \u306b\u95a2\u3059\u308b\u8a00\u53ca\u304c\u306a\u3044\u3053\u3068\u304b\u3089\u3001\u5b9f\u969b\u306e\u76f8\u4e92\u904b\u7528\u306b\u306f\u3044\u304f\u3089\u304b\u306e\u624b\u9593\u304c\u5fc5\u8981\u3067\u3057\u305f\u3002

#ifdef __cplusplus\n    #include <atomic>   \n    using std::atomic_int;  \n    using std::memory_order;\n    using std::memory_order_acquire;\n    #define _Atomic(X) std::atomic<X>\n    // ...\n#else\n    #include <stdatomic.h>\n#endif\n\n// C \u3067\u3082 C++ \u3067\u3082\u30b3\u30f3\u30d1\u30a4\u30eb\u53ef\u80fd\nint main(void)\n{\n    atomic_int a;\n    memory_order b = memory_order_acquire;\n    _Atomic(int) c;\n    return 0;\n}\n

C++23 \u3067\u306f\u6a19\u6e96\u30e9\u30a4\u30d6\u30e9\u30ea\u306b C \u8a00\u8a9e\u3068\u306e atomics \u306e\u4e92\u63db\u306e\u305f\u3081\u306e\u30d8\u30c3\u30c0 <stdatomic.h> \u3092\u8ffd\u52a0\u3057\u3001\u30a4\u30f3\u30af\u30eb\u30fc\u30c9\u3059\u308b\u3060\u3051\u3067\u5171\u901a\u306e\u30b3\u30fc\u30c9\u3092\u66f8\u3051\u308b\u3088\u3046\u306b\u3057\u307e\u3059\u3002

#include <stdatomics.h>\n\n// C \u3067\u3082 C++ \u3067\u3082\u30b3\u30f3\u30d1\u30a4\u30eb\u53ef\u80fd\nint main(void)\n{\n    atomic_int a;\n    memory_order b = memory_order_acquire;\n    _Atomic(int) c;\n    return 0;\n}\n
"},{"location":"standardization/cpp23/#scoped-enum-stdis_scoped_enumt-trait-p1048r1","title":"\u578b\u304c scoped enum \u3067\u3042\u308b\u304b\u3092\u8abf\u3079\u308b std::is_scoped_enum<T> trait (P1048R1)","text":"

C++11 \u3067 scoped enum (enum class / enum struct) \u304c\u5c0e\u5165\u3055\u308c\u307e\u3057\u305f\u304c\u3001\u540c\u6642\u306b\u5c0e\u5165\u3055\u308c\u305f type trait std::is_enum<T> \u306f\u3001unscoped enum (enum) \u578b\u3068 scoped enum \u578b\u306e\u3069\u3061\u3089\u306b\u3082 true \u3092\u793a\u3057\u3001\u4e21\u8005\u3092\u533a\u5225\u3067\u304d\u307e\u305b\u3093\u3067\u3057\u305f\u3002

C++23 \u3067\u306f\u578b\u304c scoped enum \u3067\u3042\u308b\u304b\u3092\u8abf\u3079\u308b std::is_scoped_enum<T> trait \u304c\u8ffd\u52a0\u3055\u308c\u3001\u4e21\u8005\u3092\u533a\u5225\u3067\u304d\u308b\u3088\u3046\u306b\u306a\u308a\u307e\u3059\u3002

#include <iostream>\n#include <type_traits>\n\nenum UnscopedEnum {};\nenum class ScopedEnum {};\n\nint main()\n{\n    std::cout << std::boolalpha;\n\n    std::cout << std::is_enum_v<int> << '\\n';           // false    \n    std::cout << std::is_enum_v<UnscopedEnum> << '\\n';  // true\n    std::cout << std::is_enum_v<ScopedEnum> << '\\n';    // true\n\n    std::cout << std::is_scoped_enum_v<int> << '\\n';            // false\n    std::cout << std::is_scoped_enum_v<UnscopedEnum> << '\\n';   // false\n    std::cout << std::is_scoped_enum_v<ScopedEnum> << '\\n';     // true\n}\n

\u306a\u304a\u3001Boost.TypeTraits \u306b\u306f\u3059\u3067\u306b\u6b21\u306e\u3088\u3046\u306b\u5b9f\u88c5\u3055\u308c\u3066\u3044\u307e\u3059\u3002

namespace boost\n{\n    template <class T>\n    struct is_scoped_enum\n        : conjunction<is_enum<T>, negation<is_convertible<T, int>>>::type {};\n}\n
"},{"location":"standardization/cpp23/#contains-p1679r3","title":"\u6587\u5b57\u5217\u30af\u30e9\u30b9\u306b\u3001\u6307\u5b9a\u3057\u305f\u6587\u5b57\u3084\u6587\u5b57\u5217\u304c\u542b\u307e\u308c\u3066\u3044\u308b\u304b\u3092\u8fd4\u3059 .contains() \u30e1\u30f3\u30d0\u95a2\u6570 (P1679R3)","text":"

std::string \u3084 std::string_view \u306b\u3042\u308b\u6587\u5b57\u3084\u6587\u5b57\u5217\u304c\u542b\u307e\u308c\u3066\u3044\u308b\u304b\u3092\u8abf\u3079\u308b\u306b\u306f\u3001\u6b21\u306e\u3088\u3046\u306b .find() \u3092\u4f7f\u3063\u305f\u5c11\u3057\u9060\u56de\u308a\u306a\u30b3\u30fc\u30c9\u3092\u66f8\u304f\u5fc5\u8981\u304c\u3042\u308a\u307e\u3057\u305f\u3002

#include <iostream>\n#include <string>\n\nint main()\n{\n    std::string s = \"C++23\";\n\n    std::cout << std::boolalpha;\n\n    // '4' \u304c\u542b\u307e\u308c\u3066\u3044\u308b\u304b\u3092\u8abf\u3079\u308b\n    std::cout << (s.find('4') != std::string::npos) << '\\n'; // false\n\n    // \"++\" \u304c\u542b\u307e\u308c\u3066\u3044\u308b\u304b\u3092\u8abf\u3079\u308b\n    std::cout << (s.find(\"++\") != std::string::npos) << '\\n'; // true\n}\n

C++23 \u3067\u306f std::basic_string \u3068 std::basic_string_view \u306b\u3001\u6307\u5b9a\u3057\u305f\u6587\u5b57\u3084\u6587\u5b57\u5217\u304c\u542b\u307e\u308c\u308b\u304b\u3092\u8fd4\u3059 .contains(basic_string_view), .contains(charT), .contains(const charT*) \u30e1\u30f3\u30d0\u95a2\u6570\u304c\u8ffd\u52a0\u3055\u308c\u3001\u3088\u308a\u7c21\u6f54\u306b\u66f8\u3051\u308b\u3088\u3046\u306b\u306a\u308a\u307e\u3057\u305f\u3002

#include <iostream>\n#include <string>\n\nint main()\n{\n    std::string s = \"C++23\";\n\n    std::cout << std::boolalpha;\n\n    // '4' \u304c\u542b\u307e\u308c\u3066\u3044\u308b\u304b\u3092\u8abf\u3079\u308b\n    std::cout << s.contains('4') << '\\n'; // false\n\n    // \"++\" \u304c\u542b\u307e\u308c\u3066\u3044\u308b\u304b\u3092\u8abf\u3079\u308b\n    std::cout << s.contains(\"++\") << '\\n'; // true\n}\n

\u306a\u304a\u3001\u6307\u5b9a\u3057\u305f\u6587\u5b57\u5217\u304b\u3089\u59cb\u307e\u308b\u304b\u3092\u8abf\u3079\u308b .starts_with(), \u6307\u5b9a\u3057\u305f\u6587\u5b57\u5217\u3067\u7d42\u308f\u308b\u304b\u3092\u8abf\u3079\u308b .ends_with() \u30e1\u30f3\u30d0\u95a2\u6570\u304c C++20 \u3067\u8ffd\u52a0\u3055\u308c\u3066\u3044\u307e\u3059\u3002

"},{"location":"standardization/cpp23/#stdto_underlying-p1682r3","title":"\u5217\u6319\u578b\u306e\u5024\u3092\u57fa\u5e95\u578b\u306b\u5909\u63db\u3059\u308b std::to_underlying() (P1682R3)","text":"

\u3053\u308c\u307e\u3067 enum class \u3092\u57fa\u5e95\u578b\u306e\u6574\u6570\u5024\u3078\u9069\u5207\u306b\u5909\u63db\u3059\u308b\u306b\u306f static_cast<std::underlying_type_t<Enum>>(e) \u3068\u66f8\u304f\u5fc5\u8981\u304c\u3042\u308a\u307e\u3057\u305f\u3002C++23 \u3067\u306f\u3053\u308c\u3092 std::to_underlying(e) \u3068\u66f8\u3051\u308b\u3088\u3046\u306b\u306a\u308a\u307e\u3057\u305f\u3002

#include <iostream>\n#include <utility>\n\nenum class State : char\n{\n    Open, Closed\n};\n\nenum class Terrain\n{\n    Open, Mountain, River, Ocean\n};\n\nint main()\n{\n    auto a = std::to_underlying(State::Open); // c \u306f char\n\n    auto b = std::to_underlying(Terrain::Mountain); // b \u306f int\n}\n
"},{"location":"standardization/cpp23/#stdstringstream-stdspan-stdspanstream-p0448r4","title":"std::stringstream \u3068\u7570\u306a\u308a\u3001\u5185\u90e8\u30d0\u30c3\u30d5\u30a1\u306b std::span \u3092\u7528\u3044\u308b std::spanstream (P0448R4)","text":"

std::stringstream \u306f\u5185\u90e8\u306e\u30d0\u30c3\u30d5\u30a1\u3092\u52d5\u7684\u306b\u78ba\u4fdd\u3059\u308b\u3082\u306e\u3067\u3057\u305f\u304c\u3001C++23 \u3067\u8ffd\u52a0\u3055\u308c\u305f std::spanstream \u306f std::span \u3092\u30d0\u30c3\u30d5\u30a1\u3068\u3057\u3066\u7528\u3044\u308b\u3053\u3068\u304c\u3067\u304d\u308b\u3088\u3046\u306b\u306a\u308a\u307e\u3057\u305f\u3002\u4f8b\u3048\u3070\u3001\u30b9\u30bf\u30c3\u30af\u306b\u78ba\u4fdd\u3057\u305f\u56fa\u5b9a\u30b5\u30a4\u30ba\u306e\u30d0\u30c3\u30d5\u30a1\u3092\u5272\u308a\u5f53\u3066\u308b\u3053\u3068\u304c\u3067\u304d\u307e\u3059\u3002

# include <iostream>\n# include <string_view>\n# include <spanstream>\n# include <sstream>\n\nint main()\n{\n    const char input[] = \"11 22 33\";\n\n    // C++23\n    {\n        std::ispanstream is{ input }; // span \u3068\u3057\u3066\u30d0\u30c3\u30d5\u30a1\u3092\u6e21\u3059\n        int a, b, c;\n        is >> a >> b >> c;\n\n        char buffer[30]{};\n        std::ospanstream os{ buffer }; // span \u3068\u3057\u3066\u30d0\u30c3\u30d5\u30a1\u3092\u6e21\u3059\n        os << (a * 100) << (b * 100) << (c * 100);\n        std::cout << std::string_view{ os.span() } << '\\n';\n    }\n\n    // (\u6bd4\u8f03) std::stringstream\n    {\n        std::istringstream is{ input }; // std::string \u304c\u4f5c\u3089\u308c\u308b\n        int a, b, c;\n        is >> a >> b >> c;\n\n        std::ostringstream os; // \u5185\u90e8\u30d0\u30c3\u30d5\u30a1\u306f\u52d5\u7684\u306b\u78ba\u4fdd\u3055\u308c\u308b\n        os << (a * 100) << (b * 100) << (c * 100);\n        std::cout << os.str() << '\\n';\n    }\n}\n
"},{"location":"standardization/cpp23/#type_infooperator-constexpr-p1328r1","title":"type_info::operator==() \u304c constexpr \u306b (P1328R1)","text":"

C++20 \u3067 typeid \u304c constexpr \u306e\u6587\u8108\u3067\u4f7f\u3048\u308b\u3088\u3046\u306b\u306a\u308a\u307e\u3057\u305f\u304c\u3001\u623b\u308a\u5024\u306e std::type_info \u306b\u306f constexpr \u306e\u30e1\u30f3\u30d0\u95a2\u6570\u304c\u7121\u304f\u5b9f\u7528\u6027\u304c\u3042\u308a\u307e\u305b\u3093\u3067\u3057\u305f\u3002C++23 \u3067\u306f std::type_info::operator== \u304c constexpr \u306b\u306a\u308a\u307e\u3057\u305f\u3002

#include <iostream>\n#include <typeinfo>\n\nstruct IShape\n{\n    virtual ~IShape() = default;\n};\n\nstruct Circle : IShape\n{\n    double x, y, r;\n};\n\nint main()\n{\n    if constexpr (typeid(IShape) != typeid(Circle))\n    {\n        std::cout << \"typeid(IShape) != typeid(Circle))\\n\";\n    }\n}\n
"},{"location":"standardization/cpp23/#stdstack-stdqueue-p1425r4","title":"std::stack \u3068 std::queue \u306b\u3001\u30a4\u30c6\u30ec\u30fc\u30bf\u30da\u30a2\u3092\u3068\u308b\u30b3\u30f3\u30b9\u30c8\u30e9\u30af\u30bf\u30aa\u30fc\u30d0\u30fc\u30ed\u30fc\u30c9\u3092\u8ffd\u52a0 (P1425R4)","text":"

std::stack \u3068 std::queue \u306b\u306f\u3001\u30a4\u30c6\u30ec\u30fc\u30bf\u30da\u30a2\u3092\u3068\u308b\u30b3\u30f3\u30b9\u30c8\u30e9\u30af\u30bf\u304c\u7121\u304f\u3001\u4ed6\u306e\u30b3\u30f3\u30c6\u30ca\u3084\u30b3\u30f3\u30c6\u30ca\u30a2\u30c0\u30d7\u30bf\u3068\u4e00\u8cab\u6027\u304c\u7121\u304b\u3063\u305f\u305f\u3081\u3001C++23 \u3067\u8ffd\u52a0\u3055\u308c\u307e\u3057\u305f\u3002\u3053\u308c\u306f\u3001C++23 \u3067\u8ffd\u52a0\u3055\u308c\u305f ranges::to \u306e\u5185\u90e8\u5b9f\u88c5\u304c\u8907\u96d1\u306b\u306a\u308b\u306e\u3092\u9632\u3050\u3053\u3068\u306b\u3082\u8ca2\u732e\u3057\u307e\u3059\u3002

#include <vector>\n#include <stack>\n#include <queue>\n\nint main()\n{\n    std::vector<int> v = { 10, 20, 30, 40 };\n    std::stack<int> s(v.begin(), v.end());\n    std::queue<int> q(v.begin(), v.end());\n}\n
"},{"location":"standardization/cppx/","title":"C++23, C++26 \u4ee5\u964d\u306b\u5411\u3051\u305f\u63d0\u6848","text":"

Info

C++23 \u306e\u898f\u683c\u30c9\u30e9\u30d5\u30c8\u5165\u308a\u304c\u6c7a\u307e\u3063\u305f\u6a5f\u80fd\u306f C++23 \u306e\u65b0\u6a5f\u80fd \u306b\u79fb\u52d5\u3057\u307e\u3059\u3002

C++ \u6a19\u6e96\u5316\u59d4\u54e1\u4f1a\u3067\u8b70\u8ad6\u304c\u9032\u884c\u4e2d\u306e\u304a\u3082\u306a\u63d0\u6848\u3067\u3059\u3002\u307e\u3060\u63d0\u6848\u6bb5\u968e\u3067\u3042\u308b\u305f\u3081\u3001\u59d4\u54e1\u4f1a\u306b\u3088\u3063\u3066\u59a5\u5f53\u3067\u306a\u3044\u3068\u5224\u65ad\u3055\u308c\u305f\u5834\u5408\u306f\u898f\u683c\u306b\u306f\u63a1\u629e\u3055\u308c\u307e\u305b\u3093\u3002\u63d0\u6848\u5185\u5bb9\u306f\u63a1\u629e\u307e\u3067\u4f55\u5ea6\u3082\u5909\u66f4\u3055\u308c\u308b\u3053\u3068\u304c\u3042\u308a\u307e\u3059\u3002

"},{"location":"standardization/cppx/#_1","title":"\u6a19\u6e96\u30e9\u30a4\u30d6\u30e9\u30ea \u30e2\u30b8\u30e5\u30fc\u30eb","text":"

<iostream> \u3084 <vector> \u306a\u3069\u3001\u3059\u3079\u3066\u306e C++ \u6a19\u6e96\u30e9\u30a4\u30d6\u30e9\u30ea\u30d8\u30c3\u30c0\u3092\u30e2\u30b8\u30e5\u30fc\u30eb\u3068\u3057\u3066\u63d0\u4f9b\u3059\u308b\u63d0\u6848\u3067\u3059\u3002\u8a00\u8a9e\u6a5f\u80fd\u3068\u3057\u3066\u306e\u30e2\u30b8\u30e5\u30fc\u30eb\u306f C++20 \u306b\u5c0e\u5165\u3055\u308c\u307e\u3057\u305f\u304c\u3001\u6a19\u6e96\u30e9\u30a4\u30d6\u30e9\u30ea\u3078\u306e\u5c0e\u5165\u306f\u8b70\u8ad6\u304c\u9593\u306b\u5408\u308f\u305a\u3001C++23 \u306b\u5148\u9001\u308a\u3055\u308c\u307e\u3057\u305f\u3002\u6a19\u6e96\u30e9\u30a4\u30d6\u30e9\u30ea\u306e\u30e2\u30b8\u30e5\u30fc\u30eb\u3078\u306e\u79fb\u884c\u306b\u5408\u308f\u305b\u3066\u3001\u6a19\u6e96\u30e9\u30a4\u30d6\u30e9\u30ea\u3092\u518d\u7de8\u6210\u3059\u308b\u63d0\u6848\u3082\u51fa\u3055\u308c\u3066\u3044\u307e\u3059\u3002

"},{"location":"standardization/cppx/#operator","title":"operator[] \u306b\u8907\u6570\u306e\u5f15\u6570","text":"

m[i, j, k] \u306e\u3088\u3046\u306b\u3001operator[] \u306e\u5f15\u6570\u306b\u8907\u6570\u306e\u5024\u3092\u6e21\u305b\u308b\u3088\u3046\u306b\u3059\u308b\u63d0\u6848\u3067\u3059\u3002\u591a\u6b21\u5143\u914d\u5217\u306e\u8981\u7d20\u306b\u7c21\u6f54\u306a\u5f0f\u3067\u30a2\u30af\u30bb\u30b9\u3067\u304d\u308b\u3088\u3046\u306b\u306a\u308a\u307e\u3059\u3002\u3053\u306e\u66f8\u304d\u65b9\u306f\u3001C++17 \u898f\u683c\u3067\u306f\u30b3\u30f3\u30de\u6f14\u7b97\u5b50\u3068\u89e3\u91c8\u3055\u308c\u3066 m[k] \u306b\u306a\u3063\u3066\u3057\u307e\u3046\u305f\u3081\u3001\u307e\u305a\u306f\u73fe\u884c\u306e\u6587\u6cd5\u3092 deprecated \u306b\u3059\u308b\u63d0\u6848\u304c\u63d0\u51fa\u3055\u308c\u3066\u3044\u307e\u3059\u3002std::span \u306e\u591a\u6b21\u5143\u7248\u3067\u3042\u308b std::mdspan \u306e\u63d0\u6848\u3067\u306e\u6d3b\u7528\u3082\u671f\u5f85\u3055\u308c\u307e\u3059\u3002

"},{"location":"standardization/cppx/#api","title":"\u4f4e\u30ec\u30d9\u30eb \u30aa\u30fc\u30c7\u30a3\u30aa API","text":"

\u97f3\u58f0\u518d\u751f\u30fb\u9332\u97f3\u3092\u884c\u3046\u4f4e\u30ec\u30d9\u30eb API std::audio \u3092\u8ffd\u52a0\u3059\u308b\u63d0\u6848\u3067\u3059\u3002\u4ee5\u524d\u9813\u632b\u3057\u305f 2D Graphics API \u306e\u6a19\u6e96\u5316\u306b\u6bd4\u3079\u308c\u3070\u3001\u67af\u308c\u3066\u3044\u308b\u6280\u8853\u306a\u306e\u3067\u5b9f\u73fe\u53ef\u80fd\u6027\u306f\u4f4e\u304f\u306f\u306a\u3055\u305d\u3046\u3067\u3059\u3002\u6ce2\u5f62\u30c7\u30fc\u30bf\u3092\u30aa\u30fc\u30c7\u30a3\u30aa\u30c7\u30d0\u30a4\u30b9\u3068\u3084\u308a\u53d6\u308a\u3059\u308b\u3053\u3068\u304c\u4e3b\u8981\u306a\u5f79\u5272\u3067\u3001\u97f3\u58f0\u30b3\u30fc\u30c7\u30c3\u30af\u3084\u30d5\u30a3\u30eb\u30bf\u306a\u3069\u306e\u6a5f\u80fd\u306f\u63d0\u4f9b\u3057\u307e\u305b\u3093\u3002\u5b9f\u9a13\u7684\u306a\u5b9f\u88c5\u3092\u516c\u958b\u3057\u3066\u3001\u8a2d\u8a08\u306b\u95a2\u3059\u308b\u30d5\u30a3\u30fc\u30c9\u30d0\u30c3\u30af\u3092\u96c6\u3081\u3066\u3044\u308b\u6bb5\u968e\u3067\u3059\u3002

"},{"location":"standardization/cppx/#_2","title":"\u30cd\u30c3\u30c8\u30ef\u30fc\u30af","text":"

\u30cd\u30c3\u30c8\u30ef\u30fc\u30af\u6a5f\u80fd\u3092\u6a19\u6e96\u30e9\u30a4\u30d6\u30e9\u30ea\u306b\u5c0e\u5165\u3059\u308b\u63d0\u6848\u3067\u3059\u3002Boost.Asio \u3092\u30d9\u30fc\u30b9\u306b\u3001\u30bd\u30b1\u30c3\u30c8\u901a\u4fe1\u3001\u540d\u524d\u89e3\u6c7a\u3001\u30a4\u30f3\u30bf\u30fc\u30cd\u30c3\u30c8\u30d7\u30ed\u30c8\u30b3\u30eb\u3001\u30bf\u30a4\u30de\u30fc\u3001\u30d0\u30c3\u30d5\u30a1\u3001\u975e\u540c\u671f\u51e6\u7406\u306e\u305f\u3081\u306e\u5404\u7a2e\u6a5f\u80fd\u3092\u5b9f\u88c5\u3059\u308b\u4e88\u5b9a\u3067\u3059\u3002

"},{"location":"standardization/cppx/#_3","title":"\u30ea\u30d5\u30ec\u30af\u30b7\u30e7\u30f3","text":"

C++ \u306b\u30ea\u30d5\u30ec\u30af\u30b7\u30e7\u30f3\u3092\u5c0e\u5165\u3059\u308b\u63d0\u6848\u3067\u3059\u3002C# \u306e\u3088\u3046\u306a\u52d5\u7684\u306a\u30ea\u30d5\u30ec\u30af\u30b7\u30e7\u30f3\u3067\u306f\u306a\u304f\u3001\u30b3\u30f3\u30d1\u30a4\u30eb\u6642\u306b\u60c5\u5831\u3092\u53d6\u5f97\u3059\u308b\u9759\u7684\u306a\u30ea\u30d5\u30ec\u30af\u30b7\u30e7\u30f3\u3067\u3059\u3002

#include <experimental/reflect>\n\nusing namespace std::experimental::reflect;\n\nconstexpr void f(int arg1, int arg2);\n\nusing f_mobj = reflexpr(f(0, 1));\n\nauto name = get_name_v<get_element_t<0, get_parameters_t<f_mobj>>>; // \"arg1\"\n\nauto is_constexpr_function = is_constexpr<f_mobj>::value; // true\n

\u3053\u306e\u6a5f\u80fd\u3092\u524d\u63d0\u3068\u3057\u305f\u30e1\u30bf\u30af\u30e9\u30b9\u306e\u63d0\u6848\u3082\u8b70\u8ad6\u304c\u9032\u3093\u3067\u3044\u307e\u3059\u3002

"},{"location":"standardization/cppx/#_4","title":"\u30d1\u30bf\u30fc\u30f3\u30de\u30c3\u30c1\u30f3\u30b0","text":"

std::tuple \u3084 std::variant \u3067 C++ \u306b\u304a\u3051\u308b\u4ee3\u6570\u7684\u30c7\u30fc\u30bf\u578b\u306e\u8868\u73fe\u304c\u5e83\u304c\u308a\u307e\u3057\u305f\u304c\u3001\u305d\u308c\u3089\u3092\u6271\u3046\u305f\u3081\u306e std::apply \u3084 std::visit \u306f\u8907\u96d1\u3067\u591a\u304f\u306e\u5236\u7d04\u304c\u3042\u308a\u307e\u3059\u3002C++ \u4ee5\u5916\u306e\u30d7\u30ed\u30b0\u30e9\u30df\u30f3\u30b0\u8a00\u8a9e\u306b\u306a\u3089\u3044\u3001\u30d1\u30bf\u30fc\u30f3\u30de\u30c3\u30c1\u30f3\u30b0\u3092\u5c0e\u5165\u3057\u3066\u3053\u306e\u554f\u984c\u3092\u89e3\u6c7a\u3059\u308b\u63d0\u6848\u3067\u3059\u3002\u3053\u306e\u63d0\u6848\u3067\u306f\u3001\u3088\u308a\u5ba3\u8a00\u7684\u3067\u69cb\u9020\u5316\u3055\u308c\u305f switch \u6587\u3068\u3057\u3066\u3001inspect \u5f0f\u3068\u3044\u3046\u65b0\u3057\u3044\u6587\u6cd5\u306e\u5c0e\u5165\u3092\u63d0\u6848\u3057\u3066\u3044\u307e\u3059\u3002

\u30d1\u30bf\u30fc\u30f3\u30de\u30c3\u30c1\u30f3\u30b0\u306e\u5b9f\u9a13\u7684\u306a\u5b9f\u88c5\u3092 Compiler Explorer \u4e0a\u3067\u8a66\u3059\u3053\u3068\u304c\u3067\u304d\u307e\u3059\u3002

// inspect \u5f0f\u306e\u6587\u6cd5\ninspect constexpr_opt (init-statement_opt condition) trailing-return-type_opt\n{\n    pattern guard_opt => statement\n    pattern guard_opt => !_opt { statement-seq }\n    ...\n};\n
"},{"location":"standardization/cppx/#_5","title":"\u6574\u6570\u306e\u30de\u30c3\u30c1\u30f3\u30b0","text":"\u73fe\u5728\u63d0\u6848
switch (code)\n{\n    case 200: std::cout << \"OK\\n\"; break;\n    case 404: std::cout << \"Not Found\\n\"; break;\n    default : std::cout << \"don't care\\n\";\n}\n
inspect (code)\n{\n    200 => { std::cout << \"OK\\n\" }\n    404 => { std::cout << \"Not Found\\n\" }\n    __  => { std::cout << \"don't care\\n\" } // __ \u306f\u30ef\u30a4\u30eb\u30c9\u30ab\u30fc\u30c9\u30d1\u30bf\u30fc\u30f3\n};\n
"},{"location":"standardization/cppx/#_6","title":"\u6587\u5b57\u5217\u306e\u30de\u30c3\u30c1\u30f3\u30b0","text":"\u73fe\u5728\u63d0\u6848
if (s == \"png\")\n{\n    std::cout << \"PNG Image\\n\";\n}\nelse if (s == \"jpg\")\n{\n    std::cout << \"JPEG Image\\n\";\n}\nelse\n{\n    std::cout << \"Not supported\\n\";\n}\n
inspect (s)\n{\n    \"png\" => { std::cout << \"PNG Image\\n\"; }\n    \"jpg\" => { std::cout << \"JPEG Image\\n\"; }\n    __    => { std::cout << \"Not supported\\n\"; }\n};\n
"},{"location":"standardization/cppx/#tuples","title":"Tuples \u306e\u30de\u30c3\u30c1\u30f3\u30b0","text":"\u73fe\u5728\u63d0\u6848
auto&& [x, y] = pos;\nif (x == 0 && y == 0)\n{\n    std::cout << \"on the origin\\n\";\n}\nelse if (y == 0)\n{\n    std::cout << \"on X-axis\\n\";\n}\nelse if (x == 0)\n{\n    std::cout << \"on Y-axis\\n\";\n}\nelse\n{\n    std::cout << x << \", \" << y << '\\n';\n}\n
inspect (pos)\n{\n    [0, 0] => { std::cout << \"on the origin\\n\"; }\n    [x, 0] => { std::cout << \"on the X-axis\\n\"; }\n    [0, y] => { std::cout << \"on the Y-axis\\n\"; }\n    [x, y] => { std::cout << x << \", \" << y << '\\n'; }\n};\n
"},{"location":"standardization/cppx/#variants","title":"Variants \u306e\u30de\u30c3\u30c1\u30f3\u30b0","text":"\u73fe\u5728\u63d0\u6848
struct Visitor\n{\n    void operator()(int i) const\n    {\n        std::cout << \"int: \" << i << '\\n';\n    }\n\n    void operator()(float f) const\n    {\n        std::cout << \"float: \" << f << '\\n';\n    }\n};\n\nint main()\n{\n    std::variant<int, float> v = 3.14f;\n\n    std::visit(Visitor{}, v);\n}\n
int main()\n{\n    std::variant<int, float> v = 3.14f;\n\n    inspect (v)\n    {\n        <int> i   => { std::cout << \"int: \" << i << '\\n'; }\n        <float> f => { std::cout << \"float: \" << f << '\\n'; }\n    }\n};\n
"},{"location":"standardization/cppx/#polymorphic-types","title":"Polymorphic Types \u306e\u30de\u30c3\u30c1\u30f3\u30b0","text":"\u73fe\u5728\u63d0\u6848
struct Shape\n{\n    virtual ~Shape() = default;\n    virtual double area() const = 0;\n};\n\nstruct Circle : Shape\n{\n    double radius;\n    double area() const override\n    {\n        return std::numbers::pi * radius * radius;\n    }\n};\n\nstruct Rectangle : Shape\n{\n    double width, height;\n    double area() const override\n    {\n        return width * height;\n    }\n};\n
struct Shape\n{\n    virtual ~Shape() = default;\n};\n\nstruct Circle : Shape\n{\n    double radius;\n};\n\nstruct Rectangle : Shape\n{\n    double width, height;\n};\n\ndouble Area(const Shape& shape)\n{\n    return inspect (shape)\n    {\n        <Circle>    [r]     => std::numbers::pi * r * r;\n        <Rectangle> [w, h]  => w * h;\n    }\n};\n
"},{"location":"standardization/cppx/#_7","title":"\u62e1\u5f35\u6d6e\u52d5\u5c0f\u6570\u70b9\u6570\u578b","text":"

float, double, long double \u4ee5\u5916\u306e\u6d6e\u52d5\u5c0f\u6570\u70b9\u6570\u578b\u306e\u5b9f\u88c5\u3092\u53ef\u80fd\u306b\u3059\u308b\u63d0\u6848\u3067\u3059\u3002\u30b3\u30f3\u30d4\u30e5\u30fc\u30bf\u30b0\u30e9\u30d5\u30a3\u30c3\u30af\u30b9\u3084\u6a5f\u68b0\u5b66\u7fd2\u5206\u91ce\u3067\u4f7f\u7528\u983b\u5ea6\u304c\u5897\u3048\u3066\u3044\u308b\u534a\u7cbe\u5ea6 (16-bit) \u6d6e\u52d5\u5c0f\u6570\u70b9\u6570\u578b\u3092\u3001\u7d44\u307f\u8fbc\u307f\u578b\u3068\u3057\u3066\u63d0\u4f9b\u3067\u304d\u308b\u3088\u3046\u306b\u3059\u308b\u3053\u3068\u304c\u4e3b\u306a\u76ee\u7684\u3067\u3059\u3002

"},{"location":"standardization/cppx/#unicode","title":"Unicode \u540d\u306b\u3088\u308b\u6587\u5b57\u30a8\u30b9\u30b1\u30fc\u30d7","text":"

Python \u306a\u3069\u3067\u63a1\u7528\u3055\u308c\u3066\u3044\u308b\u3001Unicode \u540d\u306b\u3088\u308b\u6587\u5b57\u30a8\u30b9\u30b1\u30fc\u30d7\u3092\u5c0e\u5165\u3059\u308b\u63d0\u6848\u3067\u3059\u3002\u4e0d\u53ef\u8996\u6587\u5b57\u3084\u4f3c\u3066\u3044\u308b\u5b57\u5f62\u3092\u6587\u5b57 / \u6587\u5b57\u5217\u30ea\u30c6\u30e9\u30eb\u3067\u8a18\u8ff0\u3059\u308b\u969b\u306b\u5f79\u306b\u7acb\u3061\u307e\u3059\u3002

std::string a =\"\\N{ZERO WIDTH SPACE}\"; // \"\u200b\" (\u4e0d\u53ef\u8996\u306e\u7a7a\u767d)\nstd::string b = \"\\N{GREEK CAPITAL LETTER OMEGA}\"; // \"\u03a9\"\nstd::string c = \"\\N{OHM SIGN}\"; // \"\u2126\"\n
"},{"location":"standardization/cppx/#stdstringoperatorchar","title":"std::string::operator=(char) \u306e\u554f\u984c\u306e\u89e3\u6d88","text":"

std::string::operator=(char) \u306b\u3088\u3063\u3066\u6b21\u306e\u3088\u3046\u306a\u30b3\u30fc\u30c9\u304c\u30b3\u30f3\u30d1\u30a4\u30eb\u3067\u304d\u3066\u3057\u307e\u3046\u554f\u984c\u306e\u89e3\u6c7a\u3092\u56f3\u308b\u63d0\u6848\u3067\u3059\u3002\u3053\u306e\u95a2\u6570\u81ea\u4f53\u3092 deprecated \u306b\u3059\u308b\u3053\u3068\u3082\u89e3\u6c7a\u6cd5\u306e\u5019\u88dc\u3068\u3057\u3066\u6319\u3052\u3089\u308c\u3066\u3044\u307e\u3059\u3002

std::string s;\ns = 48.0;\nstd::cout << s << '\\n';\n
"},{"location":"standardization/cppx/#stdprint","title":"std::print()","text":"

C++20 \u306e std::format \u3092\u30d9\u30fc\u30b9\u306b\u3057\u305f\u65b0\u3057\u3044\u6a19\u6e96\u51fa\u529b API, std::print() \u3092\u5c0e\u5165\u3059\u308b\u63d0\u6848\u3067\u3059\u3002std::cout \u306b\u6bd4\u3079\u3066\u3001Unicode \u5bfe\u5fdc\u3001\u4f7f\u3044\u3084\u3059\u3055\u3084\u5b9f\u884c\u6642\u6027\u80fd\u306e\u5411\u4e0a\u3001\u30d0\u30a4\u30ca\u30ea\u30b5\u30a4\u30ba\u306e\u524a\u6e1b\u304c\u671f\u5f85\u3055\u308c\u307e\u3059\u3002

std::print(\"Hello, {}!\", name);\n
"},{"location":"standardization/cppx/#_8","title":"\u30bd\u30fc\u30c8\u6e08\u307f\u914d\u5217\u306b\u3088\u308b\u9023\u60f3\u30b3\u30f3\u30c6\u30ca","text":"

\u30bd\u30fc\u30c8\u6e08\u307f\u914d\u5217\uff08\u30c7\u30d5\u30a9\u30eb\u30c8\u3067\u306f vector\uff09\u3092\u4f7f\u3063\u305f\u9023\u60f3\u30b3\u30f3\u30c6\u30ca\u5b9f\u88c5 std::flat_set, std::flat_multiset, std::flat_map, std::flat_multimap \u3092\u6a19\u6e96\u30e9\u30a4\u30d6\u30e9\u30ea\u306b\u8ffd\u52a0\u3059\u308b\u63d0\u6848\u3067\u3059\u3002

"},{"location":"standardization/cppx/#executors","title":"Executors","text":""},{"location":"standardization/cppx/#_9","title":"\u30b3\u30eb\u30fc\u30c1\u30f3\u306e\u30e9\u30a4\u30d6\u30e9\u30ea\u30b5\u30dd\u30fc\u30c8","text":""},{"location":"standardization/cppx/#_10","title":"\u5951\u7d04\u30d7\u30ed\u30b0\u30e9\u30df\u30f3\u30b0","text":""},{"location":"standardization/header/","title":"C++ \u6a19\u6e96\u30e9\u30a4\u30d6\u30e9\u30ea","text":"

C++ \u306e\u898f\u683c\u3067\u5b9a\u3081\u3089\u308c\u305f\u6a19\u6e96\u30e9\u30a4\u30d6\u30e9\u30ea\u306b\u542b\u307e\u308c\u308b\u30d8\u30c3\u30c0\u306e\u4e00\u89a7\u3067\u3059\u3002 \u30ea\u30d5\u30a1\u30ec\u30f3\u30b9 Web \u30b5\u30a4\u30c8\u306f

\u306b\u5bfe\u5fdc\u3057\u3066\u3044\u307e\u3059\u3002

"},{"location":"standardization/header/#_1","title":"\u6a19\u6e96\u30e9\u30a4\u30d6\u30e9\u30ea","text":"\u30d8\u30c3\u30c0 \u30ea\u30d5\u30a1\u30ec\u30f3\u30b9 \u5b9f\u88c5 \u30d0\u30fc\u30b8\u30e7\u30f3 <algorithm> en / jp / cpprefjp libstdc++ / libc++ / MSVC <any> en / jp / cpprefjp libstdc++ / libc++ / MSVC since C++17 <array> en / jp / cpprefjp libstdc++ / libc++ / MSVC since C++11 <atomic> en / jp / cpprefjp libstdc++ / libc++ / MSVC since C++11 <barrier> en / jp / cpprefjp libstdc++ / libc++ / MSVC since C++20 <bit> en / jp / cpprefjp libstdc++ / libc++ / MSVC since C++20 <bitset> en / jp / cpprefjp libstdc++ / libc++ / MSVC <cassert> en / jp / cpprefjp libstdc++ / libc++ / MSVC <cctype> en / jp / cpprefjp libstdc++ / libc++ / MSVC <cerrno> en / jp / cpprefjp libstdc++ / libc++ / MSVC <cfenv> en / jp / cpprefjp libstdc++ / libc++ / MSVC since C++11 <cfloat> en / jp / cpprefjp libstdc++ / libc++ / MSVC <charconv> en / jp / cpprefjp libstdc++ / libc++ / MSVC since C++17 <chrono> en / jp / cpprefjp libstdc++ / libc++ / MSVC since C++11 <cinttypes> en / jp / cpprefjp libstdc++ / libc++ / MSVC since C++11 <climits> en / jp / cpprefjp libstdc++ / libc++ / MSVC <clocale> en / jp / cpprefjp libstdc++ / libc++ / MSVC <cmath> en / jp / cpprefjp libstdc++ / libc++ / MSVC <compare> en / jp / cpprefjp libstdc++ / libc++ / MSVC since C++20 <complex> en / jp / cpprefjp libstdc++ / libc++ / MSVC <concepts> en / jp / cpprefjp libstdc++ / libc++ / MSVC since C++20 <condition_variable> en / jp / cpprefjp libstdc++ / libc++ / MSVC since C++11 <coroutine> en / jp / cpprefjp libstdc++ / libc++ / MSVC since C++20 <csetjmp> en / jp / cpprefjp libstdc++ / libc++ / MSVC <csignal> en / jp / cpprefjp libstdc++ / libc++ / MSVC <cstdarg> en / jp / cpprefjp libstdc++ / libc++ / MSVC <cstddef> en / jp / cpprefjp libstdc++ / libc++ / MSVC <cstdint> en / jp / cpprefjp libstdc++ / libc++ / MSVC since C++11 <cstdio> en / jp / cpprefjp libstdc++ / libc++ / MSVC <cstdlib> en / jp / cpprefjp libstdc++ / libc++ / MSVC <cstring> en / jp / cpprefjp libstdc++ / libc++ / MSVC <ctime> en / jp / cpprefjp libstdc++ / libc++ / MSVC <cuchar> en / jp / cpprefjp libstdc++ / libc++ / MSVC since C++11 <cwchar> en / jp / cpprefjp libstdc++ / libc++ / MSVC <cwctype> en / jp / cpprefjp libstdc++ / libc++ / MSVC <debugging> en / jp / cpprefjp libstdc++ / libc++ / MSVC since C++26 <deque> en / jp / cpprefjp libstdc++ / libc++ / MSVC <exception> en / jp / cpprefjp libstdc++ / libc++ / MSVC <execution> en / jp / cpprefjp libstdc++ / libc++ / MSVC since C++17 <expected> en / jp / cpprefjp libstdc++ / libc++ / MSVC since C++23 <filesystem> en / jp / cpprefjp libstdc++ / libc++ / MSVC since C++17 <flat_set> en / jp / cpprefjp libstdc++ / libc++ / MSVC since C++23 <flat_map> en / jp / cpprefjp libstdc++ / libc++ / MSVC since C++23 <format> en / jp / cpprefjp libstdc++ / libc++ / MSVC since C++20 <forward_list> en / jp / cpprefjp libstdc++ / libc++ / MSVC since C++11 <fstream> en / jp / cpprefjp libstdc++ / libc++ / MSVC <functional> en / jp / cpprefjp libstdc++ / libc++ / MSVC <future> en / jp / cpprefjp libstdc++ / libc++ / MSVC since C++11 <generator> en / jp / cpprefjp libstdc++ / libc++ / MSVC since C++23 <hazard_pointer> en / jp / cpprefjp libstdc++ / libc++ / MSVC since C++26 <initializer_list> en / jp / cpprefjp libstdc++ / libc++ / MSVC since C++11 <iomanip> en / jp / cpprefjp libstdc++ / libc++ / MSVC <ios> en / jp / cpprefjp libstdc++ / libc++ / MSVC <iosfwd> en / jp / cpprefjp libstdc++ / libc++ / MSVC <iostream> en / jp / cpprefjp libstdc++ / libc++ / MSVC <istream> en / jp / cpprefjp libstdc++ / libc++ / MSVC <iterator> en / jp / cpprefjp libstdc++ / libc++ / MSVC <latch> en / jp / cpprefjp libstdc++ / libc++ / MSVC since C++20 <limits> en / jp / cpprefjp libstdc++ / libc++ / MSVC <linalg> en / jp / cpprefjp libstdc++ / libc++ / MSVC since C++26 <list> en / jp / cpprefjp libstdc++ / libc++ / MSVC <locale> en / jp / cpprefjp libstdc++ / libc++ / MSVC <map> en / jp / cpprefjp libstdc++ / libc++ / MSVC <mdspan> en / jp / cpprefjp libstdc++ / libc++ / MSVC since C++23 <memory> en / jp / cpprefjp libstdc++ / libc++ / MSVC <memory_resource> en / jp / cpprefjp libstdc++ / libc++ / MSVC since C++17 <mutex> en / jp / cpprefjp libstdc++ / libc++ / MSVC since C++11 <new> en / jp / cpprefjp libstdc++ / libc++ / MSVC <numbers> en / jp / cpprefjp libstdc++ / libc++ / MSVC since C++20 <numeric> en / jp / cpprefjp libstdc++ / libc++ / MSVC <optional> en / jp / cpprefjp libstdc++ / libc++ / MSVC since C++17 <ostream> en / jp / cpprefjp libstdc++ / libc++ / MSVC <print> en / jp / cpprefjp libstdc++ / libc++ / MSVC since C++23 <queue> en / jp / cpprefjp libstdc++ / libc++ / MSVC <random> en / jp / cpprefjp libstdc++ / libc++ / MSVC since C++11 <ranges> en / jp / cpprefjp libstdc++ / libc++ / MSVC since C++20 <ratio> en / jp / cpprefjp libstdc++ / libc++ / MSVC since C++11 <rcu> en / jp / cpprefjp libstdc++ / libc++ / MSVC since C++26 <regex> en / jp / cpprefjp libstdc++ / libc++ / MSVC since C++11 <scoped_allocator> en / jp / cpprefjp libstdc++ / libc++ / MSVC since C++11 <semaphore> en / jp / cpprefjp libstdc++ / libc++ / MSVC since C++20 <set> en / jp / cpprefjp libstdc++ / libc++ / MSVC <shared_mutex> en / jp / cpprefjp libstdc++ / libc++ / MSVC since C++14 <source_location> en / jp / cpprefjp libstdc++ / libc++ / MSVC since C++20 <span> en / jp / cpprefjp libstdc++ / libc++ / MSVC since C++20 <spanstream> en / jp / cpprefjp libstdc++ / libc++ / MSVC since C++23 <sstream> en / jp / cpprefjp libstdc++ / libc++ / MSVC <stack> en / jp / cpprefjp libstdc++ / libc++ / MSVC <stacktrace> en / jp / cpprefjp libstdc++ / libc++ / MSVC since C++23 <stdexcept> en / jp / cpprefjp libstdc++ / libc++ / MSVC <stdfloat> en / jp / cpprefjp libstdc++ / libc++ / MSVC since C++23 <stop_token> en / jp / cpprefjp libstdc++ / libc++ / MSVC since C++20 <streambuf> en / jp / cpprefjp libstdc++ / libc++ / MSVC <string> en / jp / cpprefjp libstdc++ / libc++ / MSVC <string_view> en / jp / cpprefjp libstdc++ / libc++ / MSVC since C++17 <syncstream> en / jp / cpprefjp libstdc++ / libc++ / MSVC since C++20 <system_error> en / jp / cpprefjp libstdc++ / libc++ / MSVC since C++11 <text_encoding> en / jp / cpprefjp libstdc++ / libc++ / MSVC since C++26 <thread> en / jp / cpprefjp libstdc++ / libc++ / MSVC since C++11 <tuple> en / jp / cpprefjp libstdc++ / libc++ / MSVC since C++11 <type_traits> en / jp / cpprefjp libstdc++ / libc++ / MSVC since C++11 <typeindex> en / jp / cpprefjp libstdc++ / libc++ / MSVC since C++11 <typeinfo> en / jp / cpprefjp libstdc++ / libc++ / MSVC <unordered_map> en / jp / cpprefjp libstdc++ / libc++ / MSVC since C++11 <unordered_set> en / jp / cpprefjp libstdc++ / libc++ / MSVC since C++11 <utility> en / jp / cpprefjp libstdc++ / libc++ / MSVC <valarray> en / jp / cpprefjp libstdc++ / libc++ / MSVC <variant> en / jp / cpprefjp libstdc++ / libc++ / MSVC since C++17 <vector> en / jp / cpprefjp libstdc++ / libc++ / MSVC <version> en / jp / cpprefjp libstdc++ / libc++ / MSVC since C++20"},{"location":"standardization/header/#_2","title":"\u975e\u63a8\u5968\u307e\u305f\u306f\u524a\u9664","text":"\u30d8\u30c3\u30c0 \u30ea\u30d5\u30a1\u30ec\u30f3\u30b9 \u5b9f\u88c5 \u30d0\u30fc\u30b8\u30e7\u30f3 <ccomplex> en / jp / cpprefjp libstdc++ / libc++ / MSVC since C++11,deprecated in C++17,removed in C++20 <ciso646> en / jp / cpprefjp libstdc++ / libc++ / MSVC removed in C++20 <codecvt> en / jp / cpprefjp libstdc++ / libc++ / MSVC since C++11,deprecated in C++17,removed in C++26 <cstdalign> en / jp / cpprefjp libstdc++ / libc++ / MSVC since C++11,deprecated in C++17,removed in C++20 <cstdbool> en / jp / cpprefjp libstdc++ / libc++ / MSVC since C++11,deprecated in C++17,removed in C++20 <ctgmath> en / jp / cpprefjp libstdc++ / libc++ / MSVC since C++11,deprecated in C++17,removed in C++20 <strstream> en / jp / cpprefjp libstdc++ / libc++ / MSVC deprecated in C++98"},{"location":"standardization/meetings/","title":"\u6a19\u6e96\u5316\u4f1a\u8b70","text":"

C++ \u3078\u306e\u63d0\u6848\u6587\u66f8\u3092\u8b70\u8ad6\u3057\u3066\u627f\u8a8d\u3059\u308b C++ \u6a19\u6e96\u5316\u59d4\u54e1\u4f1a\u306e\u5168\u4f53\u4f1a\u8b70\u306e\u958b\u50ac\u60c5\u5831\u3067\u3059\u3002

"},{"location":"standardization/meetings/#2025-kona","title":"2025 Kona","text":""},{"location":"standardization/meetings/#2025-sofia","title":"2025 Sofia","text":""},{"location":"standardization/meetings/#2025-hagenberg","title":"2025 Hagenberg","text":""},{"location":"standardization/meetings/#2024-wrocaw","title":"2024 Wroc\u0142aw","text":""},{"location":"standardization/meetings/#2024-st-louis","title":"2024 St. Louis","text":""},{"location":"standardization/meetings/#2024-tokyo","title":"2024 Tokyo","text":""},{"location":"standardization/meetings/#_2","title":"\u5834\u6240","text":""},{"location":"standardization/meetings/#2023-kona","title":"2023 Kona","text":""},{"location":"standardization/meetings/#_3","title":"\u5834\u6240","text":""},{"location":"standardization/meetings/#2023-varna","title":"2023 Varna","text":""},{"location":"standardization/meetings/#_4","title":"\u5834\u6240","text":""},{"location":"standardization/meetings/#2023-issaquah","title":"2023 Issaquah","text":""},{"location":"standardization/meetings/#_5","title":"\u5834\u6240","text":""},{"location":"standardization/meetings/#2022-kona","title":"2022 Kona","text":""},{"location":"standardization/meetings/#_6","title":"\u5834\u6240","text":""},{"location":"standardization/meetings/#july-2022-virtual","title":"July 2022 Virtual","text":""},{"location":"standardization/meetings/#_7","title":"\u5834\u6240","text":""},{"location":"standardization/meetings/#february-2022-virtual","title":"February 2022 Virtual","text":""},{"location":"standardization/meetings/#_8","title":"\u5834\u6240","text":""},{"location":"standardization/meetings/#october-2021-virtual","title":"October 2021 Virtual","text":""},{"location":"standardization/meetings/#_9","title":"\u5834\u6240","text":""},{"location":"standardization/meetings/#june-2021-virtual","title":"June 2021 Virtual","text":""},{"location":"standardization/meetings/#_10","title":"\u5834\u6240","text":""},{"location":"standardization/meetings/#_11","title":"\u53c2\u52a0\u5831\u544a","text":""},{"location":"standardization/meetings/#2021-varna","title":"2021 Varna","text":""},{"location":"standardization/meetings/#_12","title":"\u5834\u6240","text":""},{"location":"standardization/meetings/#2021-kona","title":"2021 Kona","text":""},{"location":"standardization/meetings/#_13","title":"\u5834\u6240","text":""},{"location":"standardization/meetings/#february-2021-virtual","title":"February 2021 Virtual","text":""},{"location":"standardization/meetings/#_14","title":"\u5834\u6240","text":""},{"location":"standardization/meetings/#_15","title":"\u53c2\u52a0\u5831\u544a","text":""},{"location":"standardization/meetings/#november-2020-virtual","title":"November 2020 Virtual","text":""},{"location":"standardization/meetings/#_16","title":"\u5834\u6240","text":""},{"location":"standardization/meetings/#_17","title":"\u53c2\u52a0\u5831\u544a","text":""},{"location":"standardization/meetings/#2020-new-york","title":"2020 New York","text":""},{"location":"standardization/meetings/#_18","title":"\u5834\u6240","text":""},{"location":"standardization/meetings/#2020-varna","title":"2020 Varna","text":""},{"location":"standardization/meetings/#_19","title":"\u5834\u6240","text":""},{"location":"standardization/meetings/#2020-prague","title":"2020 Prague","text":""},{"location":"standardization/meetings/#_20","title":"\u5834\u6240 / \u63d0\u6848 / \u4f1a\u8b70\u306e\u7d50\u679c","text":""},{"location":"standardization/meetings/#_21","title":"\u53c2\u52a0\u5831\u544a","text":""},{"location":"standardization/meetings/#2019-belfast","title":"2019 Belfast","text":""},{"location":"standardization/meetings/#_22","title":"\u5834\u6240 / \u63d0\u6848 / \u4f1a\u8b70\u306e\u7d50\u679c","text":""},{"location":"standardization/meetings/#_23","title":"\u53c2\u52a0\u5831\u544a","text":""},{"location":"standardization/meetings/#2019-cologne","title":"2019 Cologne","text":""},{"location":"standardization/meetings/#_24","title":"\u5834\u6240 / \u63d0\u6848 / \u4f1a\u8b70\u306e\u7d50\u679c","text":""},{"location":"standardization/meetings/#_25","title":"\u53c2\u52a0\u5831\u544a","text":""},{"location":"standardization/meetings/#_26","title":"\u89e3\u8aac","text":"

std::format \u3084 constexpr vector, using enum, constinit \u306a\u3069\u3001\u524d\u56de\u306e\u4f1a\u8b70\u307e\u3067\u306b\u304a\u304a\u3088\u305d\u5b8c\u6210\u3057\u3066\u3044\u305f\u591a\u6570\u306e\u63d0\u6848\u304c C++20 \u30c9\u30e9\u30d5\u30c8\u5165\u308a\u3057\u307e\u3057\u305f\u3002\u4e00\u65b9\u3067\u30012018 \u5e74\u306b\u30c9\u30e9\u30d5\u30c8\u5165\u308a\u3057\u3066\u3044\u305f Contracts \u306f\u5927\u5e45\u306a\u8a2d\u8a08\u306e\u898b\u76f4\u3057\u304c\u767a\u751f\u3057\u3001C++20 \u3067\u306e\u5c0e\u5165\u3092\u30ad\u30e3\u30f3\u30bb\u30eb\u3057\u3066 Study Group \u3067\u8b70\u8ad6\u3092\u7d9a\u3051\u308b\u3053\u3068\u304c\u6c7a\u307e\u308a\u307e\u3057\u305f\u3002 \u3053\u306e\u4f1a\u8b70\u3092\u3082\u3063\u3066 C++20 \u898f\u683c\u30c9\u30e9\u30d5\u30c8\u3078\u306e\u65b0\u6a5f\u80fd\u306e\u8ffd\u52a0\u306f\u7de0\u3081\u5207\u308a (Feature Freeze) \u3067\u3059\u3002\u4ee5\u964d\u306f C++20 \u898f\u683c\u5b8c\u6210\u306b\u5411\u3051\u305f\u6587\u9762\u306e\u4fee\u6b63\u3068\u3001C++23 \u4ee5\u964d\u306b\u5411\u3051\u305f\u8b70\u8ad6\u304c\u9032\u3081\u3089\u308c\u307e\u3059\u3002

"},{"location":"standardization/meetings/#2019-kona","title":"2019 Kona","text":""},{"location":"standardization/meetings/#_27","title":"\u5834\u6240 / \u63d0\u6848 / \u4f1a\u8b70\u306e\u7d50\u679c","text":""},{"location":"standardization/meetings/#_28","title":"\u53c2\u52a0\u5831\u544a","text":""},{"location":"standardization/meetings/#_29","title":"\u89e3\u8aac","text":"

\u30b3\u30eb\u30fc\u30c1\u30f3\u3068\u3001C++23 \u4ee5\u964d\u3078\u306e\u5148\u9001\u308a\u304c\u898b\u8fbc\u307e\u308c\u3066\u3044\u305f\u30e2\u30b8\u30e5\u30fc\u30eb\u306e C++20 \u5165\u308a\u304c\u627f\u8a8d\u3055\u308c\u3001C++20 \u306f C++11 \u4ee5\u6765\u306e\u5927\u578b\u30a2\u30c3\u30d7\u30c7\u30fc\u30c8\u306b\u306a\u308b\u3053\u3068\u304c\u6c7a\u307e\u308a\u307e\u3057\u305f\u3002 C++20 \u306e\u30b9\u30b1\u30b8\u30e5\u30fc\u30eb\u3067\u306f\u3001\u3053\u306e\u4f1a\u8b70\u3092\u3082\u3063\u3066 Feature Freeze \u306b\u306a\u308a\u307e\u3059\u3002\u4ed5\u69d8\u6587\u8a00\u306e\u30ec\u30d3\u30e5\u30fc\u304c\u672a\u5b8c\u4e86\u306e\u5c0f\u898f\u6a21\u306a\u63d0\u6848\u3092\u6b21\u56de\u306e Colonge \u4f1a\u8b70\u3067\u627f\u8a8d\u3057\u3001C++20 \u306e\u5168\u5bb9\u304c\u8f09\u3063\u305f\u898f\u683c\u30c9\u30e9\u30d5\u30c8\u304c\u3067\u304d\u3042\u304c\u308a\u307e\u3059\u3002

"},{"location":"standardization/meetings/#2018-san-diego","title":"2018 San Diego","text":""},{"location":"standardization/meetings/#_30","title":"\u5834\u6240 / \u63d0\u6848 / \u4f1a\u8b70\u306e\u7d50\u679c","text":""},{"location":"standardization/meetings/#_31","title":"\u53c2\u52a0\u5831\u544a","text":""},{"location":"standardization/meetings/#_32","title":"\u89e3\u8aac","text":"

Range \u30e9\u30a4\u30d6\u30e9\u30ea\u306e C++20 \u5165\u308a\u304c\u6c7a\u307e\u3063\u305f\u307b\u304b\u3001\u30b3\u30f3\u30bb\u30d7\u30c8\u306e\u77ed\u7e2e\u69cb\u6587\u3001coneteval \u306e\u8ffd\u52a0\u3084 constexpr \u306e\u5236\u9650\u7de9\u548c\u306a\u3069\u5b9a\u6570\u5f0f\u306e\u5f37\u5316\u3001\u7b26\u53f7\u4ed8\u6574\u6570\u578b\u304c 2 \u306e\u88dc\u6570\u3067\u3042\u308b\u3053\u3068\u306e\u898f\u5b9a\u3001char8_t \u578b\u306e\u8ffd\u52a0\u306a\u3069\u304c\u627f\u8a8d\u3055\u308c\u307e\u3057\u305f\u3002

"},{"location":"standardization/meetings/#2018-rapperswil","title":"2018 Rapperswil","text":""},{"location":"standardization/meetings/#_33","title":"\u5834\u6240 / \u63d0\u6848 / \u4f1a\u8b70\u306e\u7d50\u679c","text":""},{"location":"standardization/meetings/#_34","title":"\u53c2\u52a0\u5831\u544a","text":""},{"location":"standardization/meetings/#_35","title":"\u89e3\u8aac","text":"

\u5c5e\u6027\u69cb\u6587\u306b\u3088\u308b Contracts (\u5951\u7d04\u30d7\u30ed\u30b0\u30e9\u30df\u30f3\u30b0) \u306e C++20 \u5165\u308a\u304c\u6c7a\u307e\u3063\u305f\u307b\u304b\u3001STL \u3078\u306e\u30b3\u30f3\u30bb\u30d7\u30c8\u30e9\u30a4\u30d6\u30e9\u30ea\u306e\u8ffd\u52a0\u3001\u4efb\u610f\u306e\u30af\u30e9\u30b9\u578b\u306e\u975e\u578b\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8\u30d1\u30e9\u30e1\u30fc\u30bf\u3068\u3057\u3066\u306e\u5229\u7528\u3001\u5b9a\u6570\u5f0f\u3067\u306e\u4eee\u60f3\u95a2\u6570\u547c\u3073\u51fa\u3057\u306e\u8a31\u53ef\u3001explicit(bool) \u306a\u3069\u304c\u627f\u8a8d\u3055\u308c\u307e\u3057\u305f\u3002

"},{"location":"standardization/meetings/#2018-jacksonville","title":"2018 Jacksonville","text":""},{"location":"standardization/meetings/#_36","title":"\u5834\u6240 / \u63d0\u6848 / \u4f1a\u8b70\u306e\u7d50\u679c","text":""},{"location":"standardization/meetings/#_37","title":"\u53c2\u52a0\u5831\u544a","text":""},{"location":"standardization/meetings/#_38","title":"\u89e3\u8aac","text":"

<chrono> \u3078\u306e\u30ab\u30ec\u30f3\u30c0\u30fc\u30e9\u30a4\u30d6\u30e9\u30ea\u306e\u8ffd\u52a0\u3001<span>, no_unique_address \u3084 likely/unlikely \u5c5e\u6027\u69cb\u6587\u306e\u8ffd\u52a0\u306a\u3069\u304c\u627f\u8a8d\u3055\u308c\u307e\u3057\u305f\u3002

"},{"location":"standardization/meetings/#2017-albuquerque","title":"2017 Albuquerque","text":""},{"location":"standardization/meetings/#_39","title":"\u5834\u6240 / \u63d0\u6848 / \u4f1a\u8b70\u306e\u7d50\u679c","text":""},{"location":"standardization/meetings/#_40","title":"\u53c2\u52a0\u5831\u544a","text":""},{"location":"standardization/meetings/#_41","title":"\u89e3\u8aac","text":"

\u4e09\u65b9\u6bd4\u8f03\u6f14\u7b97\u5b50 <=> \u3068\u305d\u306e\u30e9\u30a4\u30d6\u30e9\u30ea\u30b5\u30dd\u30fc\u30c8\u3001\u6a19\u6e96\u30e9\u30a4\u30d6\u30e9\u30ea\u95a2\u6570\u306e\u3055\u3089\u306a\u308b constexpr \u5bfe\u5fdc\u3001\u521d\u671f\u5316\u5f0f\u3092\u3068\u3082\u306a\u3046\u7bc4\u56f2 for \u6587\u306a\u3069\u306e C++20 \u5165\u308a\u304c\u627f\u8a8d\u3055\u308c\u307e\u3057\u305f\u3002

"},{"location":"standardization/meetings/#2017-toronto","title":"2017 Toronto","text":""},{"location":"standardization/meetings/#_42","title":"\u5834\u6240 / \u63d0\u6848 / \u4f1a\u8b70\u306e\u7d50\u679c","text":""},{"location":"standardization/meetings/#_43","title":"\u53c2\u52a0\u5831\u544a","text":""},{"location":"standardization/meetings/#_44","title":"\u89e3\u8aac","text":"

C++20 \u306b\u95a2\u3059\u308b\u6700\u521d\u306e\u4f1a\u8b70\u3067\u3059\u3002\u30b3\u30f3\u30bb\u30d7\u30c8\u3001Designated Initialization, \u30e9\u30e0\u30c0\u5f0f\u306b\u304a\u3051\u308b this \u306e\u30b3\u30d4\u30fc\u30ad\u30e3\u30d7\u30c1\u30e3\u306e\u8a31\u53ef\u306a\u3069\u304c\u627f\u8a8d\u3055\u308c\u307e\u3057\u305f\u3002

"},{"location":"standardization/meetings/#2017-kona","title":"2017 Kona","text":""},{"location":"standardization/meetings/#_45","title":"\u5834\u6240 / \u63d0\u6848 / \u4f1a\u8b70\u306e\u7d50\u679c","text":""},{"location":"standardization/meetings/#_46","title":"\u53c2\u52a0\u5831\u544a","text":""},{"location":"standardization/meetings/#_47","title":"\u89e3\u8aac","text":"

C++17 \u306b\u3064\u3044\u3066\u8b70\u8ad6\u3059\u308b\u6700\u5f8c\u306e\u4f1a\u8b70\u3067\u3001\u3053\u306e\u4f1a\u8b70\u306b\u3088\u3063\u3066 C++17 \u898f\u683c\u304c\u5b8c\u6210\u3057\u307e\u3057\u305f\u3002 std::byte \u578b\u306e\u5c0e\u5165\u304c\u8ffd\u52a0\u3067\u627f\u8a8d\u3055\u308c\u305f\u307b\u304b\u306f\u3001\u5404\u56fd\u59d4\u54e1\u4f1a\u304b\u3089\u306e\u30b3\u30e1\u30f3\u30c8\u3078\u306e\u5bfe\u5fdc\u304c\u4e3b\u3067\u3059\u3002

"},{"location":"standardization/meetings/#2017","title":"2017 \u5e74\u4ee5\u524d\u306e\u4f1a\u8b70","text":""},{"location":"standardization/meetings/#2016-issaquah","title":"2016 Issaquah","text":""},{"location":"standardization/meetings/#_48","title":"\u5834\u6240 / \u63d0\u6848 / \u4f1a\u8b70\u306e\u7d50\u679c","text":""},{"location":"standardization/meetings/#_49","title":"\u53c2\u52a0\u5831\u544a","text":""},{"location":"standardization/meetings/#_50","title":"\u89e3\u8aac","text":"

using \u5ba3\u8a00\u3067\u306e\u30d1\u30e9\u30e1\u30fc\u30bf\u30d1\u30c3\u30af\u5c55\u958b\u3001\u53e4\u3044\u4f8b\u5916\u4ed5\u69d8 throw() \u306e\u524a\u9664\u3001<charconv> \u7b49\u304c\u627f\u8a8d\u3055\u308c\u307e\u3057\u305f\u3002 \u3053\u306e\u4f1a\u8b70\u3092\u3082\u3063\u3066 C++17 \u306f Feature Freeze \u306b\u306a\u308a\u307e\u3057\u305f\u3002

"},{"location":"standardization/meetings/#2016-oulu","title":"2016 Oulu","text":""},{"location":"standardization/meetings/#_51","title":"\u5834\u6240 / \u63d0\u6848 / \u4f1a\u8b70\u306e\u7d50\u679c","text":""},{"location":"standardization/meetings/#_52","title":"\u53c2\u52a0\u5831\u544a","text":""},{"location":"standardization/meetings/#_53","title":"\u89e3\u8aac","text":"

\u30b3\u30a2\u8a00\u8a9e\u6a5f\u80fd\u3068\u3057\u3066\u3001\u30af\u30e9\u30b9\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8\u306e\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8\u5f15\u6570\u63a8\u8ad6\uff08deduction guide\uff09\u3001\u30a4\u30f3\u30e9\u30a4\u30f3\u5909\u6570\u3001constexpr if, \u69cb\u9020\u5316\u675f\u7e1b\u3001if \u6587\u3084 switch \u6587\u3067\u306e\u521d\u671f\u5316\u5f0f\u3068\u6761\u4ef6\u5f0f\u306e\u5206\u96e2\u3001\u30b3\u30d4\u30fc\u7701\u7565\u4fdd\u8a3c\u3001\u5f0f\u306e\u8a55\u4fa1\u9806\u5e8f\u306e\u53b3\u5bc6\u5316\u3001std::launder \u7b49\u304c\u627f\u8a8d\u3055\u308c\u307e\u3057\u305f\u3002 \u30e9\u30a4\u30d6\u30e9\u30ea\u6a5f\u80fd\u3068\u3057\u3066\u306f\u3001std::variant, variant, optional, any \u30a4\u30f3\u30bf\u30fc\u30d5\u30a7\u30fc\u30b9\u306e\u7d71\u4e00\u3001\u9023\u60f3\u30b3\u30f3\u30c6\u30ca\u306e splice \u7b49\u304c\u627f\u8a8d\u3055\u308c\u307e\u3057\u305f\u3002

"},{"location":"standardization/meetings/#2016-jacksonville","title":"2016 Jacksonville","text":""},{"location":"standardization/meetings/#_54","title":"\u5834\u6240 / \u63d0\u6848 / \u4f1a\u8b70\u306e\u7d50\u679c","text":""},{"location":"standardization/meetings/#_55","title":"\u53c2\u52a0\u5831\u544a","text":""},{"location":"standardization/meetings/#_56","title":"\u89e3\u8aac","text":"

16 \u9032\u6d6e\u52d5\u5c0f\u6570\u70b9\u30ea\u30c6\u30e9\u30eb\u3001constexpr \u30e9\u30e0\u30c0\u3001\u5c5e\u6027\u69cb\u6587 [[fallthrough]], [[nodiscard]], [[maybe_unused]] \u306e\u307b\u304b\u3001\u6a19\u6e96\u30e9\u30a4\u30d6\u30e9\u30ea\u306b std::any, std::optional, std::string_view, <filesystem>, <memory_resource>, \u4e26\u5217\u30a2\u30eb\u30b4\u30ea\u30ba\u30e0\u3001\u6570\u5b66\u306e\u7279\u6b8a\u95a2\u6570\u7b49\u3092\u8ffd\u52a0\u3059\u308b\u3053\u3068\u304c\u627f\u8a8d\u3055\u308c\u307e\u3057\u305f\u3002

"},{"location":"standardization/meetings/#2015-kona","title":"2015 Kona","text":""},{"location":"standardization/meetings/#_57","title":"\u5834\u6240 / \u63d0\u6848 / \u4f1a\u8b70\u306e\u7d50\u679c","text":""},{"location":"standardization/meetings/#_58","title":"\u53c2\u52a0\u5831\u544a","text":""},{"location":"standardization/meetings/#_59","title":"\u89e3\u8aac","text":"

register \u30ad\u30fc\u30ef\u30fc\u30c9\u306e\u524a\u9664\u3001__has_include() \u30de\u30af\u30ed\u3001std::conunction\u3001std::disjunction\u3001std::negation \u7b49\u304c\u627f\u8a8d\u3055\u308c\u307e\u3057\u305f\u3002

"},{"location":"standardization/meetings/#2015-lenexa","title":"2015 Lenexa","text":""},{"location":"standardization/meetings/#_60","title":"\u5834\u6240 / \u63d0\u6848 / \u4f1a\u8b70\u306e\u7d50\u679c","text":""},{"location":"standardization/meetings/#_61","title":"\u53c2\u52a0\u5831\u544a","text":""},{"location":"standardization/meetings/#_62","title":"\u89e3\u8aac","text":"

std::bool_constant, std::vector, std::list, std::forward_list \u306e\u4e0d\u5b8c\u5168\u578b\u30b5\u30dd\u30fc\u30c8\u7b49\u304c\u627f\u8a8d\u3055\u308c\u307e\u3057\u305f\u3002

"},{"location":"standardization/meetings/#2015-cologne","title":"2015 Cologne","text":""},{"location":"standardization/meetings/#2015-skillman","title":"2015 Skillman","text":""},{"location":"standardization/meetings/#2014-urbana-champaign","title":"2014 Urbana-Champaign","text":""},{"location":"standardization/meetings/#_63","title":"\u5834\u6240 / \u63d0\u6848 / \u4f1a\u8b70\u306e\u7d50\u679c","text":""},{"location":"standardization/meetings/#_64","title":"\u53c2\u52a0\u5831\u544a","text":""},{"location":"standardization/meetings/#_65","title":"\u89e3\u8aac","text":"

C++14 \u898f\u683c\u5b8c\u6210\u5f8c\u306e\u6700\u521d\u306e\u4f1a\u8b70\u3067\u3059\u3002 \u7573\u307f\u8fbc\u307f\u5f0f\u3001\u5165\u308c\u5b50\u540d\u524d\u7a7a\u9593\u5b9a\u7fa9\u306e\u7c21\u7565\u5316\u3001u8 \u6587\u5b57\u5217\u30ea\u30c6\u30e9\u30eb\u3001\u975e\u578b\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8\u30d1\u30e9\u30e1\u30fc\u30bf\u306e\u30dd\u30a4\u30f3\u30bf\u5236\u9650\u7de9\u548c\u3001void_t, std::uncaught_exceptions \u7b49\u306e C++17 \u5165\u308a\u304c\u627f\u8a8d\u3055\u308c\u307e\u3057\u305f\u3002

"},{"location":"standardization/meetings/#2014-rapperswil","title":"2014 Rapperswil","text":""},{"location":"standardization/meetings/#_66","title":"\u5834\u6240 / \u63d0\u6848 / \u4f1a\u8b70\u306e\u7d50\u679c","text":""},{"location":"standardization/meetings/#_67","title":"\u53c2\u52a0\u5831\u544a","text":""},{"location":"standardization/meetings/#_68","title":"\u89e3\u8aac","text":"

C++14 \u306b\u3064\u3044\u3066\u8b70\u8ad6\u3059\u308b\u6700\u5f8c\u306e\u4f1a\u8b70\u3067\u3001\u3053\u306e\u4f1a\u8b70\u306b\u3088\u3063\u3066 C++14 \u898f\u683c\u304c\u5b8c\u6210\u3057\u307e\u3057\u305f\u3002 C++14 \u3078\u306e\u6a5f\u80fd\u8ffd\u52a0\u306f\u306a\u304f\u3001C++17 \u306b\u5bfe\u3057\u3066\u306f\u3001\u30c8\u30e9\u30a4\u30b0\u30e9\u30d5\u306e\u524a\u9664\u3001\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8\u30d1\u30e9\u30e1\u30fc\u30bf\u3067\u306e typename \u4f7f\u7528\u306e\u8a31\u53ef\u3001\u7701\u7565\u7248\u306e static_assert \u7b49\u304c\u627f\u8a8d\u3055\u308c\u307e\u3057\u305f\u3002

"},{"location":"standardization/meetings/#2014-issaquah","title":"2014 Issaquah","text":""},{"location":"standardization/meetings/#_69","title":"\u5834\u6240 / \u63d0\u6848 / \u4f1a\u8b70\u306e\u7d50\u679c","text":""},{"location":"standardization/meetings/#_70","title":"\u53c2\u52a0\u5831\u544a","text":""},{"location":"standardization/meetings/#_71","title":"\u89e3\u8aac","text":"

C++14 \u306e\u6700\u7d42\u4f5c\u696d\u3068 C++17 \u306b\u5411\u3051\u305f\u4e00\u90e8\u306e\u4f5c\u696d\u304c\u884c\u308f\u308c\u307e\u3057\u305f\u3002 \u3069\u3061\u3089\u306b\u5bfe\u3057\u3066\u3082\u6a5f\u80fd\u306e\u8ffd\u52a0\u306f\u306a\u304f\u3001C++14 \u306b\u5bfe\u3057\u3066\u306f\u5404\u56fd\u59d4\u54e1\u4f1a\u304b\u3089\u306e\u30b3\u30e1\u30f3\u30c8\u3084\u65e2\u5b58\u306e Issue \u3078\u306e\u5bfe\u5fdc\u304c\u4e3b\u3067\u3059\u3002

"},{"location":"standardization/meetings/#2013-chicago","title":"2013 Chicago","text":""},{"location":"standardization/meetings/#_72","title":"\u5834\u6240 / \u63d0\u6848 / \u4f1a\u8b70\u306e\u7d50\u679c","text":""},{"location":"standardization/meetings/#_73","title":"\u53c2\u52a0\u5831\u544a","text":""},{"location":"standardization/meetings/#_74","title":"\u89e3\u8aac","text":"

\u6570\u5024\u30ea\u30c6\u30e9\u30eb\u306e\u533a\u5207\u308a\u6587\u5b57\u3001[[deprecated]] \u5c5e\u6027\u3001\u5f15\u6570\u3068\u3057\u3066\u30b5\u30a4\u30ba\u3092\u3068\u308b\u30b0\u30ed\u30fc\u30d0\u30eb delete \u6f14\u7b97\u5b50\u306e\u30aa\u30fc\u30d0\u30fc\u30ed\u30fc\u30c9\u306e\u8a31\u53ef\u7b49\u304c\u627f\u8a8d\u3055\u308c\u307e\u3057\u305f\u3002 \u307e\u305f\u3001\u524d\u56de\u4f1a\u8b70\u3067\u627f\u8a8d\u3055\u308c\u3066\u3044\u305f\u52d5\u7684\u914d\u5217\u306e\u30b5\u30dd\u30fc\u30c8\u304a\u3088\u3073 std::dynarray<T> \u3068 std::optional<T> \u306f C++14 \u304b\u3089\u53d6\u308a\u9664\u304b\u308c\u308b\u3053\u3068\u306b\u306a\u308a\u307e\u3057\u305f\u3002

"},{"location":"standardization/meetings/#2013-bristol","title":"2013 Bristol","text":""},{"location":"standardization/meetings/#_75","title":"\u5834\u6240 / \u63d0\u6848 / \u4f1a\u8b70\u306e\u7d50\u679c","text":""},{"location":"standardization/meetings/#_76","title":"\u53c2\u52a0\u5831\u544a","text":""},{"location":"standardization/meetings/#_77","title":"\u89e3\u8aac","text":"

\u30b3\u30a2\u8a00\u8a9e\u6a5f\u80fd\u3068\u3057\u3066\u3001constexpr \u306e\u5236\u9650\u7de9\u548c\u3001\u30b8\u30a7\u30cd\u30ea\u30c3\u30af\u30e9\u30e0\u30c0\u3001\u30e9\u30e0\u30c0\u5f0f\u306e\u521d\u671f\u5316\u30ad\u30e3\u30d7\u30c1\u30e3\u3001\u5909\u6570\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8\u3001\u95a2\u6570\u306e\u623b\u308a\u5024\u578b\u63a8\u8ad6\u3001\u52d5\u7684\u914d\u5217\u306e\u30b5\u30dd\u30fc\u30c8\u3001\u30e9\u30a4\u30d6\u30e9\u30ea\u6a5f\u80fd\u3068\u3057\u3066\u3001std::make_unique(), \u6a19\u6e96\u30e9\u30a4\u30d6\u30e9\u30ea\u3078\u306e\u30e6\u30fc\u30b6\u30fc\u5b9a\u7fa9\u30ea\u30c6\u30e9\u30eb\u5c0e\u5165\u3001std::optional<T>, std::dynarray<T> \u7b49\u304c\u627f\u8a8d\u3055\u308c\u307e\u3057\u305f\u3002 C++14 \u306e\u307b\u3068\u3093\u3069\u306e\u6a5f\u80fd\u304c\u3053\u306e\u4f1a\u8b70\u3067\u8ffd\u52a0\u3055\u308c\u3066\u3044\u307e\u3059\u3002

"},{"location":"standardization/meetings/#2012-portland","title":"2012 Portland","text":""},{"location":"standardization/meetings/#_78","title":"\u5834\u6240 / \u63d0\u6848 / \u4f1a\u8b70\u306e\u7d50\u679c","text":""},{"location":"standardization/meetings/#_79","title":"\u89e3\u8aac","text":"

Issue \u5bfe\u5fdc\u304c\u4e3b\u3067\u5927\u304d\u306a\u6a5f\u80fd\u306e\u8ffd\u52a0\u306f\u3042\u308a\u307e\u305b\u3093\u3067\u3057\u305f\u3002 \u30e9\u30a4\u30d6\u30e9\u30ea\u6a5f\u80fd\u3068\u3057\u3066\u3001std::complex, std::chrono, std::array, std::initilizer_list, std::tuple, std::pair \u7b49\u306e constexpr \u5bfe\u5fdc\u304c\u627f\u8a8d\u3055\u308c\u307e\u3057\u305f\u3002

"},{"location":"standardization/meetings/#2012-kona","title":"2012 Kona","text":""},{"location":"standardization/meetings/#_80","title":"\u5834\u6240 / \u63d0\u6848 / \u4f1a\u8b70\u306e\u7d50\u679c","text":""},{"location":"standardization/meetings/#_81","title":"\u89e3\u8aac","text":"

C++14 \u306b\u3064\u3044\u3066\u8b70\u8ad6\u3059\u308b\u6700\u521d\u306e\u4f1a\u8b70\u3067\u3059\u3002 \u6a5f\u80fd\u306e\u8ffd\u52a0\u306f\u7121\u304f\u3001C++11 \u306b\u5bfe\u3059\u308b Issue \u3078\u306e\u5bfe\u5fdc\u304c\u4e3b\u3067\u3059\u3002

"},{"location":"standardization/meetings/#2011-bloomington","title":"2011 Bloomington","text":""},{"location":"standardization/meetings/#2011-madrid","title":"2011 Madrid","text":""},{"location":"standardization/meetings/#2010-batavia","title":"2010 Batavia","text":""},{"location":"standardization/meetings/#2010-rapperswil","title":"2010 Rapperswil","text":""},{"location":"standardization/meetings/#2010-pittsburgh","title":"2010 Pittsburgh","text":""},{"location":"standardization/meetings/#2009-santa-cruz","title":"2009 Santa Cruz","text":""},{"location":"standardization/meetings/#2009-frankfurt","title":"2009 Frankfurt","text":""},{"location":"standardization/meetings/#2009-summit","title":"2009 Summit","text":""},{"location":"standardization/meetings/#2008-san-francisco","title":"2008 San Francisco","text":""},{"location":"standardization/meetings/#2008-sophia-antipolis","title":"2008 Sophia Antipolis","text":""},{"location":"standardization/meetings/#2008-bellevue","title":"2008 Bellevue","text":""},{"location":"standardization/meetings/#2007-kona","title":"2007 Kona","text":""},{"location":"standardization/meetings/#2007-toronto","title":"2007 Toronto","text":""},{"location":"standardization/meetings/#2007-oxford","title":"2007 Oxford","text":""},{"location":"standardization/meetings/#2006-portland","title":"2006 Portland","text":""},{"location":"standardization/meetings/#2006-berlin","title":"2006 Berlin","text":""},{"location":"standardization/meetings/#2005-mt-tremblant","title":"2005 Mt. Tremblant","text":""},{"location":"standardization/meetings/#2005-lillehammer","title":"2005 Lillehammer","text":""},{"location":"standardization/meetings/#2004-redmond","title":"2004 Redmond","text":""},{"location":"standardization/meetings/#2004-sydney","title":"2004 Sydney","text":""},{"location":"standardization/meetings/#2003-kona","title":"2003 Kona","text":""},{"location":"standardization/meetings/#2003-oxford","title":"2003 Oxford","text":""},{"location":"standardization/meetings/#2002-santa-cruz","title":"2002 Santa Cruz","text":""},{"location":"standardization/meetings/#2002-curacao","title":"2002 Curacao","text":""},{"location":"standardization/meetings/#2001-redmond","title":"2001 Redmond","text":""},{"location":"standardization/meetings/#2001-copenhagen","title":"2001 Copenhagen","text":""},{"location":"standardization/meetings/#2000-toronto","title":"2000 Toronto","text":""},{"location":"standardization/meetings/#2000-tokyo","title":"2000 Tokyo","text":""},{"location":"standardization/meetings/#1999-kona","title":"1999 Kona","text":""},{"location":"standardization/meetings/#1999-dublin","title":"1999 Dublin","text":""},{"location":"standardization/meetings/#1998-santa-cruz","title":"1998 Santa Cruz","text":""},{"location":"standardization/meetings/#1998-sophia-antipolis","title":"1998 Sophia Antipolis","text":""},{"location":"standardization/meetings/#1997-morristown","title":"1997 Morristown","text":""},{"location":"standardization/meetings/#1997-cambridge","title":"1997 Cambridge","text":""},{"location":"standardization/meetings/#1997-nashua","title":"1997 Nashua","text":""},{"location":"standardization/meetings/#1996-kona","title":"1996 Kona","text":""},{"location":"standardization/meetings/#1996-stockholm","title":"1996 Stockholm","text":""},{"location":"standardization/meetings/#1996-santa-cruz","title":"1996 Santa Cruz","text":""},{"location":"standardization/meetings/#1995-tokyo","title":"1995 Tokyo","text":""},{"location":"standardization/meetings/#1995-monterey","title":"1995 Monterey","text":""},{"location":"standardization/meetings/#1995-austin","title":"1995 Austin","text":""},{"location":"standardization/meetings/#1994-valley-forge","title":"1994 Valley Forge","text":""},{"location":"standardization/meetings/#1994-waterloo","title":"1994 Waterloo","text":""},{"location":"standardization/meetings/#1994-san-diego","title":"1994 San Diego","text":""},{"location":"standardization/meetings/#1993-san-jose","title":"1993 San Jose","text":""},{"location":"standardization/meetings/#1993-munich","title":"1993 Munich","text":""},{"location":"standardization/meetings/#1993-portland","title":"1993 Portland","text":""},{"location":"standardization/meetings/#1992-boston","title":"1992 Boston","text":""},{"location":"standardization/meetings/#1992-toronto","title":"1992 Toronto","text":""},{"location":"standardization/meetings/#1992-london","title":"1992 London","text":""},{"location":"standardization/meetings/#1991-dallas","title":"1991 Dallas","text":""},{"location":"standardization/meetings/#1991-lund","title":"1991 Lund","text":""},{"location":"standardization/meetings/#1991-nashua","title":"1991 Nashua","text":""},{"location":"standardization/meetings/#1990-palo-alto","title":"1990 Palo Alto","text":""},{"location":"standardization/meetings/#1990-seattle","title":"1990 Seattle","text":""},{"location":"standardization/meetings/#1990-somerset","title":"1990 Somerset","text":""},{"location":"standardization/meetings/#1989-washington-dc","title":"1989 Washington, DC","text":""},{"location":"standardization/meetings/#_82","title":"\u53c2\u8003\u6587\u732e","text":""},{"location":"standardization/proposals/","title":"\u63d0\u6848\u30ea\u30b9\u30c8","text":"

C++ \u6a19\u6e96\u5316\u59d4\u54e1\u4f1a\u306e\u63d0\u6848\u6587\u66f8\u3068\u3001\u305d\u306e\u65e5\u672c\u8a9e\u89e3\u8aac\u8a18\u4e8b\u3078\u306e\u30ea\u30f3\u30af\u3067\u3059\u3002

"},{"location":"standardization/proposals/#2025","title":"2025 \u5e74","text":""},{"location":"standardization/proposals/#2024","title":"2024 \u5e74","text":""},{"location":"standardization/proposals/#2023","title":"2023 \u5e74","text":""},{"location":"standardization/proposals/#2022","title":"2022 \u5e74","text":""},{"location":"standardization/proposals/#2021","title":"2021 \u5e74","text":""},{"location":"standardization/proposals/#2020","title":"2020 \u5e74","text":""},{"location":"standardization/status/","title":"\u51e6\u7406\u7cfb\u306e\u5bfe\u5fdc\u72b6\u6cc1","text":""},{"location":"standardization/status/#_2","title":"\u51e6\u7406\u7cfb\u306e\u6bd4\u8f03\u8868","text":""},{"location":"standardization/status/#c26","title":"C++26","text":""},{"location":"standardization/status/#c23","title":"C++23","text":""},{"location":"standardization/status/#c20","title":"C++20","text":""},{"location":"standardization/status/#c17","title":"C++17","text":""},{"location":"standardization/status/#c14","title":"C++14","text":""},{"location":"standardization/working-drafts/","title":"C++ \u898f\u683c\u66f8","text":""},{"location":"standardization/working-drafts/#_1","title":"\u56fd\u969b\u898f\u683c\u3068\u30ef\u30fc\u30ad\u30f3\u30b0\u30c9\u30e9\u30d5\u30c8","text":"

C++11 \u4ee5\u964d\u306f\u3001\u898f\u683c\u66f8\u3068\u540c\u7b49\u306e\u5185\u5bb9\u306e\u30ef\u30fc\u30ad\u30f3\u30b0\u30c9\u30e9\u30d5\u30c8\u304c\u7121\u511f\u3067\u516c\u958b\u3055\u308c\u3066\u3044\u307e\u3059\u3002 \u516c\u5f0f\u306e\u56fd\u969b\u898f\u683c\u6587\u66f8\u306f ISO \u306e Web \u30b5\u30a4\u30c8\u304b\u3089\u8cfc\u5165\u3067\u304d\u307e\u3059\u3002

\u30d0\u30fc\u30b8\u30e7\u30f3 \u30ef\u30fc\u30ad\u30f3\u30b0\u30c9\u30e9\u30d5\u30c8 \u56fd\u969b\u898f\u683c \u30da\u30fc\u30b8\u6570 \u65e5\u4ed8 C++98 ISO/IEC 14882:1998 732 1998-09 C++03 N1577 ISO/IEC 14882:2003 757 2003-10 C++11 N3337 (PDF) / HTML ISO/IEC 14882:2011 1338 2011-09 C++14 N4140 (PDF) / HTML ISO/IEC 14882:2014 1358 2014-12 C++17 N4659 (PDF) / HTML ISO/IEC 14882:2017 1605 2017-12 C++20 N4860 (PDF) / HTML ISO/IEC 14882:2020 1853 2020-12 C++23 N4950 (PDF) / HTML ISO/IEC 14882:2024 2104 2024-10 C++26 N5001 (PDF) / HTML \u203b\u6700\u7d42\u7248\u3067\u306f\u306a\u3044 \uff08\u672a\u767a\u884c\uff09 ? 2026-?? "},{"location":"standardization/working-drafts/#c_1","title":"\u904e\u53bb\u306e C++ \u306e\u6b74\u53f2\u7684\u8cc7\u6599","text":"\u65e5\u4ed8 \u6587\u66f8\u756a\u53f7 \u30bf\u30a4\u30c8\u30eb \u30da\u30fc\u30b8\u6570 1990 \u5e74 2 \u6708 X3J16 90-0004 \u306e\u6539\u7a3f\u7248 The Annotated C++ Reference Manual 160 1994 \u5e74 1 \u6708 X3J16 94-0027 (N0414) Working Paper for Draft Proposed International Standard for Information Systems - Programming Language C++ 454"},{"location":"standardization/working-drafts/#_2","title":"\u53c2\u8003\u6587\u732e","text":""},{"location":"tools/code-formatter/","title":"C++ \u30b3\u30fc\u30c9\u30d5\u30a9\u30fc\u30de\u30c3\u30bf","text":""},{"location":"tools/code-formatter/#clangformat","title":"ClangFormat","text":"

\u516c\u5f0f\u30b5\u30a4\u30c8 - ClangFormat https://clang.llvm.org/docs/ClangFormat.html

\u30c0\u30a6\u30f3\u30ed\u30fc\u30c9\u3092\u76f4\u63a5\u884c\u3046\u306a\u3089 LLVM \u306e\u30c0\u30a6\u30f3\u30ed\u30fc\u30c9\u30da\u30fc\u30b8\u304c\u4fbf\u5229\u3067\u3059\u3002 \u30d3\u30eb\u30c9\u6e08\u307f\u30d0\u30a4\u30ca\u30ea\u304c\u63d0\u4f9b\u3055\u308c\u3066\u3044\u307e\u3059\u3002

"},{"location":"tools/compilers/","title":"C++ \u30b3\u30f3\u30d1\u30a4\u30e9","text":""},{"location":"tools/compilers/#gcc","title":"GCC","text":""},{"location":"tools/compilers/#clang","title":"Clang","text":""},{"location":"tools/compilers/#microsoft-visual-c-msvc","title":"Microsoft Visual C++ (MSVC)","text":"

Microsoft Visual Studio \u306e C++ \u30b3\u30f3\u30d1\u30a4\u30e9

"},{"location":"tools/compilers/#apple-clang","title":"Apple Clang","text":"

Xcode \u306e C++ \u30b3\u30f3\u30d1\u30a4\u30e9

"},{"location":"tools/compilers/#edg-eccp","title":"EDG eccp","text":""},{"location":"tools/compilers/#intel-c-compiler","title":"Intel C++ Compiler","text":""},{"location":"tools/compilers/#ibm-xl-c","title":"IBM XL C++","text":""},{"location":"tools/compilers/#oracle-developer-studio-c-compiler","title":"Oracle Developer Studio C++ compiler","text":""},{"location":"tools/compilers/#embarcadero-c-builder","title":"Embarcadero C++ Builder","text":""},{"location":"tools/gitignore/","title":"C++ \u7528 .gitignore","text":""},{"location":"tools/linter/","title":"C++ \u30ea\u30f3\u30bf\u30fc","text":""},{"location":"tools/linter/#clang-tidy","title":"Clang-Tidy","text":""},{"location":"tools/linter/#cpplint","title":"cpplint","text":""},{"location":"tools/linter/#cppcheck","title":"Cppcheck","text":""},{"location":"tools/onlinecompilers/","title":"C++ \u30aa\u30f3\u30e9\u30a4\u30f3\u30b3\u30f3\u30d1\u30a4\u30e9","text":""},{"location":"tools/onlinecompilers/#_1","title":"\u4e3b\u8981\u306a\u30aa\u30f3\u30e9\u30a4\u30f3\u30b3\u30f3\u30d1\u30a4\u30e9","text":"

C++ \u30d7\u30ed\u30b0\u30e9\u30e0\u306e\u30b3\u30f3\u30d1\u30a4\u30eb\u3001\u5b9f\u884c\u3001\u5171\u6709\u304c\u3067\u304d\u308b Web \u30b5\u30a4\u30c8\u3067\u3059\u3002

\u30b3\u30f3\u30d1\u30a4\u30e9 \u65e5\u672c\u8a9e\u5165\u51fa\u529b \u30a4\u30f3\u30bf\u30e9\u30af\u30c6\u30a3\u30d6 \u8907\u6570\u30d5\u30a1\u30a4\u30eb Wandbox
  • GCC 4.9.4 - 14.0
  • Clang 7.1.0 - 18.0
  • Compiler Explorer(Compiler \u30e2\u30fc\u30c9)
  • GCC 4.1.2 - 13.2
  • Clang 3.0 - 16.0
  • MSVC v19.14 - v19.latest
  • ICC 13.0.1 - 2021.10.0
  • Compiler Explorer(Execution \u30e2\u30fc\u30c9)
  • GCC 4.6.4 - 13.2
  • Clang 3.3 - 16.0
  • ICC 16.0.3 - 2021.10.0
  • repl.it(\u8981\u30a2\u30ab\u30a6\u30f3\u30c8\u767b\u9332)
  • Clang 12.0.1
  • C++ Shell
  • Clang 16.0.0
  • paiza.io
  • Clang 10.0.0
  • GDB Online
  • GCC 9.4.0
  • Ideone
  • GCC 8.3.0
  • "},{"location":"tools/onlinecompilers/#_2","title":"\u305d\u306e\u4ed6\u306e\u30c4\u30fc\u30eb","text":""},{"location":"tools/onlinecompilers/#compiler-explorer","title":"Compiler Explorer","text":"

    Compiler Explorer \u306f\u3001C, C++, Rust, Swift \u306a\u3069\u306e\u30bd\u30fc\u30b9\u30b3\u30fc\u30c9\u3092\u30b3\u30f3\u30d1\u30a4\u30eb\u3057\u3066\u30a2\u30bb\u30f3\u30d6\u30ea\u3092\u8868\u793a\u3059\u308b\u30aa\u30f3\u30e9\u30a4\u30f3\u30b3\u30f3\u30d1\u30a4\u30e9\u3067\u3059\u3002\u8907\u6570\u30bf\u30d6\u3092\u4f7f\u3063\u3066\u3001GCC, Clang, MSVC, ICC \u306a\u3069\u306e\u30b3\u30f3\u30d1\u30a4\u30e9\u3084\u3001\u30b3\u30f3\u30d1\u30a4\u30eb\u30aa\u30d7\u30b7\u30e7\u30f3\u3092\u5909\u3048\u305f\u3068\u304d\u306e\u7d50\u679c\u3092\u6bd4\u8f03\u3067\u304d\u307e\u3059\u3002

    \u5165\u529b\u4f8b

    int square(int num)\n{\n    return num * num;\n}\n

    \u51fa\u529b

    square(int):\n        push    rbp\n        mov     rbp, rsp\n        mov     DWORD PTR [rbp-4], edi\n        mov     eax, DWORD PTR [rbp-4]\n        imul    eax, DWORD PTR [rbp-4]\n        pop     rbp\n        ret\n

    Compiler Explorer \u306b\u306f\u3001Web \u4e0a\u306e\u30d5\u30a1\u30a4\u30eb\u3092 #include \"URL\" \u3067\u30a4\u30f3\u30af\u30eb\u30fc\u30c9\u3067\u304d\u308b\u72ec\u81ea\u62e1\u5f35\u6a5f\u80fd\u304c\u3042\u308a\u307e\u3059\u3002\u3053\u306e\u6a5f\u80fd\u3092\u4f7f\u3046\u3068\u3001GitHub \u306a\u3069\u306b\u516c\u958b\u3055\u308c\u3066\u3044\u308b\u30b7\u30f3\u30b0\u30eb\u30d8\u30c3\u30c0\u30e9\u30a4\u30d6\u30e9\u30ea\u3092\u30d7\u30ed\u30b0\u30e9\u30e0\u306e\u4e2d\u3067\u7c21\u5358\u306b\u4f7f\u3048\u307e\u3059\uff08\u4f8b: https://godbolt.org/z/OV-vGQ\uff09

    "},{"location":"tools/onlinecompilers/#quick-bench","title":"Quick Bench","text":"

    Quick Bench \u306f\u3001google/benchmark \u306b\u3088\u308b C++ \u30d7\u30ed\u30b0\u30e9\u30e0\u306e\u5b9f\u884c\u6642\u9593\u306e\u8a08\u6e2c\u3068\u3001\u305d\u306e\u7d50\u679c\u306e\u30d3\u30b8\u30e5\u30a2\u30e9\u30a4\u30ba\u304c\u3067\u304d\u308b\u30aa\u30f3\u30e9\u30a4\u30f3\u30b3\u30f3\u30d1\u30a4\u30e9\u3067\u3059\u3002\u68d2\u30b0\u30e9\u30d5\u306b\u3088\u308b\u6bd4\u8f03\u3001\u30a2\u30bb\u30f3\u30d6\u30ea\u306e\u8868\u793a\u3001\u30b0\u30e9\u30d5\u753b\u50cf\u306e\u30c0\u30a6\u30f3\u30ed\u30fc\u30c9\u3001URL \u306b\u3088\u308b\u7d50\u679c\u306e\u30b7\u30a7\u30a2\u306a\u3069\u306e\u6a5f\u80fd\u304c\u3042\u308a\u307e\u3059\u3002

    \u4f8b: http://quick-bench.com/O1QdfCc73docKGKjaYBxWG6a9AU

    "},{"location":"tools/onlinecompilers/#build-bench","title":"Build Bench","text":"

    Build Bench \u306f\u3001\u7570\u306a\u308b C++ \u30bd\u30fc\u30b9\u3084\u30d3\u30eb\u30c9\u30aa\u30d7\u30b7\u30e7\u30f3\u3069\u3046\u3057\u306e\u30d3\u30eb\u30c9\u6642\u9593\u3092\u6bd4\u8f03\u3067\u304d\u308b Web \u30b5\u30fc\u30d3\u30b9\u3067\u3059\u3002

    "},{"location":"tools/onlinecompilers/#c-insights","title":"C++ Insights","text":"

    C++ Insights \u306f\u3001\u30e9\u30e0\u30c0\u5f0f\u3001range-based for, \u69cb\u9020\u5316\u675f\u7e1b\u306a\u3069\u3067\u4f55\u304c\u8d77\u3053\u3063\u3066\u3044\u308b\u306e\u304b\u3092\u3001\u30d7\u30ed\u30b0\u30e9\u30e0\u3092\u5358\u7d14\u306a\u30bd\u30fc\u30b9\u30b3\u30fc\u30c9\u306b\u5206\u89e3\u3059\u308b\u3053\u3068\u3067\u53ef\u8996\u5316\u3059\u308b\u30aa\u30f3\u30e9\u30a4\u30f3\u306e\u30c4\u30fc\u30eb\u3067\u3059\u3002

    \u5165\u529b\u4f8b

    #include <cstdio>\n\nint main()\n{\n    const char arr[10]{2,4,6,8};\n\n    for(const char& c : arr)\n    {\n      printf(\"c=%c\\n\", c);\n    }\n}\n
    \u51fa\u529b
    #include <cstdio>\n\nint main()\n{\n  const char arr[10] = {2, 4, 6, 8, '\\0', '\\0', '\\0', '\\0', '\\0', '\\0'};\n  {\n    char const (&__range1)[10] = arr;\n    const char * __begin1 = __range1;\n    const char * __end1 = __range1 + 10l;\n\n    for( ; __begin1 != __end1; ++__begin1 )\n    {\n      const char & c = *__begin1;\n      printf(\"c=%c\\n\", static_cast<int>(c));\n    }\n  }\n}\n

    "},{"location":"tools/onlinecompilers/#ceestudio","title":"cee.studio","text":"

    cee.studio \u306f\u3001C, C++ \u30d7\u30ed\u30b0\u30e9\u30e0\u3092\u5b9f\u884c\u3057\u3066\u3001\u30bb\u30b0\u30e1\u30f3\u30c6\u30fc\u30b7\u30e7\u30f3\u9055\u53cd\u306a\u3069\u30e1\u30e2\u30ea\u306b\u95a2\u3059\u308b\u554f\u984c\u304c\u767a\u751f\u3057\u305f\u3068\u304d\u306b\u3001\u305d\u306e\u7b87\u6240\u3068\u539f\u56e0\u3092\u308f\u304b\u308a\u3084\u3059\u304f\u8868\u793a\u3059\u308b\u6a5f\u80fd\u3092\u6301\u3064\u30aa\u30f3\u30e9\u30a4\u30f3\u30b3\u30f3\u30d1\u30a4\u30e9\u3067\u3059\u3002\u30d0\u30c3\u30d5\u30a1\u30aa\u30fc\u30d0\u30fc\u30e9\u30f3\u3001Null \u30dd\u30a4\u30f3\u30bf\u306e\u53c2\u7167\u5916\u3057\u3001\u672a\u521d\u671f\u5316\u5909\u6570\u306e\u5229\u7528\u306a\u3069\u306e\u554f\u984c\u3092\u660e\u3089\u304b\u306b\u3057\u307e\u3059\u3002\u30aa\u30f3\u30e9\u30a4\u30f3 IDE \u3067\u300cRun in Guarrail\u300d\u30e2\u30fc\u30c9\u3067\u5b9f\u884c\u3059\u308b\u3053\u3068\u3067\u30e1\u30e2\u30ea\u306e\u30c7\u30d0\u30c3\u30b0\u3092\u884c\u3048\u307e\u3059\u3002

    \u5165\u529b\u4f8b

    #include <iostream>\n\nint main()\n{\n    const char s[] = { 'A', 'B', 'C' };\n\n    std::cout << s << '\\n';\n}\n

    \u51fa\u529b\u4f8b

      Memory access error: reading from the outside of a memory space; abort execution.\n  # Reading 4 bytes from 0x981cdd4 will read undefined values.\n  #\n  # The memory-space-to-be-read (start:0x981cdd4, size:3 bytes) is bound to 's' at\n  #    file:/prog.cc::5, 0\n  #\n  #  0x981cdd4               0x981cdd6\n  #  +------------------------------+\n  #  | the memory-space-to-be-read  |......\n  #  +------------------------------+\n  #  ^~~~~~~~~~\n  #  the read starts at the memory-space begin.\n  #\n  # Stack trace (most recent call first) of the read.\n  # [0]  file:/musl-1.1.10/src/string/strlen.c::91, 3\n  # [1]  unknown_location (report this ::244)\n  # [2]  file:/prog.cc::7, 5\n  # [3]  [libc-start-main]\nSegmentation fault\n

    "},{"location":"tools/package-manager/","title":"C++ \u30d1\u30c3\u30b1\u30fc\u30b8\u30de\u30cd\u30fc\u30b8\u30e3","text":""},{"location":"tools/package-manager/#_1","title":"\u30d1\u30c3\u30b1\u30fc\u30b8\u30de\u30cd\u30fc\u30b8\u30e3\u306e\u6bd4\u8f03","text":"\u5bfe\u5fdc\u30d7\u30e9\u30c3\u30c8\u30d5\u30a9\u30fc\u30e0 Vcpkg Windows, macOS, Linux Conan Windows, macOS, Linux Hunter Windows, macOS, Linux Buckaroo Windows, macOS, Linux poac macOS, Linux"},{"location":"tools/project-template/","title":"C++ \u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u30fb\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8","text":""}]} \ No newline at end of file +{"config":{"lang":["en","ja"],"separator":"[\\s\u3000\u3001\u3002\uff0c\uff0e\u304c\u306e\u3092\u306b\u3078\u3068\u3067\u3084\u304b\u3082\u308b\u300c\u300d\u300e\u300f]+","pipeline":["stemmer"]},"docs":[{"location":"","title":"C++ \u306e\u6b69\u304d\u65b9 | cppmap","text":"

    \ud83d\udce2 CEDEC 2024 \u306b\u3066\u8b1b\u6f14\u3092\u884c\u3044\u307e\u3057\u305f\u3002\u767a\u8868\u8cc7\u6599\u3092\u516c\u958b\u3057\u3066\u3044\u307e\u3059\u3002

    \ud83d\udce2 CEDEC 2020 \u306b\u3066\u8b1b\u6f14\u3092\u884c\u3044\u307e\u3057\u305f\u3002\u767a\u8868\u8cc7\u6599\u3092\u516c\u958b\u3057\u3066\u3044\u307e\u3059\u3002

    \ud83d\udce2 \u30b3\u30f3\u30c6\u30f3\u30c4\u62e1\u5145\u306e\u305f\u3081\u3010\u52df\u96c6\u3011\u30bf\u30b0\u306e\u30b9\u30ec\u30c3\u30c9\u3078\u60c5\u5831\u3092\u304a\u5bc4\u305b\u304f\u3060\u3055\u3044\u3002

    \ud83d\udce2 \u672c\u30b5\u30a4\u30c8\u306e\u904b\u55b6\u306f\u3001GitHub Sponsors \u306b\u3088\u3063\u3066\u652f\u3048\u3089\u308c\u3066\u3044\u307e\u3059\u3002

    "},{"location":"#_1","title":"\u3053\u306e\u30b5\u30a4\u30c8\u306b\u3064\u3044\u3066","text":"

    C++17, C++20, C++23, C++26 \u306b\u95a2\u3059\u308b\u60c5\u5831\u3092\u8abf\u67fb\u30fb\u63d0\u4f9b\u3057\u307e\u3059\u3002 \u7ba1\u7406\u8005 @Reputeless \u3068\u3001\u30b3\u30f3\u30c8\u30ea\u30d3\u30e5\u30fc\u30bf\u306e\u7686\u69d8 \u306b\u3088\u3063\u3066\u57f7\u7b46\u3055\u308c\u3066\u3044\u307e\u3059\u3002

    "},{"location":"#_2","title":"\u30e9\u30a4\u30bb\u30f3\u30b9","text":"

    \u672c\u30b5\u30a4\u30c8\u306e\u8a18\u4e8b\u3068\u30b5\u30f3\u30d7\u30eb\u30b3\u30fc\u30c9\u306f\u30d1\u30d6\u30ea\u30c3\u30af\u30c9\u30e1\u30a4\u30f3\u3067\u3059\u3002 \u30b5\u30fc\u30c9\u30d1\u30fc\u30c6\u30a3\u30fc\u306e\u30b3\u30f3\u30c6\u30f3\u30c4\u306e\u8457\u4f5c\u6a29\u306f\u3001\u305d\u308c\u305e\u308c\u306e\u6240\u6709\u8005\u306b\u5e30\u5c5e\u3057\u307e\u3059\u3002

    "},{"location":"#github-sponsors","title":"GitHub Sponsors","text":""},{"location":"#gold-sponsor","title":"Gold Sponsor","text":""},{"location":"#silver-sponsor","title":"Silver Sponsor","text":""},{"location":"#bronze-sponsor","title":"Bronze Sponsor","text":"

    \u30a2\u30b2\u30cf\u30de, Fuyutsubaki, \ud83d\ude0a, \ud83d\udc1d, jacking75, Chris Ohk, qppon, ysaito, \u304a\u304a\u3084\u307e, ShivAlley, lamuda, \ud83c\udf3b, fal_rnd, As Project, IZUNA, \u67cf\u5d0e\u3067\u3043\u3059\u3053, nasatame, sashi, \ud83c\udf36\ufe0f

    "},{"location":"articles/acronyms/","title":"C++ \u95a2\u9023\u306e\u7565\u8a9e","text":""},{"location":"articles/acronyms/#abi-application-binary-interface","title":"ABI | Application Binary Interface","text":"

    \u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u30fb\u30d0\u30a4\u30ca\u30ea\u30fb\u30a4\u30f3\u30bf\u30d5\u30a7\u30fc\u30b9

    "},{"location":"articles/acronyms/#accu-association-of-c-and-c-users","title":"ACCU | Association of C and C++ Users","text":"

    C \u304a\u3088\u3073 C++ \u30e6\u30fc\u30b6\u5354\u4f1a\u3002\u5e74\u6b21\u30ab\u30f3\u30d5\u30a1\u30ec\u30f3\u30b9 \u306e\u958b\u50ac\u3084\u300cOverload\u300d\u306e\u520a\u884c\u306a\u3069\u3092\u884c\u3046\u3002

    "},{"location":"articles/acronyms/#adl-argument-dependent-lookup","title":"ADL | Argument Dependent Lookup","text":"

    \u5b9f\u5f15\u6570\u4f9d\u5b58\u306e\u540d\u524d\u691c\u7d22

    "},{"location":"articles/acronyms/#ansi-american-national-standards-institute","title":"ANSI | American National Standards Institute","text":"

    \u7c73\u56fd\u56fd\u5bb6\u898f\u683c\u5354\u4f1a

    "},{"location":"articles/acronyms/#api-application-programming-interface","title":"API | Application Programming Interface","text":"

    \u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u30fb\u30d7\u30ed\u30b0\u30e9\u30df\u30f3\u30b0\u30fb\u30a4\u30f3\u30bf\u30d5\u30a7\u30fc\u30b9

    "},{"location":"articles/acronyms/#asan-addresssanitizer","title":"ASan | AddressSanitizer","text":"

    \u30e1\u30e2\u30ea\u95a2\u9023\u306e\u30a8\u30e9\u30fc\u3092\u691c\u51fa\u3059\u308b\u52d5\u7684\u89e3\u6790\u30c4\u30fc\u30eb

    "},{"location":"articles/acronyms/#bcc-borland-c-compiler","title":"BCC | Borland C++ Compiler","text":"

    \u73fe\u5728\u306e Embarcadero C++ Builder \u306e\u524d\u8eab\u30022000 \u5e74\u306b\u30ea\u30ea\u30fc\u30b9\u3055\u308c\u305f Borland C++ Compiler 5.5 \u306f\u3001\u5f53\u6642\u306f\u3081\u305a\u3089\u3057\u3044\u7121\u511f\u306e C++ \u30b3\u30f3\u30d1\u30a4\u30e9\u3068\u3057\u3066\u3001\u5e83\u304f\u4f7f\u308f\u308c\u305f\u3002

    "},{"location":"articles/acronyms/#bcpl-basic-combined-programming-language","title":"BCPL | Basic Combined Programming Language","text":"

    1966 \u5e74\u306b\u30de\u30fc\u30c6\u30a3\u30f3\u30fb\u30ea\u30c1\u30e3\u30fc\u30ba\u304c\u8a2d\u8a08\u3057\u305f\u30d7\u30ed\u30b0\u30e9\u30df\u30f3\u30b0\u8a00\u8a9e\u3002C \u8a00\u8a9e\u3084 C++ \u306b\u5f71\u97ff\u3092\u4e0e\u3048\u305f\u3002

    "},{"location":"articles/acronyms/#bmi-binary-module-interface","title":"BMI | Binary Module Interface","text":"

    \u30b3\u30f3\u30d1\u30a4\u30e9\u304c\u30e2\u30b8\u30e5\u30fc\u30eb\u30d5\u30a1\u30a4\u30eb\u3092\u30b3\u30f3\u30d1\u30a4\u30eb\u3057\u3066\u751f\u6210\u3059\u308b\u4e2d\u9593\u30d5\u30a1\u30a4\u30eb\u3002GCC \u3067\u306f CMI (Compiled Module Interfaces) \u3068\u547c\u3076

    "},{"location":"articles/acronyms/#c-amp-c-accelerated-massive-parallelism","title":"C++ AMP | C++ Accelerated Massive Parallelism","text":"

    \u30de\u30a4\u30af\u30ed\u30bd\u30d5\u30c8\u306a\u3069\u304c\u958b\u767a\u3092\u9032\u3081\u3066\u3044\u308b\u3001\u4e26\u5217\u8a08\u7b97\u306e\u305f\u3081\u306e\u8a00\u8a9e\u62e1\u5f35\u6a5f\u80fd\u3068\u30e9\u30a4\u30d6\u30e9\u30ea

    "},{"location":"articles/acronyms/#cd-committee-draft","title":"CD | Committee Draft","text":"

    \u898f\u683c\u306e\u59d4\u54e1\u4f1a\u539f\u6848

    "},{"location":"articles/acronyms/#cow-copy-on-write","title":"COW | Copy On Write","text":"

    \u30b3\u30d4\u30fc\u30aa\u30f3\u30e9\u30a4\u30c8\u3068\u547c\u3070\u308c\u308b\u6700\u9069\u5316\u30c6\u30af\u30cb\u30c3\u30af

    "},{"location":"articles/acronyms/#cpo-customization-point-object","title":"CPO | Customization point object","text":"

    C++20 \u4ee5\u964d\u306e\u6a19\u6e96\u30e9\u30a4\u30d6\u30e9\u30ea\u3067\u63d0\u4f9b\u3055\u308c\u308b\u3001\u30ab\u30b9\u30bf\u30de\u30a4\u30bc\u30fc\u30b7\u30e7\u30f3\u30dd\u30a4\u30f3\u30c8\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u3068\u547c\u3070\u308c\u308b\u95a2\u6570\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\uff08\u53c2\u8003\u8a18\u4e8b\uff09

    "},{"location":"articles/acronyms/#cpp-c-preprocessor","title":"CPP | C Preprocessor","text":"

    \u30de\u30af\u30ed\u3092\u51e6\u7406\u3059\u308b\u30d7\u30ea\u30d7\u30ed\u30bb\u30c3\u30b5

    "},{"location":"articles/acronyms/#crtp-curiously-recurring-template-pattern","title":"CRTP | Curiously Recurring Template Pattern","text":"

    \u5947\u5999\u306b\u518d\u5e30\u3057\u305f\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8\u30d1\u30bf\u30fc\u30f3

    "},{"location":"articles/acronyms/#ctad-class-template-argument-deduction","title":"CTAD | Class Template Argument Deduction","text":"

    \u30af\u30e9\u30b9\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8\u306e\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8\u5f15\u6570\u63a8\u8ad6

    "},{"location":"articles/acronyms/#ctre-compile-time-regular-expressions","title":"CTRE | Compile Time Regular Expressions","text":"

    \u30b3\u30f3\u30d1\u30a4\u30eb\u6642\u6b63\u898f\u8868\u73fe

    "},{"location":"articles/acronyms/#cwg-core-working-group","title":"CWG | Core Working Group","text":"

    C++ \u6a19\u6e96\u5316\u59d4\u54e1\u4f1a\u306e\u30ef\u30fc\u30ad\u30f3\u30b0\u30b0\u30eb\u30fc\u30d7\u306e 1 \u3064\u3002\u8a00\u8a9e\u6a5f\u80fd\u306b\u95a2\u3059\u308b\u898f\u683c\u6587\u9762\u3092\u30ec\u30d3\u30e5\u30fc\u3059\u308b\u3002

    "},{"location":"articles/acronyms/#deque-double-ended-queue","title":"deque | double-ended queue","text":"

    \u4e21\u7aef\u30ad\u30e5\u30fc

    "},{"location":"articles/acronyms/#de-the-design-and-evolution-of-c","title":"D&E | The Design and Evolution of C++","text":"

    Bjarne Stroustrup \u306b\u3088\u308b C++ \u306e\u8a2d\u8a08\u3068\u6b74\u53f2\u306e\u89e3\u8aac\u66f8\u30021994 \u5e74\u306b\u767a\u58f2\u3002

    "},{"location":"articles/acronyms/#dis-draft-international-standard","title":"DIS | Draft International Standard","text":"

    \u56fd\u969b\u898f\u683c\u6848

    "},{"location":"articles/acronyms/#dr-defect-report","title":"DR | Defect Report","text":"

    \u898f\u683c\u306e\u6b20\u9665\u306e\u5831\u544a

    "},{"location":"articles/acronyms/#ebo-empty-base-optimization","title":"EBO | Empty Base Optimization","text":"

    \u7a7a\u306e\u57fa\u5e95\u30af\u30e9\u30b9\u306e\u6700\u9069\u5316

    "},{"location":"articles/acronyms/#edg-edison-design-group","title":"EDG | Edison Design Group","text":"

    \u4f01\u696d\u540d\u3002C/C++ \u30b3\u30f3\u30d1\u30a4\u30e9\u30d5\u30ed\u30f3\u30c8\u30a8\u30f3\u30c9\u3092\u958b\u767a\u3059\u308b\u3002Edison Design Group

    "},{"location":"articles/acronyms/#emc-effective-modern-c","title":"EMC++ | Effective Modern C++","text":"

    Scott Meyers \u306b\u3088\u308b C++11/14 \u306e\u89e3\u8aac\u66f8

    "},{"location":"articles/acronyms/#eof-end-of-file","title":"EOF | End-of-File","text":"

    \u30d5\u30a1\u30a4\u30eb\u306e\u7d42\u7aef

    "},{"location":"articles/acronyms/#ewg-evolution-working-group","title":"EWG | Evolution Working Group","text":"

    C++ \u6a19\u6e96\u5316\u59d4\u54e1\u4f1a\u306e\u30ef\u30fc\u30ad\u30f3\u30b0\u30b0\u30eb\u30fc\u30d7\u306e 1 \u3064\u3002\u8a00\u8a9e\u6a5f\u80fd\u306e\u8a2d\u8a08\u3092\u3059\u308b\u3002

    "},{"location":"articles/acronyms/#ewgi-evolution-working-group-incubator","title":"EWGI | Evolution Working Group Incubator","text":"

    C++ \u6a19\u6e96\u5316\u59d4\u54e1\u4f1a\u306e\u30b9\u30bf\u30c7\u30a3\u30b0\u30eb\u30fc\u30d7\u306e 1 \u3064 (SG17). EWG \u306b\u5411\u3051\u305f\u63d0\u6848\u306e\u8a55\u4fa1\u3092\u3059\u308b\u3002

    "},{"location":"articles/acronyms/#fcd-final-committee-draft","title":"FCD | Final Committee Draft","text":"

    \u898f\u683c\u306e\u6700\u7d42\u59d4\u54e1\u4f1a\u539f\u6848

    "},{"location":"articles/acronyms/#fdis-final-draft-international-standard","title":"FDIS | Final Draft International Standard","text":"

    \u6700\u7d42\u56fd\u969b\u898f\u683c\u6848

    "},{"location":"articles/acronyms/#fifo-first-in-first-out","title":"FIFO | First in, first out","text":"

    std::queue \u306e\u3088\u3046\u306b\u3001\u6700\u521d\u306b\u8ffd\u52a0\u3057\u305f\u8981\u7d20\u304b\u3089\u9806\u756a\u306b\u53d6\u308a\u51fa\u3057\u3066\u3044\u304f\u30c7\u30fc\u30bf\u69cb\u9020\u3084\u624b\u9806

    "},{"location":"articles/acronyms/#gcc-gnu-compiler-collection-gnu-c-compiler","title":"GCC | GNU Compiler Collection / GNU C++ Compiler","text":"

    GNU \u30b3\u30f3\u30d1\u30a4\u30e9\u30b3\u30ec\u30af\u30b7\u30e7\u30f3\u3001\u307e\u305f\u306f\u305d\u306e C++ \u30b3\u30f3\u30d1\u30a4\u30e9

    "},{"location":"articles/acronyms/#gmf-global-module-fragment","title":"GMF | Global Module Fragment","text":"

    \u30b0\u30ed\u30fc\u30d0\u30eb\u30e2\u30b8\u30e5\u30fc\u30eb\u30d5\u30e9\u30b0\u30e1\u30f3\u30c8

    "},{"location":"articles/acronyms/#g-gnu-c-compiler","title":"G++ | GNU C++ Compiler","text":"

    GNU \u30b3\u30f3\u30d1\u30a4\u30e9\u30b3\u30ec\u30af\u30b7\u30e7\u30f3\u306e C++ \u30b3\u30f3\u30d1\u30a4\u30e9

    "},{"location":"articles/acronyms/#ice-internal-compiler-error","title":"ICE | Internal Compiler Error","text":"

    \u30b3\u30f3\u30d1\u30a4\u30e9\u5185\u90e8\u30a8\u30e9\u30fc

    "},{"location":"articles/acronyms/#ide-integrated-development-enviornment","title":"IDE | Integrated Development Enviornment","text":"

    \u7d71\u5408\u958b\u767a\u74b0\u5883

    "},{"location":"articles/acronyms/#iec-international-electronics-commission","title":"IEC | International Electronics Commission","text":"

    \u56fd\u969b\u96fb\u6c17\u6a19\u6e96\u4f1a\u8b70

    "},{"location":"articles/acronyms/#io-inputoutput","title":"I/O | Input/Output","text":"

    \u5165\u51fa\u529b

    "},{"location":"articles/acronyms/#is-international-standard","title":"IS | International Standard","text":"

    \u56fd\u969b\u898f\u683c

    "},{"location":"articles/acronyms/#iso-international-organization-for-standardization","title":"ISO | International Organization for Standardization","text":"

    \u56fd\u969b\u6a19\u6e96\u5316\u6a5f\u69cb

    "},{"location":"articles/acronyms/#kr-kernighan-and-ritchies","title":"K&R | Kernighan and Ritchie's","text":"

    \u30d6\u30e9\u30a4\u30a2\u30f3\u30fb\u30ab\u30fc\u30cb\u30cf\u30f3\u3068\u30c7\u30cb\u30b9\u30fb\u30ea\u30c3\u30c1\u30fc\u306b\u3088\u308b\u8457\u66f8\u300c\u30d7\u30ed\u30b0\u30e9\u30df\u30f3\u30b0\u8a00\u8a9e C\u300d\u306e\u4fd7\u79f0\u3002\u66f8\u4e2d\u3067\u4f7f\u308f\u308c\u3066\u3044\u308b\u5b57\u4e0b\u3052\u30b9\u30bf\u30a4\u30eb\u304c\u300cK&R \u30b9\u30bf\u30a4\u30eb\u300d\u3068\u547c\u3070\u308c\u308b\u3002

    "},{"location":"articles/acronyms/#lewg-library-evolution-working-group","title":"LEWG | Library Evolution Working Group","text":"

    C++ \u6a19\u6e96\u5316\u59d4\u54e1\u4f1a\u306e\u30ef\u30fc\u30ad\u30f3\u30b0\u30b0\u30eb\u30fc\u30d7\u306e 1 \u3064\u3002\u6a19\u6e96\u30e9\u30a4\u30d6\u30e9\u30ea\u306e\u8a2d\u8a08\u3092\u3059\u308b\u3002

    "},{"location":"articles/acronyms/#lewgi-library-evolution-working-group-incubator","title":"LEWGI | Library Evolution Working Group Incubator","text":"

    C++ \u6a19\u6e96\u5316\u59d4\u54e1\u4f1a\u306e\u30b9\u30bf\u30c7\u30a3\u30b0\u30eb\u30fc\u30d7\u306e 1 \u3064 (SG18). LEWG \u306b\u5411\u3051\u305f\u63d0\u6848\u306e\u8a55\u4fa1\u3092\u3059\u308b\u3002

    "},{"location":"articles/acronyms/#lhs-left-hand-side","title":"LHS | left-hand side","text":"

    \u5f0f\u306e\u5de6\u8fba

    "},{"location":"articles/acronyms/#lifo-last-in-first-out","title":"LIFO | Last-in, first-out","text":"

    std::stack \u306e\u3088\u3046\u306b\u3001\u6700\u3082\u65b0\u3057\u304f\u8ffd\u52a0\u3055\u308c\u305f\u8981\u7d20\u304b\u3089\u3001\u5165\u308c\u305f\u306e\u3068\u306f\u9006\u9806\u3067\u53d6\u308a\u51fa\u3057\u3066\u3044\u304f\u30c7\u30fc\u30bf\u69cb\u9020\u3084\u624b\u9806

    "},{"location":"articles/acronyms/#lto-link-time-optimization","title":"LTO | Link Time Optimization","text":"

    \u30ea\u30f3\u30af\u6642\u6700\u9069\u5316

    "},{"location":"articles/acronyms/#lwg-library-working-group","title":"LWG | Library Working Group","text":"

    C++ \u6a19\u6e96\u5316\u59d4\u54e1\u4f1a\u306e\u30ef\u30fc\u30ad\u30f3\u30b0\u30b0\u30eb\u30fc\u30d7\u306e 1 \u3064\u3002\u6a19\u6e96\u30e9\u30a4\u30d6\u30e9\u30ea\u306b\u95a2\u3059\u308b\u898f\u683c\u6587\u9762\u3092\u30ec\u30d3\u30e5\u30fc\u3059\u308b\u3002

    "},{"location":"articles/acronyms/#msvc-microsoft-visual-c","title":"MSVC | Microsoft Visual C++","text":"

    Microsoft Visual Studio \u306e C++ \u30b3\u30f3\u30d1\u30a4\u30e9

    "},{"location":"articles/acronyms/#nan-not-a-number","title":"NaN | Not a Number","text":"

    \u6d6e\u52d5\u5c0f\u6570\u70b9\u6570\u3067\u4f7f\u308f\u308c\u308b\u975e\u6570\u306e\u8868\u73fe

    "},{"location":"articles/acronyms/#nb-national-body","title":"NB | National Body","text":"

    \u6a19\u6e96\u5316\u59d4\u54e1\u4f1a\u306e\u5404\u56fd\u652f\u90e8

    "},{"location":"articles/acronyms/#ndr-no-diagnostic-required","title":"NDR | No Diagnostic Required","text":"

    C++ \u306e\u8a00\u8a9e\u4ed5\u69d8\u306b\u306f\u6cbf\u3063\u3066\u3044\u306a\u3044\u304c\u3001\u30b3\u30f3\u30d1\u30a4\u30eb\u6642\u9593\u306e\u77ed\u7e2e\u306e\u305f\u3081\u306b\u30b3\u30f3\u30d1\u30a4\u30e9\u306f\u30e1\u30c3\u30bb\u30fc\u30b8\u3092\u51fa\u529b\u3057\u306a\u304f\u3066\u3082\u3088\u3044\u3068\u3055\u308c\u3066\u3044\u308b\u9055\u53cd

    "},{"location":"articles/acronyms/#nrvo-named-return-value-optimization","title":"NRVO | Named Return Value Optimization","text":"

    \u540d\u524d\u4ed8\u304d\u623b\u308a\u5024\u306e\u6700\u9069\u5316

    "},{"location":"articles/acronyms/#nsdmi-non-static-data-member-initializers","title":"NSDMI | Non-Static Data Member Initializers","text":"

    \u975e\u9759\u7684\u30e1\u30f3\u30d0\u306e\u521d\u671f\u5316

    "},{"location":"articles/acronyms/#ntbs-null-terminated-byte-strings","title":"NTBS | Null-terminated Byte Strings","text":"

    \u30cc\u30eb\u6587\u5b57\u3067\u7d42\u4e86\u3059\u308b\u3001\u5404\u6587\u5b57\u304c 1 \u30d0\u30a4\u30c8\u3067\u8868\u73fe\u3055\u308c\u308b\u6587\u5b57\u914d\u5217

    "},{"location":"articles/acronyms/#ntmbs-null-terminated-multibyte-strings","title":"NTMBS | Null-terminated Multibyte Strings","text":"

    \u30cc\u30eb\u6587\u5b57\u3067\u7d42\u4e86\u3059\u308b\u3001\u5404\u6587\u5b57\u304c\u30de\u30eb\u30c1\u30d0\u30a4\u30c8\u3067\u8868\u73fe\u3055\u308c\u308b\u3053\u3068\u304c\u3042\u308b\u6587\u5b57\u914d\u5217

    "},{"location":"articles/acronyms/#nttp-non-type-template-parameter","title":"NTTP | Non-Type Template Parameter","text":"

    \u975e\u578b\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8\u30fb\u30d1\u30e9\u30e1\u30fc\u30bf

    "},{"location":"articles/acronyms/#nvi-non-virtual-interface","title":"NVI | Non-Virtual Interface","text":"

    \u975e\u4eee\u60f3\u30a4\u30f3\u30bf\u30fc\u30d5\u30a7\u30fc\u30b9\u3002C++ \u306e\u30d7\u30ed\u30b0\u30e9\u30df\u30f3\u30b0\u30c6\u30af\u30cb\u30c3\u30af

    "},{"location":"articles/acronyms/#odr-one-definition-rule","title":"ODR | One Definition Rule","text":"

    C++ \u306e\u8a2d\u8a08\u30b3\u30f3\u30bb\u30d7\u30c8\u306e 1 \u3064\u3002\u3042\u3089\u3086\u308b\u578b\u3084\u95a2\u6570\u3001\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8\u306f\u8907\u6570\u306e\u5b9a\u7fa9\u3092\u6301\u3066\u306a\u3044\u3068\u3044\u3046\u30eb\u30fc\u30eb

    "},{"location":"articles/acronyms/#ood-object-oriented-design","title":"OOD | Object Oriented Design","text":"

    \u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u6307\u5411\u8a2d\u8a08

    "},{"location":"articles/acronyms/#oop-object-oriented-programming","title":"OOP | Object Oriented Programming","text":"

    \u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u6307\u5411\u30d7\u30ed\u30b0\u30e9\u30df\u30f3\u30b0

    "},{"location":"articles/acronyms/#oopl-object-oriented-programing-language","title":"OOPL | Object Oriented Programing Language","text":"

    \u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u6307\u5411\u30d7\u30ed\u30b0\u30e9\u30df\u30f3\u30b0\u8a00\u8a9e

    "},{"location":"articles/acronyms/#pch-precompiled-header","title":"PCH | Precompiled Header","text":"

    \u30d7\u30ea\u30b3\u30f3\u30d1\u30a4\u30eb\u6e08\u307f\u30d8\u30c3\u30c0

    "},{"location":"articles/acronyms/#pgo-profile-guided-optimization","title":"PGO | Profile-guided Optimization","text":"

    \u30d7\u30ed\u30d5\u30a1\u30a4\u30ea\u30f3\u30b0\u306b\u3088\u308b\u6700\u9069\u5316

    "},{"location":"articles/acronyms/#pimpl-pointer-to-implementation","title":"PImpl | Pointer to Implementation","text":"

    \u30af\u30e9\u30b9\u306e\u5b9f\u88c5\u306e\u8a73\u7d30\u3092\u96a0\u3059\u3001C++ \u306e\u30d7\u30ed\u30b0\u30e9\u30df\u30f3\u30b0\u30c6\u30af\u30cb\u30c3\u30af

    "},{"location":"articles/acronyms/#pmf-pointer-to-member-function","title":"PMF | Pointer to Member Function","text":"

    \u30e1\u30f3\u30d0\u95a2\u6570\u3078\u306e\u30dd\u30a4\u30f3\u30bf

    "},{"location":"articles/acronyms/#pod-plain-old-data","title":"POD | Plain Old Data","text":"

    C \u8a00\u8a9e\u3068\u4e92\u63db\u6027\u306e\u3042\u308b\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u30ec\u30a4\u30a2\u30a6\u30c8\u3092\u6301\u3064\u578b

    "},{"location":"articles/acronyms/#raii-resource-allocation-is-initialization","title":"RAII | Resource Allocation Is Initialization","text":"

    \u300c\u30ea\u30bd\u30fc\u30b9\u53d6\u5f97\u306f\u521d\u671f\u5316\u3067\u3042\u308b\u300d\u3068\u3044\u3046 C++ \u306e\u30d7\u30ed\u30b0\u30e9\u30df\u30f3\u30b0\u30c6\u30af\u30cb\u30c3\u30af

    "},{"location":"articles/acronyms/#rhs-right-hand-side","title":"RHS | right-hand side","text":"

    \u5f0f\u306e\u53f3\u8fba

    "},{"location":"articles/acronyms/#rtti-run-time-type-information","title":"RTTI | Run-Time Type Information","text":"

    \u5b9f\u884c\u6642\u578b\u60c5\u5831

    "},{"location":"articles/acronyms/#rvo-return-value-optimization","title":"RVO | Return Value Optimization","text":"

    \u623b\u308a\u5024\u306e\u6700\u9069\u5316

    "},{"location":"articles/acronyms/#sbo-small-buffer-optimization","title":"SBO | Small Buffer Optimization","text":"

    \u5c0f\u3055\u3044\u52d5\u7684\u914d\u5217\u3067\u306e\u30e1\u30e2\u30ea\u30a2\u30ed\u30b1\u30fc\u30b7\u30e7\u30f3\u3092\u907f\u3051\u308b C++ \u306e\u6700\u9069\u5316\u30c6\u30af\u30cb\u30c3\u30af

    "},{"location":"articles/acronyms/#sd-standing-document","title":"SD | Standing Document","text":"

    \u6a19\u6e96\u5316\u59d4\u54e1\u4f1a\u306e\u5e38\u5099\u6587\u66f8 (https://isocpp.org/std/standing-documents)

    "},{"location":"articles/acronyms/#seh-structured-exception-handling","title":"SEH | Structured Exception Handling","text":"

    \u69cb\u9020\u5316\u4f8b\u5916\u51e6\u7406\u3002Windows \u3067\u4f7f\u308f\u308c\u308b\u72ec\u81ea\u306e\u4f8b\u5916\u51e6\u7406\u3002

    "},{"location":"articles/acronyms/#sfinae-substitution-failure-is-not-an-error","title":"SFINAE | Substitution Failure Is Not An Error","text":"

    \u30c6\u30f3\u30d7\u30ec\u30fc\u30c8\u30d7\u30ed\u30b0\u30e9\u30df\u30f3\u30b0\u306e\u30c6\u30af\u30cb\u30c3\u30af\u306e 1 \u3064

    "},{"location":"articles/acronyms/#sg-study-group","title":"SG | Study Group","text":"

    \u7279\u5b9a\u306e\u30c6\u30fc\u30de\u306b\u3064\u3044\u3066\u8b70\u8ad6\u3059\u308b\u3001C++ \u6a19\u6e96\u5316\u59d4\u54e1\u4f1a\u306e\u30b5\u30d6\u30b0\u30eb\u30fc\u30d7

    "},{"location":"articles/acronyms/#simd-single-instruction-multiple-data","title":"SIMD | Single Instruction Multiple Data","text":"

    \u4e26\u5217\u51e6\u7406\u306e\u5206\u985e\u306e 1 \u3064\u3067\u30011 \u3064\u306e\u547d\u4ee4\u306b\u3088\u308b\u64cd\u4f5c\u3092\u8907\u6570\u306e\u30c7\u30fc\u30bf\u306b\u5bfe\u3057\u3066\u540c\u6642\u306b\u884c\u3046\u3082\u306e

    "},{"location":"articles/acronyms/#soo-small-object-optimization","title":"SOO | Small Object Optimization","text":"

    \u5c0f\u3055\u306a\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u306b\u5bfe\u3059\u308b\u30e1\u30e2\u30ea\u30a2\u30ed\u30b1\u30fc\u30b7\u30e7\u30f3\u3092\u907f\u3051\u308b C++ \u306e\u6700\u9069\u5316\u30c6\u30af\u30cb\u30c3\u30af

    "},{"location":"articles/acronyms/#sso-small-string-optimization","title":"SSO | Small String Optimization","text":"

    \u77ed\u3044\u6587\u5b57\u5217\u3067\u306e\u30e1\u30e2\u30ea\u30a2\u30ed\u30b1\u30fc\u30b7\u30e7\u30f3\u3092\u907f\u3051\u308b C++ \u306e\u6700\u9069\u5316\u30c6\u30af\u30cb\u30c3\u30af

    "},{"location":"articles/acronyms/#stl-standard-template-library","title":"STL | Standard Template Library","text":"

    \u30a2\u30ec\u30af\u30b5\u30f3\u30c0\u30fc\u30fb\u30b9\u30c6\u30d1\u30ce\u30d5\u3089\u306b\u3088\u3063\u3066\u8a2d\u8a08\u3055\u308c\u305f\u6a19\u6e96\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8\u30e9\u30a4\u30d6\u30e9\u30ea\u3002\u306e\u3061\u306b C++ \u306e\u6a19\u6e96\u30e9\u30a4\u30d6\u30e9\u30ea\u306e\u4e00\u90e8\u3068\u306a\u3063\u305f\u3002\u73fe\u5728\u3067\u306f C++ \u6a19\u6e96\u30e9\u30a4\u30d6\u30e9\u30ea\u5168\u822c\u3092\u6307\u3057\u3066 STL \u3068\u547c\u3076\u3053\u3068\u3082\u3042\u308b\u3002

    "},{"location":"articles/acronyms/#t-type","title":"T | Type","text":"

    template <class T> \u306e\u3088\u3046\u306b\u3001\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8\u5f15\u6570\u3067\u3088\u304f\u4f7f\u308f\u308c\u308b\u540d\u524d\u3002\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8\u5f15\u6570\u304c\u3055\u3089\u306b\u767b\u5834\u3059\u308b\u5834\u5408\u306b\u306f\u3001\u30a2\u30eb\u30d5\u30a1\u30d9\u30c3\u30c8\u9806\u3067\u6b21\u306b\u6765\u308b U \u304c\u4f7f\u308f\u308c\u308b\u3053\u3068\u304c\u3042\u308b\u3002

    "},{"location":"articles/acronyms/#tcpl-the-c-programming-language","title":"TC++PL | The C++ Programming Language","text":"

    Bjarne Stroustrup \u306b\u3088\u308b C++ \u89e3\u8aac\u66f8\u30b7\u30ea\u30fc\u30ba\u306e 1 \u3064\u3002\u30d7\u30ed\u30b0\u30e9\u30de\u5411\u3051\u30022013 \u5e74\u306e\u7b2c 4 \u7248\u304c\u6700\u65b0\u3002

    "},{"location":"articles/acronyms/#tls-thread-local-storage","title":"TLS | Thread Local Storage","text":"

    \u30b9\u30ec\u30c3\u30c9\u5c40\u6240\u8a18\u61b6

    "},{"location":"articles/acronyms/#tmp-template-meta-programming","title":"TMP | Template Meta Programming","text":"

    \u30c6\u30f3\u30d7\u30ec\u30fc\u30c8\u30e1\u30bf\u30d7\u30ed\u30b0\u30e9\u30df\u30f3\u30b0

    "},{"location":"articles/acronyms/#tr-technical-report","title":"TR | Technical Report","text":"

    \u5b9f\u9a13\u7684\u306a C++ \u306e\u6a5f\u80fd\u306b\u95a2\u3059\u308b\u5831\u544a\u66f8\u3001\u73fe\u5728\u306f TS \u306b\u79fb\u884c

    "},{"location":"articles/acronyms/#ts-technical-specification","title":"TS | Technical Specification","text":"

    \u5b9f\u9a13\u7684\u306a C++ \u306e\u6a5f\u80fd\u306b\u95a2\u3059\u308b\u4ed5\u69d8\u66f8

    "},{"location":"articles/acronyms/#tu-translation-unit","title":"TU | Translation Unit","text":"

    \u7ffb\u8a33\u5358\u4f4d

    "},{"location":"articles/acronyms/#ub-undefined-behavior","title":"UB | Undefined Behavior","text":"

    \u672a\u5b9a\u7fa9\u52d5\u4f5c

    "},{"location":"articles/acronyms/#ucn-universal-character-name","title":"UCN | Universal Character Name","text":"

    \u30e6\u30cb\u30d0\u30fc\u30b5\u30eb\u6587\u5b57\u540d\u3002char32_t s = U'\\U0001F60E'; \u306e\u3088\u3046\u306b\u3001\u6587\u5b57\u30fb\u6587\u5b57\u5217\u30ea\u30c6\u30e9\u30eb\u306b\u304a\u3044\u3066 Unicode \u30b3\u30fc\u30c9\u30dd\u30a4\u30f3\u30c8\u306b\u3088\u308a\u8868\u3055\u308c\u305f\u6587\u5b57

    "},{"location":"articles/acronyms/#udl-user-defined-literals","title":"UDL | User-Defined Literals","text":"

    \u30e6\u30fc\u30b6\u5b9a\u7fa9\u30ea\u30c6\u30e9\u30eb

    "},{"location":"articles/acronyms/#urbg-uniform-random-bit-generator","title":"URBG | Uniform Random Bit Generator","text":"

    \u4e00\u69d8\u30e9\u30f3\u30c0\u30e0\u30d3\u30c3\u30c8\u751f\u6210\u5668\u3002C++14 \u307e\u3067\u306f URNG (Uniform Random Number Generator) \u3068\u3044\u3046\u8a9e\u3092\u4f7f\u7528\u3057\u3066\u3044\u305f\u3002

    "},{"location":"articles/acronyms/#vla-variable-length-array","title":"VLA | Variable Length Array","text":"

    \u53ef\u5909\u9577\u914d\u5217\u3002GCC \u304c\u62e1\u5f35\u6a5f\u80fd\u3068\u3057\u3066\u30b5\u30dd\u30fc\u30c8\u3057\u3001C99 \u3067\u306f\u6b63\u5f0f\u306b\u63a1\u7528\u3055\u308c\u3066\u3044\u308b\u304c\u3001C++ \u6a19\u6e96\u3067\u306f\u30b5\u30dd\u30fc\u30c8\u3057\u306a\u3044\u3002

    "},{"location":"articles/acronyms/#vlais-variable-length-array-in-structure","title":"VLAIS | Variable Length Array In Structure","text":"

    \u69cb\u9020\u4f53\u5185\u306b\u53ef\u5909\u9577\u914d\u5217\u3092\u5ba3\u8a00\u3067\u304d\u308b\u3001GCC \u306e\u62e1\u5f35\u6a5f\u80fd

    "},{"location":"articles/acronyms/#vmt-virtual-method-table","title":"VMT | Virtual Method Table","text":"

    \u4eee\u60f3\u95a2\u6570\u30c6\u30fc\u30d6\u30eb

    "},{"location":"articles/acronyms/#wd-working-draft","title":"WD | Working Draft","text":"

    \u898f\u683c\u306e\u4f5c\u696d\u539f\u6848

    "},{"location":"articles/acronyms/#wg-working-group","title":"WG | Working Group","text":"

    \u4f5c\u696d\u30b0\u30eb\u30fc\u30d7

    "},{"location":"articles/acronyms/#_1","title":"\u53c2\u8003\u6587\u732e","text":""},{"location":"articles/comment-tricks/","title":"\u30b3\u30e1\u30f3\u30c8\u30a2\u30a6\u30c8\u306e\u30c8\u30ea\u30c3\u30af","text":"

    \u30d7\u30ed\u30b0\u30e9\u30e0\u3067\u4f7f\u3048\u308b\u30b3\u30e1\u30f3\u30c8\u30a2\u30a6\u30c8\u306e\u30c8\u30ea\u30c3\u30af\u3092\u7d39\u4ecb\u3057\u307e\u3059\u3002 \u958b\u767a\u4e2d\u306e\u3061\u3087\u3063\u3068\u3057\u305f\u30c7\u30d0\u30c3\u30b0\u3084\u3001\u30df\u30b9\u306e\u9632\u6b62\u306b\u6d3b\u7528\u3067\u304d\u307e\u3059\u3002

    "},{"location":"articles/comment-tricks/#onoff","title":"\u7bc4\u56f2\u306e ON\u30fbOFF","text":"

    \u30b9\u30e9\u30c3\u30b7\u30e5 / \u306e\u6709\u7121\u306b\u5fdc\u3058\u3066\u3001\u7bc4\u56f2\u30b3\u30e1\u30f3\u30c8\u306e\u6709\u52b9\u30fb\u7121\u52b9\u3092\u5207\u308a\u66ff\u3048\u307e\u3059\u3002

    "},{"location":"articles/comment-tricks/#1","title":"\u30d1\u30bf\u30fc\u30f3 1","text":"\u7121\u52b9\u6709\u52b9
    #include <iostream>\n\nint main()\n{\n    /**/\n    int x;\n\n    std::cin >> x;\n\n    std::cout << x * x;\n    /**/\n}\n
    #include <iostream>\n\nint main()\n{\n    /**\n    int x;\n\n    std::cin >> x;\n\n    std::cout << x * x;\n    /**/\n}\n
    "},{"location":"articles/comment-tricks/#2","title":"\u30d1\u30bf\u30fc\u30f3 2","text":"\u7121\u52b9\u6709\u52b9
    #include <iostream>\n\nint main()\n{\n    //*\n    int x;\n\n    std::cin >> x;\n\n    std::cout << x * x;\n    //*/\n}\n
    #include <iostream>\n\nint main()\n{\n    /*\n    int x;\n\n    std::cin >> x;\n\n    std::cout << x * x;\n    //*/\n}\n
    "},{"location":"articles/comment-tricks/#_2","title":"\u5024\u306e\u5207\u308a\u66ff\u3048","text":"

    \u30b9\u30e9\u30c3\u30b7\u30e5 / \u306e\u6709\u7121\u306b\u5fdc\u3058\u3066\u3001\u5de6\u53f3\u3069\u3061\u3089\u304b\u306e\u5024\u3092\u9078\u629e\u3057\u307e\u3059\u3002

    \u5de6\u53f3
    #include <iostream>\n\nint main()\n{\n    constexpr int N = /**/ 100 /*/ 200 /**/;\n\n    std::cout << N << '\\n';\n}\n
    #include <iostream>\n\nint main()\n{\n    constexpr int N = /** 100 /*/ 200 /**/;\n\n    std::cout << N << '\\n';\n}\n
    "},{"location":"articles/comment-tricks/#_3","title":"\u7bc4\u56f2\u306e\u5207\u308a\u66ff\u3048","text":"

    \u5024\u306e\u5207\u308a\u66ff\u3048\u306e\u7bc4\u56f2\u7248\u3067\u3059\u3002 \u30b9\u30e9\u30c3\u30b7\u30e5 / \u306e\u6709\u7121\u306b\u5fdc\u3058\u3066\u3001\u524d\u534a\u3001\u5f8c\u534a\u3069\u3061\u3089\u304b\u306e\u7bc4\u56f2\u3092\u9078\u629e\u3057\u307e\u3059\u3002

    "},{"location":"articles/comment-tricks/#1_1","title":"\u30d1\u30bf\u30fc\u30f3 1","text":"\u524d\u534a\u5f8c\u534a
    #include <iostream>\n\nint main()\n{\n    /**/\n    int x;\n\n    std::cin >> x;\n\n    std::cout << x * x;\n    /*/\n    int x, y;\n\n    std::cin >> x >> y;\n\n    std::cout << x + y;\n    /**/\n}\n
    #include <iostream>\n\nint main()\n{\n    /**\n    int x;\n\n    std::cin >> x;\n\n    std::cout << x * x;\n    /*/\n    int x, y;\n\n    std::cin >> x >> y;\n\n    std::cout << x + y;\n    /**/\n}\n
    "},{"location":"articles/comment-tricks/#2_1","title":"\u30d1\u30bf\u30fc\u30f3 2","text":"\u524d\u534a\u5f8c\u534a
    #include <iostream>\n\nint main()\n{\n    //*\n    int x;\n\n    std::cin >> x;\n\n    std::cout << x * x;\n    /*/\n    int x, y;\n\n    std::cin >> x >> y;\n\n    std::cout << x + y;\n    //*/\n}\n
    #include <iostream>\n\nint main()\n{\n    /*\n    int x;\n\n    std::cin >> x;\n\n    std::cout << x * x;\n    /*/\n    int x, y;\n\n    std::cin >> x >> y;\n\n    std::cout << x + y;\n    //*/\n}\n
    "},{"location":"articles/comment-tricks/#_4","title":"\u884c\u306e\u5165\u308c\u66ff\u3048\u306e\u9632\u6b62","text":"

    \u30ea\u30d5\u30a1\u30af\u30bf\u30ea\u30f3\u30b0\u6642\u306b\u3001\u30b3\u30d4\u30fc\uff06\u30da\u30fc\u30b9\u30c8\u3067\u884c\u306e\u9806\u756a\u3092\u5165\u308c\u66ff\u3048\u3066\u3057\u307e\u3046\u3053\u3068\u3092\u9632\u304e\u307e\u3059\u3002

    \u5143\u306e\u30b3\u30fc\u30c9\u5165\u308c\u66ff\u3048\u308b\u3068\u30a8\u30e9\u30fc
    void First() {}\nvoid Second() {}\n\nint main()\n{\n    First();/*\n    */Second();\n}\n
    void First() {}\nvoid Second() {}\n\nint main()\n{\n    */ Second();\n    First();/*  \n}\n
    "},{"location":"articles/how-to-read-keywords/","title":"\u4e88\u7d04\u8a9e\u306e\u8aad\u307f\u65b9\u3068\u540d\u524d\u306e\u7531\u6765","text":"

    C++ \u306e\u4e88\u7d04\u8a9e\u306e\u8aad\u307f\u3068\u540d\u524d\u306e\u7531\u6765\u3067\u3059\u3002

    \u30ad\u30fc\u30ef\u30fc\u30c9 \u8aad\u307f \u540d\u524d\u306e\u7531\u6765 alignas \u30a2\u30e9\u30a4\u30f3\u30a2\u30ba \uff5e\u3068\u3057\u3066\u914d\u7f6e\u3059\u308b alignof \u30a2\u30e9\u30a4\u30f3\u30aa\u30d6 \uff5e\u306e\u914d\u7f6e\u306e\u3055\u308c\u65b9 and \u30a2\u30f3\u30c9 && \u306e\u7f6e\u304d\u63db\u3048 and_eq \u30a2\u30f3\u30c9\u30fb\u30a4\u30b3\u30fc\u30eb &= \u306e\u7f6e\u304d\u63db\u3048 asm \u30a2\u30bb\u30e0/\u30a2\u30bb\u30f3\u30d6\u30ea \u30a2\u30bb\u30f3\u30d6\u30ea (assembly) \u306e\u7565 auto \u30aa\u30fc\u30c8 \u81ea\u52d5 bitand \u30d3\u30c3\u30c8\u30a2\u30f3\u30c9 & \u306e\u7f6e\u304d\u63db\u3048 bitor \u30d3\u30c3\u30c8\u30aa\u30a2 | \u306e\u7f6e\u304d\u63db\u3048 bool \u30d6\u30fc\u30eb/\u30d6\u30fc\u30ea\u30a2\u30f3 \u30d6\u30fc\u30ea\u30a2\u30f3 (boolean) \u306e\u7565 break \u30d6\u30ec\u30fc\u30af \u4e2d\u65ad case \u30b1\u30fc\u30b9 \u5834\u5408 catch \u30ad\u30e3\u30c3\u30c1 \u6355\u307e\u3048\u308b char \u30c1\u30e3\u30fc/\u30ad\u30e3\u30e9/\u30ad\u30e3\u30e9\u30af\u30bf\u30fc \u6587\u5b57 (character) \u306e\u7565 char8_t \u30c1\u30e3\u30fc 8 \u30c6\u30a3\u30fc/\u30ad\u30e3\u30e9 8 \u30c6\u30a3\u30fc UTF-8 \u6587\u5b57 (character) \u578b (type) \u306e\u7565 char16_t \u30c1\u30e3\u30fc 16 \u30c6\u30a3\u30fc/\u30ad\u30e3\u30e9 16 \u30c6\u30a3\u30fc UTF-16 \u6587\u5b57 (character) \u578b (type) \u306e\u7565 char32_t \u30c1\u30e3\u30fc 32 \u30c6\u30a3\u30fc/\u30ad\u30e3\u30e9 32 \u30c6\u30a3\u30fc UTF-32 \u6587\u5b57 (character) \u578b (type) \u306e\u7565 class \u30af\u30e9\u30b9 \u90e8\u985e compl \u30b3\u30f3\u30d7\u30eb/\u30b3\u30f3\u30d7\u30ea\u30e1\u30f3\u30c8 \u88dc\u6570 concept \u30b3\u30f3\u30bb\u30d7\u30c8 \u30b3\u30f3\u30bb\u30d7\u30c8\u3002\u8981\u4ef6\u306e\u96c6\u5408 const \u30b3\u30f3\u30b9\u30c8 \u5b9a\u6570 (constant) \u306e\u7565 consteval \u30b3\u30f3\u30b9\u30c8\u30a4\u30fc\u30d0\u30eb/\u30b3\u30f3\u30b9\u30c8\u30a8\u30d0\u30eb \u5b9a\u6570 (constant) \u8a55\u4fa1 (evaluation) constexpr \u30b3\u30f3\u30b9\u30c8\u30a8\u30af\u30b9\u30d7\u30ec\u30c3\u30b7\u30e7\u30f3/\u30b3\u30f3\u30b9\u30c8\u30a8\u30af\u30b9\u30d1\u30fc \u5b9a\u6570 (constant) \u5f0f (expression) const_cast \u30b3\u30f3\u30b9\u30c8\u30fb\u30ad\u30e3\u30b9\u30c8 \u5b9a\u6570\u6027\u306e\u5909\u63db continue \u30b3\u30f3\u30c6\u30a3\u30cb\u30e5\u30fc \u30b9\u30ad\u30c3\u30d7\u3059\u308b co_await \u30b3\u30fb\u30a2\u30a6\u30a7\u30a4\u30c8 \u30b3\u30eb\u30fc\u30c1\u30f3 + \u5f85\u3064 co_return \u30b3\u30fb\u30ea\u30bf\u30fc\u30f3 \u30b3\u30eb\u30fc\u30c1\u30f3 + \u8fd4\u308b co_yield \u30b3\u30fb\u30a4\u30fc\u30eb\u30c9 \u30b3\u30eb\u30fc\u30c1\u30f3 + \u8b72\u308b decltype \u30c7\u30af\u30eb\u30bf\u30a4\u30d7 \u5ba3\u8a00 (declaration)+ \u578b (type) default \u30c7\u30d5\u30a9\u30eb\u30c8 \u65e2\u5b9a delete \u30c7\u30ea\u30fc\u30c8 \u524a\u9664 do \u30c9\u30a5\u30fc \u3059\u308b double \u30c0\u30d6\u30eb \u500d\u7cbe\u5ea6\u6d6e\u52d5\u5c0f\u6570\u70b9\u6570 (double precision floating point number) dynamic_cast \u30c0\u30a4\u30ca\u30df\u30c3\u30af\u30fb\u30ad\u30e3\u30b9\u30c8 \u52d5\u7684\u306a\u578b\u306e\u5909\u63db else \u30a8\u30eb\u30b9 \u305d\u306e\u307b\u304b enum \u30a4\u30cb\u30e5\u30fc\u30e0/\u30a4\u30fc\u30ca\u30e0 \u5217\u6319\u5b50 (enumerator) \u306e\u7565 explicit \u30a8\u30af\u30b9\u30d7\u30ea\u30b7\u30c3\u30c8 \u660e\u793a\u7684\u306a export \u30a8\u30af\u30b9\u30dd\u30fc\u30c8 \u307b\u304b\u3078\u9001\u308a\u51fa\u3059 extern \u30a8\u30af\u30b9\u30bf\u30fc\u30f3 \u5916\u90e8\u3078 (external) \u306e\u7565 false \u30d5\u30a9\u30eb\u30b9/\u30d5\u30a9\u30fc\u30eb\u30b9 \u507d float \u30d5\u30ed\u30fc\u30c8 \u6d6e\u52d5\u5c0f\u6570\u70b9\u6570 (floating point number) for \u30d5\u30a9\u30fc/\u30d5\u30a9\u30a2 \uff5e\u306b\u5bfe\u3057\u3066 friend \u30d5\u30ec\u30f3\u30c9 \u53cb\u3060\u3061 goto \u30b4\u30fc\u30c8\u30a5\u30fc \uff5e\u3078\u884c\u304f if \u30a4\u30d5 \u3082\u3057 import \u30a4\u30f3\u30dd\u30fc\u30c8 \uff5e\u306b\u6301\u3061\u8fbc\u3080 inline \u30a4\u30f3\u30e9\u30a4\u30f3 \u30a4\u30f3\u30e9\u30a4\u30f3 int \u30a4\u30f3\u30c8 \u6574\u6570 (integer) \u306e\u7565 long \u30ed\u30f3\u30b0 \u9577\u3044 module \u30e2\u30b8\u30e5\u30fc\u30eb \u90e8\u54c1\u306e\u96c6\u307e\u308a mutable \u30df\u30e5\u30fc\u30bf\u30d6\u30eb \u5909\u66f4\u53ef\u80fd\u306a namespace \u30cd\u30fc\u30e0\u30b9\u30da\u30fc\u30b9 \u540d\u524d\u7a7a\u9593 new \u30cb\u30e5\u30fc \u65b0\u3057\u3044 noexcept \u30ce\u30fc\u30a8\u30af\u30bb\u30d7\u30c8 \u7121\u4f8b\u5916 (no exception) \u306e\u7565 not \u30ce\u30c3\u30c8 ! \u306e\u7f6e\u304d\u63db\u3048 not_eq \u30ce\u30c3\u30c8\u30fb\u30a4\u30b3\u30fc\u30eb != \u306e\u7f6e\u304d\u63db\u3048 nullptr \u30cc\u30eb\u30dd\u30a4\u30f3\u30bf/\u30cc\u30eb\u30d4\u30fc\u30c6\u30a3\u30fc\u30a2\u30fc\u30eb null \u3092\u8868\u3059\u30dd\u30a4\u30f3\u30bf operator \u30aa\u30da\u30ec\u30fc\u30bf\u30fc \u6f14\u7b97\u5b50 or \u30aa\u30a2 || \u306e\u7f6e\u304d\u63db\u3048 or_eq \u30aa\u30a2\u30fb\u30a4\u30b3\u30fc\u30eb ||= \u306e\u7f6e\u304d\u63db\u3048 private \u30d7\u30e9\u30a4\u30d9\u30fc\u30c8 \u79c1\u6709\u306e protected \u30d7\u30ed\u30c6\u30af\u30c6\u30c3\u30c9 \u4fdd\u8b77\u3055\u308c\u305f public \u30d1\u30d6\u30ea\u30c3\u30af \u516c\u958b\u3055\u308c\u305f register \u30ec\u30b8\u30b9\u30bf\u30fc (CPU \u306e) \u30ec\u30b8\u30b9\u30bf reinterpret_cast \u30ea\u30a4\u30f3\u30bf\u30fc\u30d7\u30ea\u30c3\u30c8\u30fb\u30ad\u30e3\u30b9\u30c8 \u518d\u89e3\u91c8\u3059\u308b\u5909\u63db requires \u30ea\u30af\u30ef\u30a4\u30a2\u30ba \u8981\u6c42\u3059\u308b return \u30ea\u30bf\u30fc\u30f3 \u8fd4\u3059 short \u30b7\u30e7\u30fc\u30c8 \u77ed\u3044 signed \u30b5\u30a4\u30f3\u30c9 \u7b26\u53f7\u4ed8\u304d sizeof \u30b5\u30a4\u30ba\u30aa\u30d6 \uff5e\u306e\u30b5\u30a4\u30ba static \u30b9\u30bf\u30c6\u30a3\u30c3\u30af \u9759\u7684\u306a static_assert \u30b9\u30bf\u30c6\u30a3\u30c3\u30af\u30fb\u30a2\u30b5\u30fc\u30c8 \u9759\u7684 (static) \u306a\u8868\u660e (assertion) static_cast \u30b9\u30bf\u30c6\u30a3\u30c3\u30af\u30fb\u30ad\u30e3\u30b9\u30c8 \u9759\u7684\u306b\u5909\u63db\u3059\u308b struct \u30b9\u30c8\u30e9\u30af\u30c8 \u69cb\u9020 switch \u30b9\u30a4\u30c3\u30c1 \u5206\u5c90 template \u30c6\u30f3\u30d7\u30ec\u30fc\u30c8 \u96db\u5f62 this \u30c7\u30a3\u30b9 \u3053\u306e thread_local \u30b9\u30ec\u30c3\u30c9\u30fb\u30ed\u30fc\u30ab\u30eb \u30b9\u30ec\u30c3\u30c9 + \u5c40\u6240\u7684\u306a throw \u30b9\u30ed\u30fc \u6295\u3052\u308b true \u30c8\u30a5\u30eb\u30fc \u771f try \u30c8\u30e9\u30a4 \u8a66\u884c\u3059\u308b typedef \u30bf\u30a4\u30d7\u30c7\u30d5 \u578b (type) \u5b9a\u7fa9 (definition) \u306e\u7565 typeid \u30bf\u30a4\u30d7\u30a2\u30a4\u30c7\u30a3\u30fc \u578b (type) \u8b58\u5225 (identification) typename \u30bf\u30a4\u30d7\u30cd\u30fc\u30e0 \u578b (type) \u306e\u540d\u524d (name) union \u30e6\u30cb\u30aa\u30f3 \u9023\u5408/\u5171\u7528 unsigned \u30a2\u30f3\u30b5\u30a4\u30f3\u30c9 \u7b26\u53f7\u306a\u3057 using \u30e6\u30fc\u30b8\u30f3\u30b0 \u4f7f\u3046 virtual \u30d0\u30fc\u30c1\u30e3\u30eb \u4eee\u60f3 void \u30f4\u30a9\u30a4\u30c9 \u7a7a\u306e volatile \u30dc\u30e9\u30bf\u30a4\u30eb \u63ee\u767a\u3059\u308b wchar_t \u30c0\u30d6\u30eb\u30c1\u30e3\u30fc\u30c6\u30a3\u30fc/\u30c0\u30d6\u30eb\u30ad\u30e3\u30e9\u30c6\u30a3\u30fc \u30ef\u30a4\u30c9\u306a char while \u30ef\u30a4\u30eb/\u30db\u30ef\u30a4\u30eb \uff5e\u306e\u9593 xor \u30a8\u30c3\u30af\u30b9\u30aa\u30a2 ^ \u306e\u7f6e\u304d\u63db\u3048 xor_eq \u30a8\u30c3\u30af\u30b9\u30aa\u30a2\u30fb\u30a4\u30b3\u30fc\u30eb ^= \u306e\u7f6e\u304d\u63db\u3048"},{"location":"articles/how-to-read-libraries/","title":"\u6a19\u6e96\u30e9\u30a4\u30d6\u30e9\u30ea\u306e\u8aad\u307f\u3068\u540d\u524d\u306e\u7531\u6765","text":""},{"location":"articles/how-to-read-libraries/#c","title":"C++ \u306e\u6a19\u6e96\u30e9\u30a4\u30d6\u30e9\u30ea","text":"\u30e9\u30a4\u30d6\u30e9\u30ea\u540d \u8aad\u307f \u540d\u524d\u306e\u7531\u6765 algorithm \u30a2\u30eb\u30b4\u30ea\u30ba\u30e0 \u30a2\u30eb\u30b4\u30ea\u30ba\u30e0 any \u30a8\u30cb\u30fc \u306a\u3093\u3067\u3082 array \u30a2\u30ec\u30a4 \u914d\u5217 atomic \u30a2\u30c8\u30df\u30c3\u30af \u4e0d\u53ef\u5206\u6027 bit \u30d3\u30c3\u30c8 \u30d3\u30c3\u30c8\u6f14\u7b97 bitset \u30d3\u30c3\u30c8\u30bb\u30c3\u30c8 \u30d3\u30c3\u30c8\u96c6\u5408 charconv \u30c1\u30e3\u30fc\u30b3\u30f3\u30d6/\u30ad\u30e3\u30e9\u30b3\u30f3\u30d6 \u6587\u5b57\u306e\u5909\u63db (character conversion) \u306e\u7565 chrono \u30af\u30ed\u30ce \u6642\u9593 (\u30ae\u30ea\u30b7\u30e3\u8a9e\u306e Chronus \u306b\u7531\u6765) codecvt \u30b3\u30fc\u30c9\u30b3\u30f3\u30d0\u30fc\u30c8/\u30b3\u30fc\u30c9\u30b7\u30fc\u30d6\u30a4\u30c6\u30a3\u30fc \u6587\u5b57\u30b3\u30fc\u30c9\u5909\u63db compare \u30b3\u30f3\u30da\u30a2 \u6bd4\u8f03 complex \u30b3\u30f3\u30d7\u30ec\u30c3\u30af\u30b9 \u8907\u7d20\u6570 concepts \u30b3\u30f3\u30bb\u30d7\u30c4 \u30b3\u30f3\u30bb\u30d7\u30c8 condition_variable \u30b3\u30f3\u30c7\u30a3\u30b7\u30e7\u30f3\u30fb\u30f4\u30a1\u30ea\u30a2\u30d6\u30eb \u6761\u4ef6\u5909\u6570 contract \u30b3\u30f3\u30c8\u30e9\u30af\u30c8 \u5951\u7d04 coroutine \u30b3\u30eb\u30fc\u30c1\u30f3 \u30b3\u30eb\u30fc\u30c1\u30f3 deque \u30c7\u30c3\u30af/\u30c7\u30ad\u30e5\u30fc \u4e21\u7aef\u30ad\u30e5\u30fc (double ended queue) \u306e\u7565 exception \u30a8\u30af\u30bb\u30d7\u30b7\u30e7\u30f3 \u4f8b\u5916 execution \u30a8\u30b0\u30bc\u30ad\u30e5\u30fc\u30b7\u30e7\u30f3 \u5b9f\u884c filesystem \u30d5\u30a1\u30a4\u30eb\u30b7\u30b9\u30c6\u30e0 \u30d5\u30a1\u30a4\u30eb\u30b7\u30b9\u30c6\u30e0 forward_list \u30d5\u30a9\u30ef\u30fc\u30c9\u30fb\u30ea\u30b9\u30c8 \u5358\u65b9\u5411\u30ea\u30b9\u30c8 fstream \u30a8\u30d5\u30b9\u30c8\u30ea\u30fc\u30e0 \u30d5\u30a1\u30a4\u30eb\u7528\u30b9\u30c8\u30ea\u30fc\u30e0 functional \u30d5\u30a1\u30f3\u30af\u30b7\u30e7\u30ca\u30eb \u95a2\u6570\u306e future \u30d5\u30e5\u30fc\u30c1\u30e3\u30fc \u672a\u6765 initializer_list \u30a4\u30cb\u30b7\u30e3\u30e9\u30a4\u30b6\u30fc\u30fb\u30ea\u30b9\u30c8 \u521d\u671f\u5316\u30ea\u30b9\u30c8 iomanip \u30a2\u30a4\u30aa\u30fc\u30de\u30cb\u30d4\u30e5 \u5165\u51fa\u529b\u306e\u64cd\u4f5c (manipulator) ios \u30a2\u30a4\u30aa\u30fc\u30a8\u30b9 \u5165\u51fa\u529b\u30b9\u30c8\u30ea\u30fc\u30e0 iosfwd \u30a2\u30a4\u30aa\u30fc\u30a8\u30b9\u30d5\u30a9\u30ef\u30fc\u30c9 \u5165\u51fa\u529b\u30b9\u30c8\u30ea\u30fc\u30e0\u306e\u524d\u65b9\u5ba3\u8a00 iostream \u30a2\u30a4\u30aa\u30fc\u30b9\u30c8\u30ea\u30fc\u30e0 \u6a19\u6e96\u5165\u51fa\u529b\u30b9\u30c8\u30ea\u30fc\u30e0 istream \u30a2\u30a4\u30b9\u30c8\u30ea\u30fc\u30e0 \u5165\u529b\u30b9\u30c8\u30ea\u30fc\u30e0 iterator \u30a4\u30c6\u30ec\u30fc\u30bf\u30fc \u53cd\u5fa9\u5b50 limits \u30ea\u30df\u30c3\u30c4 \u4e0a\u9650\u4e0b\u9650 list \u30ea\u30b9\u30c8 \u30ea\u30b9\u30c8 locale \u30ed\u30b1\u30fc\u30eb \u5730\u57df map \u30de\u30c3\u30d7 \u30de\u30c3\u30d7 memory \u30e1\u30e2\u30ea\u30fc \u30e1\u30e2\u30ea\u30fc memory_resource \u30e1\u30e2\u30ea\u30fc\u30fb\u30ea\u30bd\u30fc\u30b9 \u30e1\u30e2\u30ea\u30fc\u30ea\u30bd\u30fc\u30b9 mutex \u30df\u30e5\u30fc\u30c6\u30c3\u30af\u30b9 \u6392\u4ed6\u5236\u5fa1 (mutual exclusion) \u306e\u7565 new \u30cb\u30e5\u30fc \u65b0\u3057\u3044 numeric \u30cb\u30e5\u30fc\u30e1\u30ea\u30c3\u30af \u6570\u5024\u7684\u306a optional \u30aa\u30d7\u30b7\u30e7\u30ca\u30eb \u9078\u629e\u3067\u304d\u308b ostream \u30aa\u30fc\u30b9\u30c8\u30ea\u30fc\u30e0 \u51fa\u529b\u30b9\u30c8\u30ea\u30fc\u30e0 queue \u30ad\u30e5\u30fc \u30ad\u30e5\u30fc random \u30e9\u30f3\u30c0\u30e0 \u4e71\u6570 ranges \u30ec\u30f3\u30b8 \u7bc4\u56f2 ratio \u30ec\u30b7\u30aa \u6709\u7406\u6570 regex \u30ec\u30b8\u30a7\u30c3\u30af\u30b9 \u6b63\u898f\u8868\u73fe (regular expression) \u306e\u7565 scoped_allocator \u30b9\u30b3\u30fc\u30d7\u30c9\u30fb\u30a2\u30ed\u30b1\u30fc\u30bf\u30fc \u7bc4\u56f2\u3092\u6c7a\u3081\u305f\u30a2\u30ed\u30b1\u30fc\u30bf set \u30bb\u30c3\u30c8 \u96c6\u5408 shared_mutex \u30b7\u30a7\u30a2\u30fc\u30c9\u30fb\u30df\u30e5\u30fc\u30c6\u30c3\u30af\u30b9 \u5171\u6709\u7684\u306a mutex span \u30b9\u30d1\u30f3 \u7bc4\u56f2 sstream \u30a8\u30b9\u30b9\u30c8\u30ea\u30fc\u30e0 \u6587\u5b57\u5217\u306e\u30b9\u30c8\u30ea\u30fc\u30e0 stack \u30b9\u30bf\u30c3\u30af \u30b9\u30bf\u30c3\u30af stdexcept \u30a8\u30b9\u30c6\u30a3\u30fc\u30c7\u30a3\u30fc\u30a8\u30af\u30bb\u30d7\u30c8/\u30b9\u30bf\u30f3\u30c0\u30fc\u30c9\u30a8\u30af\u30bb\u30d7\u30c8 \u6a19\u6e96\u7684\u306a\u4f8b\u5916 streambuf \u30b9\u30c8\u30ea\u30fc\u30e0\u30d0\u30d5/\u30b9\u30c8\u30ea\u30fc\u30e0\u30d0\u30c3\u30d5\u30a1 \u30b9\u30c8\u30ea\u30fc\u30e0\u30d0\u30c3\u30d5\u30a1\u30fc string \u30b9\u30c8\u30ea\u30f3\u30b0 \u6587\u5b57\u5217 string_view \u30b9\u30c8\u30ea\u30f3\u30b0\u30d3\u30e5\u30fc \u6587\u5b57\u5217\u306e\u30d3\u30e5\u30fc strstream \u30a8\u30b9\u30c6\u30a3\u30fc\u30a2\u30fc\u30eb\u30b9\u30c8\u30ea\u30fc\u30e0/\u30b9\u30c8\u30e9\u30b9\u30c8\u30ea\u30fc\u30e0 \u6587\u5b57\u5217\u306e\u30b9\u30c8\u30ea\u30fc\u30e0 syncstream \u30b7\u30f3\u30af\u30b9\u30c8\u30ea\u30fc\u30e0 \u540c\u671f\u7684\u306a\u30b9\u30c8\u30ea\u30fc\u30e0 system_error \u30b7\u30b9\u30c6\u30e0\u30fb\u30a8\u30e9\u30fc \u30b7\u30b9\u30c6\u30e0\u30a8\u30e9\u30fc thread \u30b9\u30ec\u30c3\u30c9 \u30b9\u30ec\u30c3\u30c9 tuple \u30bf\u30d7\u30eb \u5024\u306e\u7d44 typeindex \u30bf\u30a4\u30d7\u30a4\u30f3\u30c7\u30c3\u30af\u30b9 \u30bf\u30a4\u30d7\u30a4\u30f3\u30c7\u30c3\u30af\u30b9 typeinfo \u30bf\u30a4\u30d7\u30a4\u30f3\u30d5\u30a9 \u578b\u306e\u60c5\u5831 type_traits \u30bf\u30a4\u30d7\u30fb\u30c8\u30ec\u30a4\u30c4 \u578b\u306e\u7279\u5fb4 unordered_map \u30a2\u30f3\u30aa\u30fc\u30c0\u30fc\u30c9\u30fb\u30de\u30c3\u30d7 \u975e\u9806\u5e8f\u306a map unordered_set \u30a2\u30f3\u30aa\u30fc\u30c0\u30fc\u30c9\u30fb\u30bb\u30c3\u30c8 \u975e\u9806\u5e8f\u306a set utility \u30e6\u30fc\u30c6\u30a3\u30ea\u30c6\u30a3\u30fc \u4fbf\u5229\u6a5f\u80fd valarray \u30f4\u30a1\u30eb\u30a2\u30ec\u30a4 \u5024\u306e\u914d\u5217 variant \u30f4\u30a1\u30ea\u30a2\u30f3\u30c8 \u76f8\u9055\u3057\u305f vector \u30d9\u30af\u30bf\u30fc \u30d9\u30af\u30c8\u30eb version \u30d0\u30fc\u30b8\u30e7\u30f3 \u30d0\u30fc\u30b8\u30e7\u30f3"},{"location":"articles/how-to-read-libraries/#c_1","title":"C \u8a00\u8a9e\u7531\u6765\u306e\u6a19\u6e96\u30e9\u30a4\u30d6\u30e9\u30ea","text":"

    <\uff5e.h> \u5f62\u5f0f\u306e C \u6a19\u6e96\u30e9\u30a4\u30d6\u30e9\u30ea\u306e\u591a\u304f\u304c\u3001<c\uff5e> \u3068\u3044\u3046\u540d\u524d\u3067 C++ \u6a19\u6e96\u30e9\u30a4\u30d6\u30e9\u30ea\u306b\u542b\u307e\u308c\u3066\u3044\u307e\u3059\u3002

    \u30e9\u30a4\u30d6\u30e9\u30ea\u540d \u8aad\u307f \u540d\u524d\u306e\u7531\u6765 cassert \u30b7\u30fc\u30a2\u30b5\u30fc\u30c8 \u8868\u660e cctype \u30b7\u30fc\u30b7\u30fc\u30bf\u30a4\u30d7 \u6587\u5b57\u306e\u5206\u985e cerrno \u30b7\u30fc\u30a8\u30e9\u30fc\u30ca\u30f3\u30d0\u30fc \u30a8\u30e9\u30fc\u30ca\u30f3\u30d0\u30fc (error number) \u306e\u7565 cfenv \u30b7\u30fc\u30a8\u30d5\u30a8\u30f3\u30d6 \u6d6e\u52d5\u5c0f\u6570\u70b9\u6570\u306e\u74b0\u5883\u8a2d\u5b9a (float environment) \u306e\u7565 cfloat \u30b7\u30fc\u30d5\u30ed\u30fc\u30c8 \u6d6e\u52d5\u5c0f\u6570\u70b9\u6570 cinttypes \u30b7\u30fc\u30a4\u30f3\u30c8\u30bf\u30a4\u30d7\u30b9 \u6574\u6570\u578b climits \u30b7\u30fc\u30ea\u30df\u30c3\u30c4 \u4e0a\u9650\u4e0b\u9650 clocale \u30b7\u30fc\u30ed\u30b1\u30fc\u30eb \u5730\u57df cmath \u30b7\u30fc\u30de\u30b9 \u6570\u5b66\u95a2\u6570 csetjmp \u30b7\u30fc\u30bb\u30c3\u30c8\u30b8\u30e3\u30f3\u30d7 \u30bb\u30c3\u30c8\u30b8\u30e3\u30f3\u30d7\u547d\u4ee4 csignal \u30b7\u30fc\u30b7\u30b0\u30ca\u30eb \u30b7\u30b0\u30ca\u30eb cstdarg \u30b7\u30fc\u30a8\u30b9\u30c6\u30a3\u30fc\u30c7\u30a3\u30fc\u30a2\u30fc\u30b0/\u30b7\u30fc\u30b9\u30bf\u30f3\u30c0\u30fc\u30c9\u30a2\u30fc\u30b0 \u5f15\u6570 cstddef \u30b7\u30fc\u30a8\u30b9\u30c6\u30a3\u30fc\u30c7\u30a3\u30fc\u30c7\u30d5/\u30b7\u30fc\u30b9\u30bf\u30f3\u30c0\u30fc\u30c9\u30c7\u30d5 \u57fa\u672c\u7684\u306a\u5b9a\u7fa9 cstdint \u30b7\u30fc\u30a8\u30b9\u30c6\u30a3\u30fc\u30c7\u30a3\u30fc\u30a4\u30f3\u30c8/\u30b7\u30fc\u30b9\u30bf\u30f3\u30c0\u30fc\u30c9\u30a4\u30f3\u30c8 \u57fa\u672c\u7684\u306a\u6574\u6570 cstdio \u30b7\u30fc\u30a8\u30b9\u30c6\u30a3\u30fc\u30c7\u30a3\u30fc\u30a2\u30a4\u30aa\u30fc/\u30b7\u30fc\u30b9\u30bf\u30f3\u30c0\u30fc\u30c9\u30a2\u30a4\u30aa\u30fc \u57fa\u672c\u7684\u306a\u5165\u51fa\u529b cstdlib \u30b7\u30fc\u30a8\u30b9\u30c6\u30a3\u30fc\u30c7\u30a3\u30fc\u30ea\u30d6/\u30b7\u30fc\u30b9\u30bf\u30f3\u30c0\u30fc\u30c9\u30ea\u30d6 \u57fa\u672c\u7684\u306a\u30e9\u30a4\u30d6\u30e9\u30ea cstring \u30b7\u30fc\u30b9\u30c8\u30ea\u30f3\u30b0 \u6587\u5b57\u5217 ctime \u30b7\u30fc\u30bf\u30a4\u30e0 \u6642\u9593 cuchar \u30b7\u30fc\u30e6\u30fc\u30c1\u30e3\u30fc Unicode \u6587\u5b57 cwchar \u30b7\u30fc\u30c0\u30d6\u30eb\u30c1\u30e3\u30fc \u30ef\u30a4\u30c9\u6587\u5b57 cwctype \u30b7\u30fc\u30c0\u30d6\u30eb\u30bf\u30a4\u30d7 \u30ef\u30a4\u30c9\u6587\u5b57\u306e\u5206\u985e"},{"location":"articles/ieee754-arithmetic/","title":"IEEE 754 \u6f14\u7b97\u306e\u30eb\u30fc\u30eb","text":"

    \u6d6e\u52d5\u5c0f\u6570\u70b9\u6570\u306e\u4e38\u3081\u30e2\u30fc\u30c9\u304c FE_TONEAREST \u306e\u5834\u5408\u306e\u7d50\u679c\u3067\u3059\u3002

    "},{"location":"articles/ieee754-arithmetic/#_1","title":"\u56db\u5247\u6f14\u7b97","text":""},{"location":"articles/ieee754-arithmetic/#_2","title":"\u6bd4\u8f03\u6f14\u7b97","text":""},{"location":"articles/ieee754-arithmetic/#_3","title":"\u4e09\u65b9\u6bd4\u8f03\u6f14\u7b97","text":"

    \u7d50\u679c\u306f std::partial_ordering \u578b

    "},{"location":"articles/it-compiles/","title":"\u306a\u305c\u304b\u30b3\u30f3\u30d1\u30a4\u30eb\u3067\u304d\u308b","text":"

    C++ \u306e\u898f\u683c\u4e0a\u30b3\u30f3\u30d1\u30a4\u30eb\u3067\u304d\u308b\u3001\u4e0d\u601d\u8b70\u306a\u898b\u305f\u76ee\u306e\u30b3\u30fc\u30c9\u306e\u7d39\u4ecb\u3067\u3059\u3002

    "},{"location":"articles/it-compiles/#url","title":"\u30bd\u30fc\u30b9\u30b3\u30fc\u30c9\u306b URL","text":"
    int main()\n{\n    https://cppmap.github.io\n    return 0;\n}\n
    "},{"location":"articles/it-compiles/#main-try","title":"main \u95a2\u6570 try \u30d6\u30ed\u30c3\u30af","text":"
    int main()\ntry\n{\n\n}\ncatch (...)\n{\n    return -1;\n}\n
    "},{"location":"articles/it-compiles/#_2","title":"\u6dfb\u5b57\u5f0f\u306e\u5165\u308c\u66ff\u3048","text":"
    #include <iostream>\n\nint main()\n{\n    int a[3] = { 10, 20, 30 };\n\n    std::cout << 2[a] << '\\n';\n\n    for (int i = 0; i < 3; ++i)\n    {\n        std::cout << i[a] << '\\n';\n    }\n}\n
    "},{"location":"articles/it-compiles/#_3","title":"\u62ec\u5f27\u306e\u9023\u7d9a","text":"
    int main()\n{\n    {};\n    []{};\n    [](){};\n    [](){}();\n    [[]][]{};\n    []()[[]]{};\n    [[]][]{}();\n    [[]][](){};\n    []()[[]]{}();\n    [[]][](){}();\n    [[]][]()[[]]{};\n    [[]][]()[[]]{}();\n}\n
    "},{"location":"articles/it-compiles/#_4","title":"\u7a7a\u306e\u30d7\u30ea\u30d7\u30ed\u30bb\u30c3\u30b5\u30c7\u30a3\u30ec\u30af\u30c6\u30a3\u30d6","text":"
    #\n#include <iostream>\n#\n\nint main()\n{\n    #\n}\n
    "},{"location":"articles/it-compiles/#-","title":"--> \u6f14\u7b97\u5b50","text":"
    #include <iostream>\n\nint main()\n{\n    int i = 10;\n\n    while (i --> 0)\n    {\n        std::cout << i << '\\n';\n    }\n}\n
    "},{"location":"articles/it-compiles/#_5","title":"\u540c\u3058\u95a2\u6570","text":"
    #include <iostream>\n\nusing ll = long long;\n\nvoid f(unsigned ll)\n{\n    std::cout << \"A\\n\";\n}\n\nvoid f(unsigned long long)\n{\n    std::cout << \"B\\n\";\n}\n\nint main()\n{\n    f(123ull);\n}\n
    "},{"location":"articles/it-compiles/#nodiscard","title":"\u623b\u308a\u5024\u304c\u7121\u3044\u306e\u306b [[nodiscard]]","text":"
    [[nodiscard]] void Func()\n{\n\n}\n\nint main()\n{\n    Func(); // \u8b66\u544a\u306f\u51fa\u306a\u3044\n}\n
    "},{"location":"articles/it-compiles/#_6","title":"\u9577\u3044\u95a2\u6570","text":"
    struct C\n{\n    inline virtual volatile constexpr const unsigned long long int f() const noexcept final = delete;\n};\n\nint main()\n{\n\n}\n
    "},{"location":"articles/it-compiles/#_7","title":"\u540d\u524d\u7a7a\u9593\u30a8\u30a4\u30ea\u30a2\u30b9\u306e\u518d\u5e30","text":"
    namespace A\n{\n    namespace A = A;\n\n    void f() {}\n}\n\nint main()\n{\n    A::A::A::A::A::A::f();\n}\n
    "},{"location":"articles/it-compiles/#_8","title":"\u7d9a","text":"
    struct S\n{\n    static const int i = 42;\n};\n\nint main()\n{\n    return S::S::S::S::S::S::i;\n}\n
    "},{"location":"articles/it-compiles/#typedef-1","title":"typedef \u306e\u5834\u6240 1","text":"
    long unsigned typedef int long Uint64;\n\nint main()\n{\n    Uint64 i = 123ull;\n}\n
    "},{"location":"articles/it-compiles/#typedef-2","title":"typedef \u306e\u5834\u6240 2","text":"
    int main()\n{\n    if (typedef int Int; true)\n    {\n        Int a = 0;\n    }\n\n    switch (typedef int Int; 0)\n    {\n    case 0:\n        Int a = 0;\n        break;\n    }\n}\n
    "},{"location":"articles/it-compiles/#-_1","title":"+ \u3068 -","text":"
    #include <iostream>\n\nint main()\n{\n    int a = 0 +-+-+-+-+-+-+-+-+ 1 +-+-+-+-+-+-+-+-+ 2;\n    int b = 0 + + + + + + + + + 1 - - - - - - - - - 2;\n\n    std::cout << a << '\\n';\n    std::cout << b << '\\n';\n}\n
    "},{"location":"articles/it-does-not-compile/","title":"\u306a\u305c\u304b\u30b3\u30f3\u30d1\u30a4\u30eb\u3067\u304d\u306a\u3044","text":"

    \u6b63\u3057\u3044\u3088\u3046\u306b\u898b\u3048\u3066\u3001\u30b3\u30f3\u30d1\u30a4\u30eb\u30a8\u30e9\u30fc\u306b\u306a\u308b\u30b3\u30fc\u30c9\u306e\u7d39\u4ecb\u3067\u3059\u3002

    "},{"location":"articles/it-does-not-compile/#_2","title":"\u6dfb\u5b57\u3068\u30e9\u30e0\u30c0\u5f0f","text":"
    #include <iostream>\n\nint main()\n{\n    int a[3] = { 10, 20, 30 };\n\n    std::cout << a[[](){ return 1; }()] << '\\n';\n}\n
    "},{"location":"articles/it-does-not-compile/#_3","title":"\u4f7f\u3048\u306a\u3044\u5909\u6570","text":"
    #include <memory>\n\nint main()\n{\n    std::shared_ptr<int> p();\n\n    p.reset();\n}\n
    "},{"location":"articles/it-does-not-compile/#_4","title":"\u30dd\u30a4\u30f3\u30bf\u578b\u306e\u30c7\u30d5\u30a9\u30eb\u30c8\u5f15\u6570","text":"
    void Func(int*=nullptr)\n{\n\n}\n\nint main()\n{\n    Func();\n}\n
    "},{"location":"articles/it-does-not-compile/#_5","title":"\u95a2\u6570\u306e\u30aa\u30fc\u30d0\u30fc\u30ed\u30fc\u30c9","text":"
    #include <iostream>\n\nusing T = int&;\n\nvoid f(T&)\n{\n    std::cout << \"A\\n\";\n}\n\nvoid f(const T&)\n{\n    std::cout << \"B\\n\";\n}\n\nint main()\n{\n    int x;\n    f(x);\n}\n
    "},{"location":"articles/it-does-not-compile/#0xe","title":"0xe","text":"
    int main()\n{\n    return 0xe-0xe;\n}\n
    "},{"location":"articles/member-access/","title":"C++ \u30a2\u30af\u30bb\u30b9\u6307\u5b9a\u5b50\u306e\u52b9\u679c","text":""},{"location":"articles/type-traits/","title":"C++ \u578b\u7279\u6027 \u65e9\u898b\u8868","text":""},{"location":"contribution/contributors/","title":"\u30b3\u30f3\u30c8\u30ea\u30d3\u30e5\u30fc\u30bf","text":"

    C++ \u306e\u6b69\u304d\u65b9 Web \u30b5\u30a4\u30c8\u306e\u6539\u5584\u3001\u60c5\u5831\u62e1\u5145\u306b\u5354\u529b\u3057\u3066\u304f\u308c\u305f\u65b9\u3005\u3067\u3059\uff08ABC \u9806\uff09\u3002

    "},{"location":"learn/blogs/","title":"C++ \u30d6\u30ed\u30b0\u96c6","text":"

    C++ \u306e\u5b66\u7fd2\u306b\u5f79\u7acb\u3064\u6280\u8853\u30d6\u30ed\u30b0\u96c6\u3092\u7d39\u4ecb\u3057\u307e\u3059\u3002

    "},{"location":"learn/blogs/#c_1","title":"\u65e5\u672c\u8a9e\u306e C++ \u30d6\u30ed\u30b0","text":""},{"location":"learn/blogs/#c_2","title":"\u82f1\u8a9e\u306e C++ \u30d6\u30ed\u30b0","text":"

    \u8ffd\u52a0\u306e\u63d0\u6848\u306f Issue #42 \u307e\u3067\u30b3\u30e1\u30f3\u30c8\u3092\u304a\u9858\u3044\u3057\u307e\u3059\u3002

    "},{"location":"learn/books/","title":"C++ \u66f8\u7c4d","text":"

    C++ \u306e\u5b66\u7fd2\u306b\u5f79\u7acb\u3064\u6700\u65b0\u306e\u66f8\u7c4d\u3092\u7d39\u4ecb\u3057\u307e\u3059\u3002 \u521d\u5b66\u8005\u5411\u3051\u306e\u5165\u9580\u66f8\u306b\u306f \u30de\u30fc\u30af\u3092\u4ed8\u3051\u3066\u3044\u307e\u3059\u3002

    "},{"location":"learn/books/#c14","title":"C++14 \u4ee5\u964d\u3092\u6271\u3063\u305f\u66f8\u7c4d","text":"\u66f8\u540d \u767a\u884c\u5e74 C++ \u898f\u683c \u5185\u5bb9 Effective Modern C++ 2015 C++14 Effective C++ \u3067\u6709\u540d\u306a Scott Meyers \u306b\u3088\u308b C++11/14 \u306e\u30ac\u30a4\u30c9\u30e9\u30a4\u30f3\u30fb\u30b3\u30fc\u30c7\u30a3\u30f3\u30b0\u30b9\u30bf\u30a4\u30eb\u30fb\u30a4\u30c7\u30a3\u30aa\u30e0\u96c6 C++11/14 \u30b3\u30a2\u8a00\u8a9e 2015 C++14 C++11/14 \u306e\u6587\u6cd5\u3068\u8a00\u8a9e\u6a5f\u80fd\u3092\u898f\u683c\u66f8\u306b\u57fa\u3065\u3044\u3066\u8a73\u7d30\u306b\u89e3\u8aac\u3002\u30aa\u30fc\u30d7\u30f3\u30bd\u30fc\u30b9\u7248 \u7d44\u8fbc\u307f\u30bd\u30d5\u30c8\u30a6\u30a7\u30a2\u958b\u767a\u5411\u3051\u30b3\u30fc\u30c7\u30a3\u30f3\u30b0\u4f5c\u6cd5\u30ac\u30a4\u30c9 C++ \u8a00\u8a9e\u7248 Ver.2.0 2016 C++14 \u57fa\u790e\u3092\u5b66\u3093\u3060\u4eba\u5411\u3051\u306e\u30b3\u30fc\u30c7\u30a3\u30f3\u30b0\u30b9\u30bf\u30a4\u30eb\u672c\u3002\u7d44\u307f\u8fbc\u307f\u5411\u3051\u306e\u53b3\u683c\u3055\u3082\u3042\u308b\u304c\u6982\u306d\u6c4e\u7528\u7684\u3002PDF \u7248\u306f\u7121\u6599\u516c\u958b C++ \u306b\u3088\u308b\u30d7\u30ed\u30b0\u30e9\u30df\u30f3\u30b0\u306e\u539f\u5247\u3068\u5b9f\u8df5 2016 C++14 C++ \u3092\u4f7f\u3063\u3066\u30d7\u30ed\u30b0\u30e9\u30df\u30f3\u30b0\u3092\u6559\u3048\u308b 1,000 \u30da\u30fc\u30b8\u8d85\u306e\u5165\u9580\u66f8\u3002C++ \u751f\u307f\u306e\u89aa Bjarne Stroustrup \u8457 \u57fa\u790e\u304b\u3089\u3057\u3063\u304b\u308a\u5b66\u3076 C++ \u306e\u6559\u79d1\u66f8 2017 C++14 C++ \u306e\u57fa\u672c\u7684\u306a\u6587\u6cd5\u304b\u3089\u30af\u30e9\u30b9\u3001\u30b3\u30f3\u30c6\u30ca\u3001\u4e26\u5217\u5316\u306a\u3069\u69d8\u3005\u306a\u6a5f\u80fd\u3092 300 \u30da\u30fc\u30b8\u306b\u5727\u7e2e\u3057\u3066\u7d39\u4ecb\u3059\u308b\u5165\u9580\u66f8 C++ \u306e\u7d75\u672c \u7b2c\uff12\u7248 2017 C++14 \u30af\u30e9\u30b9\u3084\u53c2\u7167\u3001\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8\u306a\u3069\u3001C \u306b\u5bfe\u3059\u308b C++ \u56fa\u6709\u306e\u8a00\u8a9e\u6a5f\u80fd\u3092\u56f3\u7248\u3092\u7528\u3044\u3066\u89e3\u8aac Optimized C++ 2017 C++14 C++ \u30d7\u30ed\u30b0\u30e9\u30e0\u306e\u6027\u80fd\u6e2c\u5b9a\u3068\u6700\u9069\u5316\u306b\u3064\u3044\u3066\u306e\u5b9f\u8df5\u3068\u89e3\u8aac [\u6539\u8a02\u7b2c3\u7248] C++ \u30dd\u30b1\u30c3\u30c8\u30ea\u30d5\u30a1\u30ec\u30f3\u30b9 2018 C++17 \u57fa\u672c\u6587\u6cd5\u306e\u89e3\u8aac\u306b\u52a0\u3048\u3001\u9006\u5f15\u304d\u5f62\u5f0f\u3067\u6a19\u6e96\u30e9\u30a4\u30d6\u30e9\u30ea\u306e\u5e45\u5e83\u3044\u6a5f\u80fd\u3092\u7d39\u4ecb \u6c5f\u6dfb\u4eae\u306e\u8a73\u8aac C++17 2018 C++17 C++14/17 \u306e\u65b0\u3057\u3044\u6587\u6cd5\u3068\u6a19\u6e96\u30e9\u30a4\u30d6\u30e9\u30ea\u6a5f\u80fd\u3092\u8a73\u7d30\u306b\u89e3\u8aac\u3002\u30aa\u30fc\u30d7\u30f3\u30bd\u30fc\u30b9\u7248 \u5192\u967a\u3067\u5b66\u3076\u306f\u3058\u3081\u3066\u306e\u30d7\u30ed\u30b0\u30e9\u30df\u30f3\u30b0 2018 C++17 \u672a\u7d4c\u9a13\u8005\u5411\u3051\u3002\u65e9\u7a32\u7530\u5927\u5b66\u304c\u904b\u55b6\u3059\u308b\u4e2d\u5b66\u30fb\u9ad8\u6821\u751f\u5411\u3051 C++ \u5165\u9580\u8b1b\u5ea7\u306e\u6559\u79d1\u66f8\u3002\u7d39\u4ecb\u30da\u30fc\u30b8 Modern C++ \u30c1\u30e3\u30ec\u30f3\u30b8 \u2015 C++17 \u30d7\u30ed\u30b0\u30e9\u30df\u30f3\u30b0\u529b\u3092\u935b\u3048\u308b 100 \u554f 2019 C++17/20 \u73fe\u5b9f\u7684\u30fb\u5b9f\u8df5\u7684\u306a 100 \u306e\u8ab2\u984c\u3092 C++ \u3067\u89e3\u6c7a\u3059\u308b\u554f\u984c\u96c6\u3002\u30aa\u30fc\u30d7\u30f3\u30bd\u30fc\u30b9\u30e9\u30a4\u30d6\u30e9\u30ea\u3092\u7a4d\u6975\u7684\u306b\u6d3b\u7528\u3059\u308b \u6c5f\u6dfb\u4eae\u306e C++ \u5165\u9580 2019 C++17/20 C++ \u306e\u30c4\u30fc\u30eb\u3084\u6587\u6cd5\u3001\u3044\u304f\u3064\u304b\u306e\u6a19\u6e96\u30e9\u30a4\u30d6\u30e9\u30ea\u6a5f\u80fd\u306e\u8a2d\u8a08\u3092\u5b66\u3079\u308b\u89e3\u8aac\u66f8\u3002\u30aa\u30fc\u30d7\u30f3\u30bd\u30fc\u30b9\u7248 \u72ec\u7fd2 C++ \u65b0\u7248 2019 C++17 \u521d\u5b66\u8005\u5411\u3051\u3002\u300c\u72ec\u7fd2 C++ \u7b2c 4 \u7248\u300d\u3092 C++17 \u306b\u5bfe\u5fdc\u3055\u305b\u89e3\u8aac\u3092\u4e00\u65b0 [\u6539\u8a02\u7b2c4\u7248] C++ \u30dd\u30b1\u30c3\u30c8\u30ea\u30d5\u30a1\u30ec\u30f3\u30b9 2021 C++20 \u57fa\u672c\u6587\u6cd5\u306e\u89e3\u8aac\u306b\u52a0\u3048\u3001\u9006\u5f15\u304d\u5f62\u5f0f\u3067\u6a19\u6e96\u30e9\u30a4\u30d6\u30e9\u30ea\u306e\u5e45\u5e83\u3044\u6a5f\u80fd\u3092\u7d39\u4ecb C++ \u30bd\u30d5\u30c8\u30a6\u30a7\u30a2\u8a2d\u8a08 - \u9ad8\u54c1\u8cea\u8a2d\u8a08\u306e\u539f\u5247\u3068\u30c7\u30b6\u30a4\u30f3\u30d1\u30bf\u30fc\u30f3 2023 C++20 \u30e2\u30c0\u30f3 C++ \u306b\u304a\u3051\u308b\u8a2d\u8a08\u6280\u6cd5\u3084\u30c7\u30b6\u30a4\u30f3\u30d1\u30bf\u30fc\u30f3\u306a\u3069 39 \u9805\u76ee\u3092\u89e3\u8aac\u3002\u76ee\u6b21 \uff3b\u6539\u8a02\u7b2c5\u7248\uff3dC++ \u30dd\u30b1\u30c3\u30c8\u30ea\u30d5\u30a1\u30ec\u30f3\u30b9 2024 C++23 \u57fa\u672c\u6587\u6cd5\u306e\u89e3\u8aac\u306b\u52a0\u3048\u3001\u9006\u5f15\u304d\u5f62\u5f0f\u3067\u6a19\u6e96\u30e9\u30a4\u30d6\u30e9\u30ea\u306e\u5e45\u5e83\u3044\u6a5f\u80fd\u3092\u7d39\u4ecb\u3002C++23 \u306b\u5bfe\u5fdc"},{"location":"learn/books/#c_1","title":"C++ \u5165\u9580\u66f8\u306e\u9078\u3073\u65b9","text":""},{"location":"learn/books/#_1","title":"\u5192\u967a\u3067\u5b66\u3076 \u306f\u3058\u3081\u3066\u306e\u30d7\u30ed\u30b0\u30e9\u30df\u30f3\u30b0","text":"

    3 \u65e5\u9593\u30b3\u30fc\u30b9\u306e\u4e2d\u9ad8\u751f\u5411\u3051 C++ \u6559\u5ba4\u3067\u4f7f\u308f\u308c\u3066\u3044\u308b\u6559\u79d1\u66f8\u3067\u3059\u3002\u30e2\u30c0\u30f3 C++ \u3092\u30d9\u30fc\u30b9\u306b\u5165\u9580\u30ec\u30d9\u30eb\u306e\u5185\u5bb9 (\u6a19\u6e96\u5165\u51fa\u529b\u3001\u5909\u6570\u3001if-else, for, \u4e71\u6570\u3001std::vector \u306a\u3069\uff09\u3092\u6271\u3063\u3066\u3044\u307e\u3059\u3002\u7121\u7406\u306e\u306a\u3044\u30da\u30fc\u30b9\u3068\u7269\u8a9e\u5f62\u5f0f\u306e\u984c\u6750\u3067\u3001\u632b\u6298\u305b\u305a\u306b\u30d7\u30ed\u30b0\u30e9\u30df\u30f3\u30b0\u306b\u6163\u308c\u308b\u3053\u3068\u304c\u3067\u304d\u308b\u306e\u304c\u7279\u9577\u3067\u3059\u3002C++ \u306f\u539a\u3044\u672c\u304c\u591a\u3044\u306a\u304b\u3001\u7d04 180 \u30da\u30fc\u30b8\u3068\u624b\u8efd\u306a\u306e\u3067\u3001\u5b8c\u5168\u8aad\u7834\u3092\u3057\u3066\u81ea\u4fe1\u3092\u3064\u3051\u3066\u6b21\u306e\u30b9\u30c6\u30c3\u30d7\u306b\u9032\u3080\u306e\u306b\u9069\u3057\u305f\u6700\u521d\u306e\u4e00\u518a\u3067\u3059\u3002

    "},{"location":"learn/books/#c-5","title":"\u3084\u3055\u3057\u3044 C++ \u7b2c 5 \u7248","text":"

    C++ \u306e\u5165\u9580\uff5e\u4e2d\u7d1a\u30ec\u30d9\u30eb\u306e\u5185\u5bb9\u306e\u3046\u3061\u3001\u57fa\u672c\u7684\u306a\u90e8\u5206\uff08\u300e\u5192\u967a\u3067\u5b66\u3076 \u306f\u3058\u3081\u3066\u306e\u30d7\u30ed\u30b0\u30e9\u30df\u30f3\u30b0\u300f\u306b\u52a0\u3048\u3001\u95a2\u6570\u3001\u30dd\u30a4\u30f3\u30bf\u3001\u30af\u30e9\u30b9\u3001\u30d5\u30a1\u30a4\u30eb\u306a\u3069\uff09\u3092\u53d6\u308a\u4e0a\u3052\u3066\u3001\u8c4a\u5bcc\u306a\u56f3\u3092\u4ea4\u3048\u3066\u8aac\u660e\u3057\u3066\u3044\u307e\u3059\u3002\u5b66\u7fd2\u3059\u308b\u9806\u756a\u3082\u9069\u5207\u306b\u30c7\u30b6\u30a4\u30f3\u3055\u308c\u3066\u3044\u3066\u89aa\u5207\u3067\u3059\u3002\u7d04 550 \u30da\u30fc\u30b8\u3068\u5206\u91cf\u306f\u591a\u3044\u3067\u3059\u304c\u3001\u60c5\u5831\u7cfb\u306e\u5c02\u9580 / \u9ad8\u5c02 / \u5927\u5b66\u751f\u304c C++ \u3092\u4f7f\u3048\u308b\u3088\u3046\u3001\u8170\u3092\u636e\u3048\u3066\u72ec\u5b66\u3059\u308b\u306e\u306b\u6700\u9069\u306a\u4e00\u518a\u3067\u3059\u3002C++11 \u4ee5\u964d\u306e\u7bc4\u56f2 for \u3084\u65b0\u3057\u3044\u6a19\u6e96\u30e9\u30a4\u30d6\u30e9\u30ea\u306a\u3069\u3001\u30e2\u30c0\u30f3\u306a\u6a5f\u80fd\u3078\u306e\u8a00\u53ca\u304c\u5c11\u306a\u3044\u70b9\u306b\u306f\u6ce8\u610f\u304c\u5fc5\u8981\u3067\u3059\u3002

    "},{"location":"learn/books/#c_2","title":"\u72ec\u7fd2 C++ \u65b0\u7248","text":"

    \u72ec\u5b66\u306e\u305f\u3081\u306e\u5341\u5206\u306a\u30b5\u30f3\u30d7\u30eb\u3068\u8aac\u660e\u304c\u63b2\u8f09\u3055\u308c\u3066\u3044\u308b\u5165\u9580\u66f8\u3067\u3001C++11\uff5eC++17 \u306e\u6a5f\u80fd\u3082\u591a\u304f\u767b\u5834\u3057\u307e\u3059\u3002\u300e\u3084\u3055\u3057\u3044 C++ \u7b2c 5 \u7248\u300f\u3067\u306f\u6271\u3063\u3066\u3044\u306a\u3044\u30e9\u30e0\u30c0\u5f0f\u3084\u53f3\u8fba\u5024\u53c2\u7167\u3001\u307e\u305f\u7c21\u5358\u306a\u7d39\u4ecb\u306b\u3068\u3069\u307e\u3063\u3066\u3044\u305f\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8\u3084\u4f8b\u5916\u3001\u30c7\u30fc\u30bf\u69cb\u9020\u306a\u3069\u3092\u3057\u3063\u304b\u308a\u89e3\u8aac\u3057\u3066\u3044\u307e\u3059\u3002\u5e8f\u76e4\u304b\u3089\u3084\u3084\u9ad8\u5ea6\u306a\u30c8\u30d4\u30c3\u30af\u3082\u767b\u5834\u3059\u308b\u305f\u3081\u3001\u672a\u7d4c\u9a13\u304b\u3089\u3053\u306e\u672c\u3092\u8aad\u307f\u59cb\u3081\u308b\u306e\u306f\u5c11\u3057\u5927\u5909\u304b\u3082\u3057\u308c\u307e\u305b\u3093\u3002

    "},{"location":"learn/books/#c-2","title":"C++ \u306e\u7d75\u672c \u7b2c\uff12\u7248","text":"

    C \u8a00\u8a9e\u304b\u3089 C++ \u306b\u30b9\u30c6\u30c3\u30d7\u30a2\u30c3\u30d7\u3059\u308b\u3046\u3048\u3067\u65b0\u3057\u304f\u899a\u3048\u308b\u5fc5\u8981\u306e\u3042\u308b\u5185\u5bb9\uff08\u30af\u30e9\u30b9\u3001\u540d\u524d\u7a7a\u9593\u3001\u53c2\u7167\u3001\u7d99\u627f\u3001\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8\u306a\u3069\uff09\u306b\u7126\u70b9\u3092\u5f53\u3066\u3001\u8c4a\u5bcc\u306a\u56f3\u89e3\u3067\u307e\u3068\u3081\u3066\u3044\u307e\u3059\u3002\u4e00\u65b9\u3067\u3001\u305d\u308c\u4ee5\u5916\u306e\u57fa\u672c\u7684\u306a\u6587\u6cd5\u306b\u3064\u3044\u3066\u306f\u8aac\u660e\u3092\u7701\u3044\u3066\u3044\u308b\u305f\u3081\u3001\u3042\u308b\u7a0b\u5ea6\u306e\u7d4c\u9a13\u8005\u304c\u5bfe\u8c61\u3067\u3059\u3002\"Better C\" \u7684\u306a\u30b3\u30fc\u30c9\u3057\u304b\u66f8\u3051\u306a\u3044\u4eba\u304c\u300cC++ \u3089\u3057\u3044\u300d\u30b3\u30fc\u30c9\u3092\u66f8\u3051\u308b\u3088\u3046\u306b\u306a\u308b\u305f\u3081\u306e\u91cd\u8981\u306a\u60c5\u5831\u304c\u307e\u3068\u3081\u3089\u308c\u3066\u3044\u307e\u3059\u3002

    "},{"location":"learn/books/#c_3","title":"\u57fa\u790e\u304b\u3089\u3057\u3063\u304b\u308a\u5b66\u3076 C++ \u306e\u6559\u79d1\u66f8","text":"

    C++ \u306e\u5165\u9580\uff5e\u4e2d\u7d1a\u30ec\u30d9\u30eb\u306e\u591a\u304f\u306e\u60c5\u5831\uff08\u300e\u3084\u3055\u3057\u3044 C++ \u7b2c 5 \u7248\u300f\u306b\u52a0\u3048\u3001\u4f8b\u5916\u3084\u4e26\u5217\u51e6\u7406\uff09\u3092\u3001\u7d04 300 \u30da\u30fc\u30b8\u306b\u52b9\u7387\u3088\u304f\u5727\u7e2e\u3057\u3066\u7d39\u4ecb\u3057\u3066\u3044\u307e\u3059\u3002\u5c11\u3057\u3060\u3051 C++ \u3092\u4f7f\u3063\u305f\u3053\u3068\u306e\u3042\u308b\u4eba\u3084\u3001C \u8a00\u8a9e\u306b\u6163\u308c\u3066\u3044\u308b\u4eba\u304c\u3001\u77ed\u6642\u9593\u3067 C++ \u306e\u4e3b\u8981\u6a5f\u80fd\u3092\u30a4\u30f3\u30d7\u30c3\u30c8\u3059\u308b\u306e\u306b\u5411\u3044\u3066\u3044\u307e\u3059\u3002

    "},{"location":"learn/books/#c_4","title":"\u6c5f\u6dfb\u4eae\u306e C++ \u5165\u9580","text":"

    \u53e4\u3044 C++ \u3092\u5b66\u7fd2\u3057\u305f\u4eba\u304c\u3001\u6700\u65b0\u306e C++ \u306e\u6d41\u5100\u306b\u518d\u5165\u9580\u3059\u308b\u306e\u306b\u9069\u3057\u305f\u5165\u9580\u66f8\u3067\u3059\u3002

    "},{"location":"learn/books/#4-c","title":"[\u6539\u8a02\u7b2c4\u7248] C++ \u30dd\u30b1\u30c3\u30c8\u30ea\u30d5\u30a1\u30ec\u30f3\u30b9","text":"

    \u63b2\u8f09\u3055\u308c\u3066\u3044\u308b C++ \u306e\u6a5f\u80fd\u306e\u6570\u306f\u65ad\u30c8\u30c4\u306e\u30c8\u30c3\u30d7\u30af\u30e9\u30b9\u3067\u3059\u3002\u7dcf\u30da\u30fc\u30b8\u306e\u3046\u3061\u5927\u90e8\u5206\u304c\u6a19\u6e96\u30e9\u30a4\u30d6\u30e9\u30ea\u6a5f\u80fd\u306e\u89e3\u8aac\u3067\u3059\u304c\u3001100 \u30da\u30fc\u30b8\u4ee5\u4e0a\u3042\u308b\u7b2c 2 \u7ae0\u3067\u306f C++ \u306e\u8a00\u8a9e\u6a5f\u80fd\u3082\u7db2\u7f85\u7684\u306b\u89e3\u8aac\u3057\u3066\u3044\u307e\u3059\uff08\u56f3\u306a\u3069\u306f\u7121\u304f\u3001\u629c\u7c8b\u306e\u30b3\u30fc\u30c9\u304c\u307b\u3068\u3093\u3069\u306a\u306e\u3067\u521d\u5b66\u8005\u306b\u306f\u3084\u3084\u96e3\u3057\u3044\u3067\u3059\uff09\u3002\u5165\u9580\u66f8\u3068\u3044\u3046\u3088\u308a\u3082\u8f9e\u66f8\u7684\u306a\u6027\u683c\u304c\u5f37\u3044\u672c\u3067\u3059\u3002\u3042\u308b\u7a0b\u5ea6 C++ \u306e\u7d4c\u9a13\u3092\u7a4d\u3093\u3067\u304b\u3089\u3082\u304a\u4e16\u8a71\u306b\u306a\u308b\u672c\u3067\u3059\u3002

    "},{"location":"learn/books/#_2","title":"\u6d0b\u66f8","text":"\u66f8\u540d \u767a\u884c\u5e74 C++ \u898f\u683c \u5185\u5bb9 C++ Templates: The Complete Guide (2nd Edition) 2017 C++17/20 C++17 \u306e\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8\u306e\u6587\u6cd5\u3084\u69d8\u3005\u306a\u30c6\u30af\u30cb\u30c3\u30af\u3092\u89e3\u8aac\u3002C++20 \u3067\u5c0e\u5165\u3055\u308c\u308b\u30b3\u30f3\u30bb\u30d7\u30c8\u306e\u7d39\u4ecb\u3082\u3002 \u76ee\u6b21 Mastering the C++17 STL 2017 C++17 C++17 \u307e\u3067\u306e\u6a19\u6e96\u30e9\u30a4\u30d6\u30e9\u30ea\u306e\u6a5f\u80fd\u3084\u4f7f\u3044\u65b9\u3092\u7d39\u4ecb\u3002\u76ee\u6b21 Professional C++, 4th Edition 2018 C++17 \u76ee\u6b21 Functional Programming in C++: How to improve your C++ programs using functional techniques 2018 C++17 C++ \u306b\u304a\u3051\u308b\u95a2\u6570\u578b\u30d7\u30ed\u30b0\u30e9\u30df\u30f3\u30b0\u3092\u8c4a\u5bcc\u306a\u56f3\u3067\u89e3\u8aac\u3002\u76ee\u6b21\u3068\u30d7\u30ec\u30d3\u30e5\u30fc C++ Concurrency in Action, Second Edition 2019 C++17 C++17 \u306b\u304a\u3051\u308b\u4e26\u884c\u51e6\u7406\u3092\u8a73\u7d30\u306b\u89e3\u8aac\u3002\u30ed\u30c3\u30af\u30d5\u30ea\u30fc\u30c7\u30fc\u30bf\u69cb\u9020\u306e\u8a2d\u8a08\u306a\u3069\u3082\u53d6\u308a\u4e0a\u3052\u308b\u3002\u8a66\u3057\u8aad\u307f C++17 in Detail 2019 C++17 C++17 \u306e\u4e3b\u8981\u306a\u65b0\u6a5f\u80fd\u30fb\u5909\u66f4\u70b9\u306e\u307b\u304b\u3001Boost \u304b\u3089\u6a19\u6e96\u30e9\u30a4\u30d6\u30e9\u30ea\u3078\u306e\u79fb\u884c\u3092\u89e3\u8aac\u3002\u76ee\u6b21 C++17 - The Complete Guide 2019 C++17 \u76ee\u6b21 C++ Crash Course: A Fast-Paced Introduction 2019 C++17 \uff08\u8abf\u67fb\u4e2d\uff09 Advanced C++ Programming Cookbook 2020 C++20 \u76ee\u6b21 / \u30b5\u30f3\u30d7\u30eb\u30b3\u30fc\u30c9 C++ System Programming Cookbook 2020 C++20 \u76ee\u6b21 / \u30b5\u30f3\u30d7\u30eb\u30b3\u30fc\u30c9 Expert C++ 2020 C++20 \u76ee\u6b21 / \u30b5\u30f3\u30d7\u30eb\u30b3\u30fc\u30c9 C++ Lambda Story 2020 C++20 \u30e2\u30c0\u30f3 C++ \u306b\u304a\u3051\u308b\u30e9\u30e0\u30c0\u5f0f\u306e\u6a5f\u80fd\u3084\u305d\u306e\u5909\u9077\u3001\u30e9\u30e0\u30c0\u5f0f\u306e\u6d3b\u7528\u30c6\u30af\u30cb\u30c3\u30af\u3092\u89e3\u8aac\u3002\u76ee\u6b21 The C++ Standard Library 2020 C++20 C++20 \u307e\u3067\u306e\u6a19\u6e96\u30e9\u30a4\u30d6\u30e9\u30ea\u6a5f\u80fd\u3092\u89e3\u8aac\u3002\u76ee\u6b21 C++ Move Semantics - The Complete Guide: First Edition 2020 C++20 C++ \u306e\u30e0\u30fc\u30d6\u30bb\u30de\u30f3\u30c6\u30a3\u30af\u30b9\u3092\u89e3\u8aac\u3002\u76ee\u6b21 Modern C++ Programming Cookbook, 2nd Edition 2020 C++20 C++11\uff5eC++20 \u306e\u30e2\u30c0\u30f3\u306a\u6a5f\u80fd\u306e\u4f7f\u3044\u65b9\u3092\u89e3\u8aac\u3002\u30d1\u30bf\u30fc\u30f3\u3084\u30a4\u30c7\u30a3\u30aa\u30e0\u3001Boost.Test, Google Test, Catch2 \u3092\u4f7f\u3063\u305f\u30c6\u30b9\u30c8\u624b\u6cd5\u3082\u6271\u3046\u3002\u76ee\u6b21 Beginning C++20: From Novice to Professional Sixth Edition 2020 C++20 C++20 \u306b\u57fa\u3065\u3044\u305f C++ \u30d7\u30ed\u30b0\u30e9\u30df\u30f3\u30b0\u5165\u9580\u66f8\u3002853 \u30da\u30fc\u30b8\u3002\u76ee\u6b21 C++ Best Practices: 45ish Simple Rules with Specific Action Items for Better C++ 2021 C++20 \u3088\u308a\u826f\u3044 C++ \u30b3\u30fc\u30c7\u30a3\u30f3\u30b0\u306e\u305f\u3081\u306e 45 \u500b\u306e\u30eb\u30fc\u30eb\u3092\u8aac\u660e\u3002\u76ee\u6b21 Professional C++, 5th Edition 2021 C++20 2018 \u5e74\u306b\u767a\u58f2\u3055\u308c\u305f\u300eProfessional C++, 4th Edition\u300f\u306e C++20 \u5bfe\u5fdc\u7248\u30021312 \u30da\u30fc\u30b8 C++20: Get the Details 2021 C++20/23 C++20 \u306e\u65b0\u6a5f\u80fd\u3092 500 \u30da\u30fc\u30b8\u306b\u308f\u305f\u3063\u3066\u89e3\u8aac\u3002\u76ee\u6b21 Beautiful C++: 30 Core Guidelines for Writing Clean, Safe, and Fast Code 2021 C++20 C++ Core Guidelines \u306e\u3046\u3061\u7279\u306b\u91cd\u8981\u306a 30 \u9805\u76ee\u306b\u3064\u3044\u3066\u3001\u5b9f\u8df5\u7684\u306a\u30b5\u30f3\u30d7\u30eb\u3084\u89e3\u8aac\u3092\u63d0\u4f9b\u3002\u76ee\u6b21 / \u30b5\u30f3\u30d7\u30eb\u30b3\u30fc\u30c9"},{"location":"learn/books/#_3","title":"\u6280\u8853\u540c\u4eba\u8a8c","text":"\u66f8\u540d \u767a\u8868\u5e74 C++ \u898f\u683c \u5185\u5bb9 C++ \u6a19\u6e96\u7684\u30a4\u30f3\u30bf\u30fc\u30d5\u30a7\u30fc\u30b9 2020 C++17/20 C++ \u6a19\u6e96\u30e9\u30a4\u30d6\u30e9\u30ea\u306e\u30a4\u30f3\u30bf\u30fc\u30d5\u30a7\u30fc\u30b9\u306b\u3064\u3044\u3066\u89e3\u8aac\u3002\u76ee\u6b21\u3068\u30b5\u30f3\u30d7\u30eb C++20 Modules \u7b2c2\u7248 2020 C++20 C++20 \u304b\u3089\u8ffd\u52a0\u3055\u308c\u308b\u30e2\u30b8\u30e5\u30fc\u30eb\u306e\u4ed5\u69d8\u3092\u89e3\u8aac\u3002\u76ee\u6b21\u3068\u30b5\u30f3\u30d7\u30eb C++ \u96c6\u6210\u4f53 2020 C++20 C++20 \u306b\u304a\u3051\u308b\u96c6\u6210\u4f53\u578b\u306b\u3064\u3044\u3066\u89e3\u8aac\u3002\u76ee\u6b21\u3068\u30b5\u30f3\u30d7\u30eb \u30b2\u30fc\u30e0\u958b\u767a\u8005\u306e\u305f\u3081\u306e C++11\uff5eC++20 \u6280\u8853\u66f8\u517810 Ver. 2020 C++20/23 CEDEC 2020 \u8b1b\u6f14\u3067\u306e C++11\uff5eC++20 \u6a5f\u80fd\u89e3\u8aac\u306b\u8ffd\u52a0\u306e\u8aac\u660e\u3084\u30b5\u30f3\u30d7\u30eb\u3001C++23 \u60c5\u5831\u3092\u52a0\u7b46\u3057\u305f\u672c\u3002Zenn \u7248 C++ \u30de\u30eb\u30c1\u30b9\u30ec\u30c3\u30c9\u4e00\u5de1\u308a 2021 C++20 C++11\uff5e20 \u6a19\u6e96\u30e9\u30a4\u30d6\u30e9\u30ea\u3067\u63d0\u4f9b\u3055\u308c\u308b\u30de\u30eb\u30c1\u30b9\u30ec\u30c3\u30c9\u95a2\u9023\u6a5f\u80fd\u3092\u89e3\u8aac \u7af6\u30d7\u30ed\u306e\u305f\u3081\u306e\u6a19\u6e96 C++ 2021 C++17 \u7af6\u6280\u30d7\u30ed\u30b0\u30e9\u30df\u30f3\u30b0\u3067\u4f7f\u3048\u308b C++ \u306e\u4e3b\u8981\u306a\u6a19\u6e96\u6a5f\u80fd\u306e\u30b5\u30f3\u30d7\u30eb\u4ed8\u304d\u89e3\u8aac C++20 ranges 2021 C++20 C++20 \u306e Ranges \u30e9\u30a4\u30d6\u30e9\u30ea\u306e\u4f7f\u3044\u65b9\u3084\u8a2d\u8a08\u3092\u89e3\u8aac (164 \u30da\u30fc\u30b8) C++20 \u30b3\u30a2\u8a00\u8a9e\u6a5f\u80fd 2022 C++20 C++20 \u30b3\u30a2\u8a00\u8a9e\u306b\u8ffd\u52a0\u3055\u308c\u305f\u6a5f\u80fd\u3092\u89e3\u8aac (128 \u30da\u30fc\u30b8) C++20 \u30e9\u30a4\u30d6\u30e9\u30ea\u6a5f\u80fd Vol.1 2022 C++20 C++20\u3067\u65b0\u305f\u306b\u8ffd\u52a0\u3055\u308c\u305f\u6a19\u6e96\u30e9\u30a4\u30d6\u30e9\u30ea\u6a5f\u80fd\u306e\u3046\u3061\u3001\u898f\u6a21\u306e\u5927\u304d\u306a\u3082\u306e\u306b\u7d5e\u3063\u3066\u89e3\u8aac (222 \u30da\u30fc\u30b8) C++20 \u30e9\u30a4\u30d6\u30e9\u30ea\u6a5f\u80fd Vol.2 2022 C++20 Vol.1 \u3067\u53d6\u308a\u6271\u3063\u3066\u3044\u306a\u3044\u6a5f\u80fd\u3092\u89e3\u8aac (174 \u30da\u30fc\u30b8) return \u6587\u3067\u8d77\u3053\u308b\u3053\u3068 2023 C++20/23 C++ \u306e return \u6587\u306b\u95a2\u3059\u308b\u30c8\u30d4\u30c3\u30af\u3092\u89e3\u8aac\uff0872 \u30da\u30fc\u30b8\uff09 C++23 ranges 2023 C++23 C++23 \u306e Ranges \u30e9\u30a4\u30d6\u30e9\u30ea\u306e\u4f7f\u3044\u65b9\u3084\u8a2d\u8a08\u3092\u89e3\u8aac\uff08166 \u30da\u30fc\u30b8\uff09"},{"location":"learn/communities/","title":"C++ \u30b3\u30df\u30e5\u30cb\u30c6\u30a3","text":"

    C++ \u306e\u30aa\u30f3\u30e9\u30a4\u30f3\u30b3\u30df\u30e5\u30cb\u30c6\u30a3\u3067\u3059\u3002

    "},{"location":"learn/communities/#_1","title":"\u30e6\u30fc\u30b6\u30b0\u30eb\u30fc\u30d7","text":""},{"location":"learn/communities/#cpplang-slack","title":"Cpplang Slack","text":"

    https://cppalliance.org/slack/

    1 \u4e07\u4eba\u4ee5\u4e0a\u304c\u767b\u9332\u3057\u3001100 \u4ee5\u4e0a\u306e\u30c1\u30e3\u30f3\u30cd\u30eb\u304c\u5b58\u5728\u3059\u308b\u3001C++ \u306b\u95a2\u3059\u308b\u4e16\u754c\u6700\u5927\u306e Slack \u30ef\u30fc\u30af\u30b9\u30da\u30fc\u30b9\u3067\u3059\u3002\u4e0a\u8a18\u30da\u30fc\u30b8\u306b\u30e1\u30fc\u30eb\u30a2\u30c9\u30ec\u30b9\u3092\u5165\u529b\u3059\u308b\u3068\u62db\u5f85\u30e1\u30fc\u30eb\u304c\u5c4a\u304d\u307e\u3059\u3002

    "},{"location":"learn/communities/#reddit-rcpp","title":"reddit (r/cpp)","text":"

    https://www.reddit.com/r/cpp/

    C++ \u306e\u30cb\u30e5\u30fc\u30b9\u63b2\u793a\u677f\u3002

    "},{"location":"learn/communities/#cjp-facebook","title":"C++JP Facebook \u30b0\u30eb\u30fc\u30d7","text":"

    https://www.facebook.com/groups/cppjp/

    400 \u4eba\u4ee5\u4e0a\u304c\u53c2\u52a0\u3059\u308b\u3001\u65e5\u672c\u306e C++ \u30d7\u30ed\u30b0\u30e9\u30de\u306e\u305f\u3081\u306e Facebook \u30b0\u30eb\u30fc\u30d7\u3067\u3059\u3002\u66f8\u7c4d\u3084\u30a4\u30d9\u30f3\u30c8\u306e\u60c5\u5831\u304c\u6295\u7a3f\u3055\u308c\u3066\u3044\u307e\u3059\u3002

    "},{"location":"learn/communities/#c-twitter","title":"C++ Twitter \u30b3\u30df\u30e5\u30cb\u30c6\u30a3 (\u65e5\u672c\u8a9e)","text":"

    https://twitter.com/i/communities/1499396722514345984

    C++ \u30e6\u30fc\u30b6\u304c\u96c6\u307e\u308b\u3001\u65e5\u672c\u8a9e\u306e Twitter \u30b3\u30df\u30e5\u30cb\u30c6\u30a3\u3067\u3059\u3002

    "},{"location":"learn/communities/#c-twitter_1","title":"C++ Twitter \u30b3\u30df\u30e5\u30cb\u30c6\u30a3 (\u82f1\u8a9e)","text":"

    https://twitter.com/i/communities/1508588673310277633

    C++ \u30e6\u30fc\u30b6\u304c\u96c6\u307e\u308b\u3001\u82f1\u8a9e\u306e Twitter \u30b3\u30df\u30e5\u30cb\u30c6\u30a3\u3067\u3059\u3002

    "},{"location":"learn/communities/#q-a","title":"\u65e5\u672c\u8a9e\u306e Q & A \u30b5\u30a4\u30c8","text":""},{"location":"learn/communities/#stack-overflow","title":"Stack Overflow (\u65e5\u672c\u8a9e\u7248)","text":"

    C++ \u30bf\u30b0\u304c\u4ed8\u3044\u305f\u8cea\u554f: https://ja.stackoverflow.com/questions/tagged/c%2b%2b

    "},{"location":"learn/communities/#teratail","title":"teratail","text":"

    C++ \u30bf\u30b0\u304c\u4ed8\u3044\u305f\u8cea\u554f: https://teratail.com/search?q=C%2B%2B

    "},{"location":"learn/communities/#_2","title":"\u56fd\u5185\u63b2\u793a\u677f\u30b9\u30ec\u30c3\u30c9","text":""},{"location":"learn/conferences/","title":"C++ \u30ab\u30f3\u30d5\u30a1\u30ec\u30f3\u30b9","text":"

    C++ \u306b\u95a2\u3059\u308b\u30ab\u30f3\u30d5\u30a1\u30ec\u30f3\u30b9\u3068\u767a\u8868\u8cc7\u6599\u3078\u306e\u30ea\u30f3\u30af\u3067\u3059\u3002

    "},{"location":"learn/conferences/#_1","title":"\u904e\u53bb\u306e\u8b1b\u6f14\u306e\u30ad\u30fc\u30ef\u30fc\u30c9\u691c\u7d22","text":""},{"location":"learn/conferences/#cnow","title":"C++Now","text":"

    https://cppnow.org/ | YouTube

    "},{"location":"learn/conferences/#cppcon","title":"CppCon","text":"

    https://cppcon.org/ | YouTube

    "},{"location":"learn/conferences/#accu","title":"ACCU","text":"

    https://accu.org/conf-main/main/ | YouTube

    "},{"location":"learn/conferences/#c-russia","title":"C++ Russia","text":"

    https://cppconf-moscow.ru/en/ | YouTube

    "},{"location":"learn/conferences/#core-c","title":"Core C++","text":"

    https://corecpp.org/ | YouTube

    "},{"location":"learn/conferences/#meeting-c","title":"Meeting C++","text":"

    https://meetingcpp.com/

    "},{"location":"learn/conferences/#codedive","title":"code::dive","text":"

    https://codedive.pl/

    "},{"location":"learn/conferences/#_2","title":"\u53c2\u8003\u6587\u732e","text":""},{"location":"learn/online-resources/","title":"C++ \u30aa\u30f3\u30e9\u30a4\u30f3\u8cc7\u6599","text":"

    \u30aa\u30f3\u30e9\u30a4\u30f3\u3067\u30a2\u30af\u30bb\u30b9\u3067\u304d\u308b C++ \u30ea\u30bd\u30fc\u30b9\u3067\u3059\u3002

    "},{"location":"learn/online-resources/#_1","title":"\u65e5\u672c\u8a9e\u306e\u30ea\u30d5\u30a1\u30ec\u30f3\u30b9\u30fb\u89e3\u8aac\u30b5\u30a4\u30c8","text":""},{"location":"learn/online-resources/#_2","title":"\u82f1\u8a9e\u306e\u30ea\u30d5\u30a1\u30ec\u30f3\u30b9","text":""},{"location":"learn/online-resources/#_3","title":"\u30d7\u30ec\u30bc\u30f3\u30c6\u30fc\u30b7\u30e7\u30f3","text":""},{"location":"learn/online-resources/#_4","title":"\u8ad6\u6587","text":""},{"location":"learn/online-resources/#_5","title":"\u30b3\u30fc\u30c7\u30a3\u30f3\u30b0\u30ac\u30a4\u30c9\u30e9\u30a4\u30f3","text":""},{"location":"learn/online-resources/#c_1","title":"C++ \u898f\u683c\u95a2\u9023","text":""},{"location":"learn/online-resources/#faq","title":"FAQ","text":""},{"location":"learn/studymeetings/","title":"\u56fd\u5185\u306e C++ \u52c9\u5f37\u4f1a","text":"

    \u56fd\u5185\u3067\u958b\u50ac\u3055\u308c\u3066\u3044\u308b C++ \u95a2\u9023\u306e\u52c9\u5f37\u4f1a\u30a4\u30d9\u30f3\u30c8\u3067\u3059\u3002

    "},{"location":"learn/studymeetings/#c_1","title":"\u5927\u962a C++ \u8aad\u66f8\u4f1a","text":"

    \u5927\u962a\u3067C++\u306b\u95a2\u3059\u308b\u3082\u306e\u3092\u8aad\u307f\u9032\u3081\u308b\u4f1a\u3067\u3059\u3002 \u8ab0\u304b\u304c\u767a\u8868\u3059\u308b\u3068\u3044\u3063\u305f\u30b9\u30bf\u30a4\u30eb\u3067\u306f\u306a\u304f\u3001\u307f\u3093\u306a\u3067\u308f\u304b\u3089\u306a\u3044\u3068\u3053\u308d\u3092\u8a71\u3057\u5408\u3063\u3066\u8aad\u3093\u3067\u3044\u304f\u30b9\u30bf\u30a4\u30eb\u306e\u4f1a\u3067\u3059\u3002

    "},{"location":"learn/studymeetings/#c-meetup","title":"C++ Meetup","text":"

    \u30a6\u30fc\u30d6\u30f3\u30fb\u30d0\u30a4\u30fb\u30c8\u30e8\u30bf\u304c\u4e3b\u50ac\u3059\u308b\u3001C++ \u5c02\u9580\u5bb6\u3092\u62db\u3044\u305f\u30d1\u30cd\u30eb\u30c7\u30a3\u30b9\u30ab\u30c3\u30b7\u30e7\u30f3\u3067\u3059\u3002

    "},{"location":"learn/studymeetings/#c-meetup-2024-03-21","title":"C++ Meetup (2024-03-21)","text":""},{"location":"learn/studymeetings/#c-meetup-2023-11-21","title":"C++ Meetup (2023-11-21)","text":""},{"location":"learn/studymeetings/#c-meetup-2023-06-07","title":"C++ Meetup (2023-06-07)","text":""},{"location":"learn/studymeetings/#c-meetup-2023-02-28","title":"C++ Meetup (2023-02-28)","text":""},{"location":"learn/studymeetings/#c-meetup-2022-11-22","title":"C++ Meetup (2022-11-22)","text":""},{"location":"learn/studymeetings/#c-mix","title":"C++ MIX","text":"

    \u300cC++ MIX\u300d\u306f\u3001C++\u5468\u8fba\u306e\u52c9\u5f37\u4f1a\u3067\u3059\u3002 \u6a19\u6e96C++\u3001\u6a19\u6e96\u5916\u306e\u30e9\u30a4\u30d6\u30e9\u30ea\u3084\u30c4\u30fc\u30eb\u306e\u7d39\u4ecb\u306f\u3082\u3061\u308d\u3093\u3067\u3059\u304c\u3001Rust\u3084Go\u306a\u3069\u306e\u5f8c\u7d99\u8a00\u8a9e\u306e\u3088\u3046\u306b\u3001C++\u30d7\u30ed\u30b0\u30e9\u30de\u306b\u77e5\u3063\u3066\u3082\u3089\u3044\u305f\u3044\u8a71\u3092\u5e83\u304f\u6271\u3063\u3066\u3044\u304d\u307e\u3059\u3002 \u3053\u306e\u52c9\u5f37\u4f1a\u3067\u306f\u3001\u767a\u8868\u8005\u306b\u3088\u308b\u30d7\u30ec\u30bc\u30f3\u30c6\u30fc\u30b7\u30e7\u30f3\u3060\u3051\u3067\u306a\u304f\u3001\u53c2\u52a0\u8005\u306e\u307f\u306a\u3055\u3093\u3068\u8b70\u8ad6\u3059\u308b\u6642\u9593\u3082\u4eca\u5f8c\u7528\u610f\u3057\u3066\u3044\u304d\u305f\u3044\u3068\u8003\u3048\u3066\u3044\u307e\u3059\u3002

    "},{"location":"learn/studymeetings/#c-mix-13-2025-02-21","title":"C++ MIX #13 (2025-02-21)","text":"\u30bf\u30a4\u30c8\u30eb \u767a\u8868\u8005 \u30e0\u30fc\u30d3\u30fc \u52c9\u5f37\u4f1a\u3068\u4f1a\u5834\u306e\u8aac\u660e Akira Takahashi \u30d7\u30e9\u30b0\u30a4\u30f3\u958b\u767a\u3067\u5b66\u7fd2\u3059\u308bUnrealEngine C++\uff08\u6982\u8981\u7de8\uff09 \u837b\u91ce\u96c4\u5b63 C++23\u30b8\u30a7\u30cd\u30ec\u30fc\u30bf\u306e\u7d39\u4ecb yohhoy GCC\u306e<type_traits>\u6700\u9069\u5316 (\u30ea\u30e2\u30fc\u30c8\u767a\u8868\u4e88\u5b9a) Ken Matsui \u30ab\u30b8\u30e5\u30a2\u30eb\u30c7\u30a3\u30b9\u30ab\u30c3\u30b7\u30e7\u30f3 (\u5168\u54e1\u53c2\u52a0)"},{"location":"learn/studymeetings/#c-mix-12-2024-12-20","title":"C++ MIX #12 (2024-12-20)","text":"\u30bf\u30a4\u30c8\u30eb \u767a\u8868\u8005 \u30e0\u30fc\u30d3\u30fc \u52c9\u5f37\u4f1a\u3068\u4f1a\u5834\u306e\u8aac\u660e Akira Takahashi C++26\u304b\u3089\u5c0e\u5165\u3055\u308c\u308b\u300c\u30a8\u30e9\u30fc\u6027\u52d5\u4f5c\u300d\u3092\u89e3\u8aac Akira Takahashi Range\u30a2\u30c0\u30d7\u30bf\u3092\u4f5c\u308b Tetsuro Matsumura HTTP/3\u30b5\u30fc\u30d0\u5b9f\u88c5\u306b\u3064\u3044\u3066 \u6771\u5c71\u88d5\u5fb3 return\u6587\u306b\u304a\u3051\u308bmove\u306b\u3064\u3044\u3066 \u5b89\u85e4\u5f18\u6643 \u30ab\u30b8\u30e5\u30a2\u30eb\u30c7\u30a3\u30b9\u30ab\u30c3\u30b7\u30e7\u30f3 (\u5168\u54e1\u53c2\u52a0)"},{"location":"learn/studymeetings/#c-mix-11-2024-06-14","title":"C++ MIX #11 (2024-06-14)","text":"\u30bf\u30a4\u30c8\u30eb \u767a\u8868\u8005 \u30e0\u30fc\u30d3\u30fc \u52c9\u5f37\u4f1a\u3068\u4f1a\u5834\u306e\u8aac\u660e Akira Takahashi \u30b3\u30f3\u30c6\u30ca\u3068\u6587\u5b57\u5217\u306e\u4e2d\u9593\u30a4\u30f3\u30bf\u30d5\u30a7\u30fc\u30b9span\u3068string_view Akira Takahashi C++23 \u30b9\u30bf\u30c3\u30af\u30c8\u30ec\u30fc\u30b9\u30e9\u30a4\u30d6\u30e9\u30ea Akira Takahashi \u6700\u77ed 1 \u884c\u3001C++ \u3068 Siv3D \u3067\u751f\u6210 AI \u6d3b\u7528\u30a2\u30d7\u30ea\u3092\u4f5c\u308b Ryo Suzuki \u3053\u308c\u3063\u3066\u3069\u3046\u8aad\u3080\u306e\u2026\uff1f \u897f\u5c71 \u4fe1\u884c \u30ab\u30b8\u30e5\u30a2\u30eb\u30c7\u30a3\u30b9\u30ab\u30c3\u30b7\u30e7\u30f3 (\u5168\u54e1\u53c2\u52a0)"},{"location":"learn/studymeetings/#c-mix-10-2024-04-19","title":"C++ MIX #10 (2024-04-19)","text":"\u30bf\u30a4\u30c8\u30eb \u767a\u8868\u8005 \u30e0\u30fc\u30d3\u30fc \u52c9\u5f37\u4f1a\u3068\u4f1a\u5834\u306e\u8aac\u660e Akira Takahashi x64 \u306e\u30b9\u30ab\u30e9\u30fc\uff0cSIMD \u6f14\u7b97\u6027\u80fd\u3092\u6e2c\u3063\u3066\u307f\u305f \u9234\u6728 \u5b97\u826f Boost.Asio\u306b\u304a\u3051\u308bcoroutine\u306e\u6d3b\u7528\u6cd5 \u8fd1\u85e4\u8cb4\u4fca if constexpr\u6587\u306f\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8\u4e16\u754c\u306e\u30e9\u30e0\u30c0\u5f0f\u3067\u3042\u308b Akira Takahashi \u30ab\u30b8\u30e5\u30a2\u30eb\u30c7\u30a3\u30b9\u30ab\u30c3\u30b7\u30e7\u30f3 (\u5168\u54e1\u53c2\u52a0)"},{"location":"learn/studymeetings/#c-mix-9-2024-02-09","title":"C++ MIX #9 (2024-02-09)","text":"\u30bf\u30a4\u30c8\u30eb \u767a\u8868\u8005 \u30e0\u30fc\u30d3\u30fc \u52c9\u5f37\u4f1a\u3068\u4f1a\u5834\u306e\u8aac\u660e Akira Takahashi C++\u3068Win32 API\u3092\u5229\u7528\u3057\u305f\u4e2d\u54c1\u8cea\u306a\u30ea\u30bd\u30fc\u30b9\u30d5\u30a1\u30a4\u30eb\u306e\u30db\u30c3\u30c8\u30ea\u30ed\u30fc\u30c9 \u837b\u91ce\u96c4\u5b63 C++\u3067\u3064\u304f\u308b\u6b74\u53f2\u30b7\u30df\u30e5\u30ec\u30fc\u30b7\u30e7\u30f3GIS Hayato Kasuga \u4f7f\u3044\u305f\u3044\u6a19\u6e96C++\u6a5f\u80fd\u304c\u306a\u3044\u74b0\u5883\u3067\u3044\u304b\u306b\u5b9f\u88c5\u30fb\u8a2d\u8a08\u3059\u308b\u304b Akira Takahashi C++ \u958b\u767a\u304c\u5c11\u3057\u4fbf\u5229\u306b\u306a\u308b Visual Studio \u306e\u6700\u8fd1\u306e\u6a5f\u80fd Ryo Suzuki \u30ab\u30b8\u30e5\u30a2\u30eb\u30c7\u30a3\u30b9\u30ab\u30c3\u30b7\u30e7\u30f3 (\u5168\u54e1\u53c2\u52a0)"},{"location":"learn/studymeetings/#c-mix-8-2023-12-06","title":"C++ MIX #8 (2023-12-06)","text":"\u30bf\u30a4\u30c8\u30eb \u767a\u8868\u8005 \u30e0\u30fc\u30d3\u30fc \u52c9\u5f37\u4f1a\u3068\u4f1a\u5834\u306e\u8aac\u660e Akira Takahashi C++20\u304b\u3089C++23\u3067\u306e\u5909\u5316 Akira Takahashi \u30aa\u30ec\u30aa\u30ecGithub Copilot\u3092\u4f5c\u308d\u3046 Shintarou Okada \u672a\u5b9a\u7fa9\u52d5\u4f5c\u3067FizzBuzz kaityo256 \u69cb\u6587\u89e3\u6790\u3067\u4f7f\u3048\u308bC++\u306e\u30c6\u30af\u30cb\u30c3\u30af Ryosuke Hirakida \u30c7\u30a3\u30b9\u30ab\u30c3\u30b7\u30e7\u30f3 (\u5168\u54e1\u53c2\u52a0)"},{"location":"learn/studymeetings/#c-mix-7-2020-01-29","title":"C++ MIX #7 (2020-01-29)","text":"\u30bf\u30a4\u30c8\u30eb \u767a\u8868\u8005 \u30e0\u30fc\u30d3\u30fc \u52c9\u5f37\u4f1a\u3068\u4f1a\u5834\u306e\u8aac\u660e Akira Takahashi \u86c7\u3092\u57cb\u846c\u3059\u308b Shintarou Okada \u307f\u3093\u306a\u5927\u597d\u304d\uff01using \u30c7\u30a3\u30ec\u30af\u30c6\u30a3\u30d6\uff01 Kariya Mitsuru \u307f\u3093\u306a\u4ee3\u66ff\u30c8\u30fc\u30af\u30f3\u4f7f\u3068\u308b\u3002\u4f7f\u3066\u3078\u3093\u306e\u304a\u524d\u3060\u3051\u3002 Kariya Mitsuru \u7d9a\u30fb\u30e2\u30b8\u30e5\u30fc\u30eb Tetsuro Matsumura Rust\u3068C++\u3092\u6bd4\u3079\u3066\u307f\u305f\uff08\u5f53\u793e\u6bd4\uff09 \u3044\u306a\u3080\u306e\u307f\u305f\u307e \u30c7\u30a3\u30b9\u30ab\u30c3\u30b7\u30e7\u30f3 (\u5168\u54e1\u53c2\u52a0)"},{"location":"learn/studymeetings/#c-mix-6-2019-11-20","title":"C++ MIX #6 (2019-11-20)","text":"\u30bf\u30a4\u30c8\u30eb \u767a\u8868\u8005 \u30e0\u30fc\u30d3\u30fc \u52c9\u5f37\u4f1a\u3068\u4f1a\u5834\u306e\u8aac\u660e Akira Takahashi std::format - C++20 \u6642\u4ee3\u306e\u4fbf\u5229\u306a\u6587\u5b57\u5217\u30d5\u30a9\u30fc\u30de\u30c3\u30c8 Ryo Suzuki \u30a4\u30f3\u30bf\u30fc\u30f3\u30b7\u30c3\u30d7\u3067C++\u3092\u4f7f\u7528\u3057\u305f\u30b2\u30fc\u30e0\u958b\u767a\u3092\u7d4c\u9a13\u3057\u305f\u8a71 \u304c\u3063\u3061\u3087 \u30b3\u30f3\u30d1\u30a4\u30e9\u306e\u3044\u3058\u3081\u65b9 kaityo256 \u66f8\u7c4d\u300e\u72ec\u7fd2C++\u300f\u306e\u6539\u8a02\u306b\u3064\u3044\u3066 (\u4eee) Flast \u30c7\u30a3\u30b9\u30ab\u30c3\u30b7\u30e7\u30f3 (\u5168\u54e1\u53c2\u52a0)"},{"location":"learn/studymeetings/#c-mix-5-2019-09-04","title":"C++ MIX #5 (2019-09-04)","text":"\u30bf\u30a4\u30c8\u30eb \u767a\u8868\u8005 \u30e0\u30fc\u30d3\u30fc \u52c9\u5f37\u4f1a\u3068\u4f1a\u5834\u306e\u8aac\u660e Shintaro Okada \u81ea\u4f5cOS\u5411\u3051\u306blibc++\u3092\u30d3\u30eb\u30c9\u3059\u308b\u65b9\u6cd5 uchan C++ \u88fd\u30b0\u30e9\u30d5\u30a3\u30c3\u30af\u30e9\u30a4\u30d6\u30e9\u30ea Skia \u306e\u7d39\u4ecb \u6c34\u97f3\u3074\u306d Unreal C++ \u3092\u59cb\u3081\u3066\u307f\u305f\u6642\u306e\u8e93\u3044\u305fTips akoto C++20\u30b9\u30c6\u30fc\u30bf\u30b9 Akira Takahashi 20\u5206\u304f\u3089\u3044\u3067\u308f\u304b\u3063\u305f\u6c17\u5206\u306b\u306a\u308c\u308bC++20\u30b3\u30eb\u30fc\u30c1\u30f3 yohhoy \u30c7\u30a3\u30b9\u30ab\u30c3\u30b7\u30e7\u30f3 (\u5168\u54e1\u53c2\u52a0)"},{"location":"learn/studymeetings/#c-mix-4-2019-06-26","title":"C++ MIX #4 (2019-06-26)","text":"\u30bf\u30a4\u30c8\u30eb \u767a\u8868\u8005 \u30e0\u30fc\u30d3\u30fc \u52c9\u5f37\u4f1a\u3068\u4f1a\u5834\u306e\u8aac\u660e Shintaro Okada C++ \u3067\u3082 Result \u3057\u305f\u3044 \u3044\u306a\u3080\u306e\u307f\u305f\u307e (@mitama_rs) \u4e16\u754c\u3092\u5275\u9020\u3059\u308b OSS \u958b\u767a\u3092\u59cb\u3081\u305f\u8a71 \u304c\u3063\u3061\u3087 C++ \u3067 HTTP Proxy \u6771\u5c71\u88d5\u5fb3 \u30e2\u30b8\u30e5\u30fc\u30eb\u306e\u6982\u8981 Tetsuro Matsumura"},{"location":"learn/studymeetings/#c-mix-3-2019-04-17","title":"C++ MIX #3 (2019-04-17)","text":"\u30bf\u30a4\u30c8\u30eb \u767a\u8868\u8005 \u30e0\u30fc\u30d3\u30fc \u52c9\u5f37\u4f1a\u3068\u4f1a\u5834\u306e\u8aac\u660e Shintaro Okada Clang\u306breflection/metaclass\u63d0\u6848\u3063\u307d\u3044\u3082\u306e\u3092\u5b9f\u88c5\u3057\u3066\u307f\u305f\u8a71 Iwahori Kodai C++ \u60c5\u5831\u30b5\u30a4\u30c8\u300cC++ \u306e\u6b69\u304d\u65b9 | cppmap\u300d\u3092\u4f5c\u3063\u3066\u3044\u308b\u8a71 Ryo Suzuki \u30c7\u30fc\u30bf\u30d9\u30fc\u30b9\u3068\u30dd\u30ea\u30e2\u30fc\u30d5\u30a3\u30ba\u30e0\u3068Modern C++ \u5b89\u9054\u4fca\u8cb4 C++20\u306e\u6982\u8981 #1 \u8a00\u8a9e\u6a5f\u80fd\u7de8 Akira Takahash"},{"location":"learn/studymeetings/#c-mix-2-2019-02-20","title":"C++ MIX #2 (2019-02-20)","text":"\u30bf\u30a4\u30c8\u30eb \u767a\u8868\u8005 \u30e0\u30fc\u30d3\u30fc \u52c9\u5f37\u4f1a\u3068\u4f1a\u5834\u306e\u8aac\u660e Akira Takahashi iOS\u30a2\u30d7\u30ea\u300e\u30d1\u30ba\u30e2\u30ca\u300f\u306e\u3072\u307f\u3064 Nobuyuki Nishiyama Qt\u00d7Reactive Extensions Tetsuro Matsumura C++\u306e\u30d1\u30c3\u30b1\u30fc\u30b8\u30de\u30cd\u30fc\u30b8\u30e3\u300cpoac\u300d\u3092\u958b\u767a\u3057\u305f\u8a71 Ken Matsui \u96d1\u8ac7\u30bf\u30a4\u30e0"},{"location":"learn/studymeetings/#c-mix-1-2018-12-06","title":"C++ MIX #1 (2018-12-06)","text":"\u30bf\u30a4\u30c8\u30eb \u767a\u8868\u8005 \u30e0\u30fc\u30d3\u30fc \u52c9\u5f37\u4f1a\u3068\u4f1a\u5834\u3001\u6700\u8fd1\u306eC++\u306e\u8aac\u660e Akira Takahashi Menoh\u306b\u304a\u3051\u308b C++\u5b9f\u88c5 / C API / C++API okdshin Undefined Behavior\u306b\u5bfe\u3059\u308b\u9632\u885b\u8853 \u3044\u306a\u3080\u306e\u307f\u305f\u307e C++ \u3092\u6559\u3048\u308b \uff5e\u65e9\u7a32\u7530\u5927\u5b66\u306e\u5c0f\u4e2d\u9ad8\u751f\u5411\u3051\u30d7\u30ed\u30b0\u30e9\u30df\u30f3\u30b0\u6559\u5ba4\u306b\u304a\u3051\u308b\u4e8b\u4f8b\u7d39\u4ecb\uff5e Reputeless \u907f\u3051\u3088\u3046 memset \u306e\u4e71\u7528 agate-pris"},{"location":"learn/studymeetings/#talkcpp","title":"talk.cpp","text":"

    talk.cpp \u306f\u3001\u52d5\u753b\u3068\u8cea\u7591\u5fdc\u7b54\u306b\u3088\u308b\u767a\u8868\u30fb\u8b70\u8ad6\u3092\u901a\u3057\u3066\u3001C++ \u30e6\u30fc\u30b6\u3069\u3046\u3057\u304c\u77e5\u898b\u3084\u30a2\u30a4\u30c7\u30a2\u3092\u5171\u6709\u3059\u308b\u3001\u53c2\u52a0\u7121\u6599\u306e\u6280\u8853\u30a4\u30d9\u30f3\u30c8\u3067\u3059\u3002\u5b8c\u5168\u30aa\u30f3\u30e9\u30a4\u30f3\u3067\u306e\u5b9f\u65bd\u3092\u524d\u63d0\u306b\u3057\u305f\u3001\u65b0\u3057\u3044\u30b9\u30bf\u30a4\u30eb\u306e\u767a\u8868\u65b9\u5f0f\u3092\u63a1\u7528\u3057\u3066\u3044\u307e\u3059\u3002

    "},{"location":"learn/studymeetings/#featurecpp","title":"feature.cpp","text":"

    C++17\u306e\u65b0\u6a5f\u80fd\u306b\u3064\u3044\u3066\u3001\u5fa9\u7fd2\uff06\u4e88\u7fd2\u3092\u3057\u307e\u305b\u3093\u304b\uff1f \u30fbC++17\u304c\u51fa\u305f\u307f\u305f\u3044\u3060\u3051\u3069\u3001\u4f55\u304c\u65b0\u3057\u304f\u306a\u3063\u305f\u306e\u304c\u5168\u7136\u8ffd\u3048\u3066\u306a\u3044\u2026\uff1e\uff1c \u30fb\u8272\u3093\u306a\u6a5f\u80fd\u304c\u5165\u3063\u3066\u308b\u307f\u305f\u3044\u3060\u3051\u3069\u3001\u672c\u5f53\u306b\u6291\u3048\u3068\u304f\u3079\u304d\u6a5f\u80fd\u3084\u30e9\u30a4\u30d6\u30e9\u30ea\u3063\u3066\u4f55\u306a\u3093\u3060\u308d\uff1f \u30fb\u4ed6\u306e\u4eba\u304c\u3069\u3046\u8003\u3048\u3066\u3044\u308b\u304b\u77e5\u308a\u305f\u3044\u2026 \u3053\u3093\u306a\u4eba\u306f\u3001\u4e00\u5ea6\u3001\u3053\u306e\u96c6\u307e\u308a\u306b\u53c2\u52a0\u3057\u3066\u307f\u3066\u304f\u3060\u3055\u3044 \u8cea\u7591\u5fdc\u7b54\u30fb\u30c7\u30a3\u30b9\u30ab\u30c3\u30b7\u30e7\u30f3\u5f62\u5f0f\u3067\u9032\u3081\u308b\u4e88\u5b9a\u3067\u3059\u304c\u3001\u7121\u8a00\u306e\u65b9\u3082OK\u3067\u3059 \u7279\u306b\u66f8\u7c4d\u306a\u3069\u3092\u6301\u53c2\u3059\u308b\u5fc5\u8981\u306f\u3042\u308a\u307e\u305b\u3093 \u30cd\u30bf\u632f\u308a\u3068\u3057\u3066 \u9032\u884c\u5f79\u304c\u3001C++17\u306e\u57fa\u790e\u7684\u306a\u6a5f\u80fd\u3084\u30e9\u30a4\u30d6\u30e9\u30ea\u306e\u8a71\u984c\u3092\u3001\u53c2\u52a0\u8005\u306b\u63d0\u4f9b\u3057\u307e\u3059

    \u30a4\u30d9\u30f3\u30c8\u756a\u53f7 \u30bf\u30a4\u30c8\u30eb \u767a\u8868\u8005 Vol. 18 (2019-03-28) C++17\u306e\u65b0\u6a5f\u80fd \u843d\u7a42\u62fe\u3044 \u9ce5\u982d\u304b\u308a\u3084\u30de\u30f3 Vol. 17 (2019-03-14) \u843d\u3061\u7a42\u62fe\u3044:\u30e1\u30bf\u95a2\u6570\u7de8 \u3044\u306a\u3080\u306e\u307f\u305f\u307e Vol. 16 (2019-02-21) std::invoke \u306e\u7d39\u4ecb Flast Vol. 15 (2019-01-31) - Akira Takahashi Vol. 14 (2019-01-17) string_view \u3044\u306a\u3080\u306e\u307f\u305f\u307e Vol. 13 (2018-12-13) C++17\u306e\u65b0\u6a5f\u80fd optional\u7de8,std::optional\u306e\u4f7f\u3044\u65b9 \u9ce5\u982d\u304b\u308a\u3084\u30de\u30f3,\u9065\u4f50\u4fdd,\u3044\u306a\u3080\u306e\u307f\u305f\u307e Vol. 12 (2018-11-22) C++17\u306e\u65b0\u6a5f\u80fd optional\u7de8 \u9ce5\u982d\u304b\u308a\u3084\u30de\u30f3 Vol. 11 (2018-11-08) - \u897f\u5c71 \u4fe1\u884c Vol. 10 (2018-10-18) C++17 std::any\u306b\u3064\u3044\u3066 \u897f\u5c71 \u4fe1\u884c Vol. 9 (2018-10-04) C++17\u306e\u65b0\u6a5f\u80fd \u30a2\u30ed\u30b1\u30fc\u30bf\u7de8 \u9ce5\u982d\u304b\u308a\u3084\u30de\u30f3 Vol. 8 (2018-09-13) shared_mutex \u4ed6 yoh Vol. 7 (2018-08-23) C++17\u306e\u65b0\u6a5f\u80fd (\u975e\u9806\u5e8f)\u9023\u60f3\u30b3\u30f3\u30c6\u30ca\u7de8 \u9ce5\u982d\u304b\u308a\u3084\u30de\u30f3 Vol. 6 (2018-08-09) \u984c\u540d\u306e\u306a\u3044\u30b9\u30e9\u30a4\u30c921 Flast Vol. 5 (2018-02-14) \u4e26\u5217(parallel)\u30d7\u30ed\u30b0\u30e9\u30df\u30f3\u30b0,std::invoke\u3068\u304bstd::result_of\u3068\u304b herumiFlast Vol. 4 (2018-02-01) C++17\u6982\u7565 \u9ce5\u982d\u304b\u308a\u3084\u30de\u30f3herumi Vol. 3 (2018-01-11) C++14 \u3059\u3054\u30fc\u3044\uff01\u305f\u30fc\u306e\u3057\u30fc\uff01\uff01\uff01 C++14\u30e9\u30a4\u30d6\u30e9\u30ea\u7de8 \u9ce5\u982d\u304b\u308a\u3084\u30de\u30f3 Vol. 2 (2017-12-14) (Vol. 1 \u3068\u540c\u3058) \u9ce5\u982d\u304b\u308a\u3084\u30de\u30f3 Vol. 1 (2017-11-29) C++14 \u3059\u3054\u30fc\u3044\uff01\u305f\u30fc\u306e\u3057\u30fc\uff01\uff01\uff01 C++14\u8a00\u8a9e\u7de8 \u9ce5\u982d\u304b\u308a\u3084\u30de\u30f3"},{"location":"learn/studymeetings/#c20","title":"C++20 \u3092\u76f8\u8ac7\u3057\u306a\u304c\u3089\u8abf\u3079\u308b\u4f1a","text":"

    C++20\u3092\u76f8\u8ac7\u3057\u306a\u304c\u3089\u8abf\u3079\u307e\u3059\u3002

    \u30a4\u30d9\u30f3\u30c8\u756a\u53f7 \u53c2\u52a0\u8005\u9593\u306e\u5171\u6709\u30c9\u30ad\u30e5\u30e1\u30f3\u30c8 #3 (2019-10-04) \u30c9\u30ad\u30e5\u30e1\u30f3\u30c8 #2 (2019-05-17) \u30c9\u30ad\u30e5\u30e1\u30f3\u30c8 #1 (2019-04-02) \u30c9\u30ad\u30e5\u30e1\u30f3\u30c8"},{"location":"learn/studymeetings/#c_2","title":"\u30ad\u30e3\u30c7\u30a3\u682a\u5f0f\u4f1a\u793e C++ \u52c9\u5f37\u4f1a","text":"

    \u30ad\u30e3\u30c7\u30a3\u682a\u5f0f\u4f1a\u793e\u306f\u30c6\u30af\u30cb\u30ab\u30eb\u30a2\u30c9\u30d0\u30a4\u30b6\u30fc\u3068\u3057\u3066\u6c5f\u6dfb\u4eae\u6c0f\u3092\u8fce\u3048\u5165\u308c\u3001\u4eca\u5f8c\u9694\u9031\u3067C++\u306b\u307e\u3064\u308f\u308b\u52c9\u5f37\u4f1a\u3092\u5b9f\u65bd\u3057\u307e\u3059\u3002\u57fa\u790e\u7684\u306a\u5185\u5bb9\u304b\u3089\u767a\u5c55\u7684\u306a\u5185\u5bb9\u307e\u3067\u3001\u5e45\u5e83\u304f\u30b7\u30ea\u30fc\u30ba\u958b\u50ac\u3057\u3066\u3044\u304f\u4e88\u5b9a\u3067\u3059\u306e\u3067\u3001C++\u306e\u52c9\u5f37\u3092\u3057\u3066\u3044\u308b\u65b9\u3001\u6c5f\u6dfb\u4eae\u6c0f\u3084\u30ad\u30e3\u30c7\u30a3\u30e1\u30f3\u30d0\u30fc\u3068\u304a\u8a71\u3057\u305f\u3044\u65b9\u306a\u3069\u6c17\u8efd\u306b\u3044\u3089\u3057\u3066\u304f\u3060\u3055\u3044\u3002

    \u30a4\u30d9\u30f3\u30c8\u756a\u53f7 \u5185\u5bb9 \u30e0\u30fc\u30d3\u30fc #11 (2020-01-08) volatile\u3001std::launder\u3001POD\u3084standard layout\u578b\u306e\u6b74\u53f2\u306a\u3069 #10 (2019-12-17) \u30c6\u30f3\u30d7\u30ec\u30fc\u30c8\u306e\u540c\u4e00\u6027\u3001C++20\u306e\u65b0\u6a5f\u80fd\u89e3\u8aac #9 (2019-12-03) \u30b3\u30f3\u30bb\u30d7\u30c8\uff08\u6642\u9593\u304c\u3042\u308c\u3070\u3001Three-way Comparison operator\uff09 #8 (2019-11-19) C++20 \u306e\u6a5f\u80fd\u7d39\u4ecb\u3068\u4e00\u6642\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u306e\u5bff\u547d #7 (2019-10-29) type erasure \u306e\u7d9a\u304d\u3068 expression templates #6 (2019-10-09) \u6d3e\u751f\u3068\u7d99\u627f\u3001Type Erasure #5 (2019-09-25) \u6a19\u6e96\u5909\u63db\u3001\u30aa\u30fc\u30d0\u30fc\u30ed\u30fc\u30c9\u89e3\u6c7a\u3001\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8\u306e\u5b9f\u5f15\u6570\u63a8\u5b9a #4 (2019-09-11) C++ \u6a19\u6e96\u898f\u683c\u306e\u7528\u8a9e\u89e3\u8aac #3 (2019-08-30) \u30e1\u30bf\u30d7\u30ed\u30b0\u30e9\u30df\u30f3\u30b0 #2 (2019-08-21) \u30c6\u30f3\u30d7\u30ec\u30fc\u30c8\u57fa\u790e #1 (2019-07-30) \u30dd\u30a4\u30f3\u30bf\u30fc\u306b\u3064\u3044\u3066"},{"location":"learn/studymeetings/#c_3","title":"\u672d\u5e4c C++ \u52c9\u5f37\u4f1a","text":"

    Sapporo.cpp\u306e\u30e1\u30f3\u30d0\u30fc\u3067\u904b\u55b6\u3057\u3066\u3044\u308b\u3001\u30aa\u30f3\u30e9\u30a4\u30f3\u3067\u5b9f\u65bd\u3057\u3066\u3044\u308b\u3082\u304f\u3082\u304f\u4f1a\u3067\u3059\u3002\u52c9\u5f37\u4f1a\u3088\u308a\u3082\u9ad8\u983b\u5ea6\u306b\u6d3b\u52d5\u3092\u884c\u3046\u5834\u3068\u3057\u3066\u3001\u304a\u304a\u3080\u306d\u6bce\u90311\u56de\u5b9f\u65bd\u3057\u3066\u3044\u307e\u3059\u3002

    "},{"location":"learn/studymeetings/#boost","title":"Boost. \u52c9\u5f37\u4f1a","text":"

    Boost C++ Libraries\u3068\u3044\u3046\u3001C++\u306e\u6709\u540d\u306a\u30e9\u30a4\u30d6\u30e9\u30ea\u7fa4\u3092\u4e2d\u5fc3\u3068\u3057\u305f\u3001C++\u5168\u822c\u306e\u52c9\u5f37\u4f1a\u3067\u3059\u3002 Boost\u306b\u9650\u3089\u305a\u3001C++\u5168\u822c\u306e\u8a71\u3001Qt\u3084OpenCV\u306e\u3088\u3046\u306a\u4ed6\u306e\u30e9\u30a4\u30d6\u30e9\u30ea\u3001\u81ea\u5206\u304c\u4f5c\u3063\u305f\u30d7\u30ed\u30b0\u30e9\u30e0\u306e\u7d39\u4ecb\u3001\u305d\u306e\u4ed6C++\u30d7\u30ed\u30b0\u30e9\u30de\u306b\u77e5\u3063\u3066\u304a\u3044\u3066\u3082\u3089\u3044\u305f\u3044\u3053\u3068\u306e\u7d39\u4ecb(\u30c7\u30fc\u30bf\u69cb\u9020\u3084\u30a2\u30eb\u30b4\u30ea\u30ba\u30e0\u3001\u30a4\u30c7\u30a3\u30aa\u30e0\u3001\u30d7\u30ed\u30b0\u30e9\u30e0\u306e\u8a2d\u8a08\u3084\u30c7\u30b6\u30a4\u30f3\u30d1\u30bf\u30fc\u30f3\u3001\u4ed6\u306e\u8a00\u8a9e\u3067\u306e\u8003\u3048\u65b9\u3084\u30a2\u30d7\u30ed\u30fc\u30c1)\u306a\u3069\u3001\u5e45\u5e83\u3044\u30c6\u30fc\u30de\u3092\u6271\u3063\u3066\u3044\u307e\u3059\u3002

    "},{"location":"libraries/boost/","title":"Boost","text":"\u30d0\u30fc\u30b8\u30e7\u30f3 / \u30ea\u30ea\u30fc\u30b9\u30ce\u30fc\u30c8 \u30ea\u30ea\u30fc\u30b9\u65e5 \u65b0\u3057\u304f\u8ffd\u52a0\u3055\u308c\u305f\u30e9\u30a4\u30d6\u30e9\u30ea 1.79.0 / \u65e5\u672c\u8a9e\u8a33 2022-04-13 1.78.0 / \u65e5\u672c\u8a9e\u8a33 2021-12-08 1.77.0 / \u65e5\u672c\u8a9e\u8a33 2021-08-11 Describe, Lambda2 1.76.0 / \u65e5\u672c\u8a9e\u8a33 2021-04-16 1.75.0 / \u65e5\u672c\u8a9e\u8a33 2020-12-11 JSON, LEAF, PFR 1.74.0 / \u65e5\u672c\u8a9e\u8a33 2020-08-14 STLInterfaces 1.73.0 / \u65e5\u672c\u8a9e\u8a33 2020-04-28 Nowide, StaticString 1.72.0 / \u65e5\u672c\u8a9e\u8a33 2019-12-11 1.71.0 / \u65e5\u672c\u8a9e\u8a33 2019-08-19 Variant2 1.70.0 / \u65e5\u672c\u8a9e\u8a33 2019-04-12 Outcome, Histogram 1.69.0 / \u65e5\u672c\u8a9e\u8a33 2018-12-12 Safe Numerics 1.68.0 / \u65e5\u672c\u8a9e\u8a33 2018-08-09 YAP 1.67.0 / \u65e5\u672c\u8a9e\u8a33 2018-04-14 Contract, HOF 1.66.0 / \u65e5\u672c\u8a9e\u8a33 2017-12-18 Beast, CallableTraits, Mp11 1.65.1 / \u65e5\u672c\u8a9e\u8a33 2017-09-07 1.65.0 / \u65e5\u672c\u8a9e\u8a33 2017-08-21 PolyCollection, Stacktrace 1.64.0 / \u65e5\u672c\u8a9e\u8a33 2017-04-19 Process 1.63.0 / \u65e5\u672c\u8a9e\u8a33 2016-12-26 1.62.0 / \u65e5\u672c\u8a9e\u8a33 2016-09-28 Fiber, QVM 1.61.0 / \u65e5\u672c\u8a9e\u8a33 2016-05-13 Compute, DLL, Hana, Metaparse 1.60.0 / \u65e5\u672c\u8a9e\u8a33 2015-12-17 VMD 1.59.0 / \u65e5\u672c\u8a9e\u8a33 2015-08-13 Convert, Coroutine2 1.58.0 / \u65e5\u672c\u8a9e\u8a33 2015-04-17 Endian, Sort 1.57.0 / \u65e5\u672c\u8a9e\u8a33 2014-11-03 1.56.0 / \u65e5\u672c\u8a9e\u8a33 2014-08-07 Align, Type_Index 1.55.0 / \u65e5\u672c\u8a9e\u8a33 2013-11-11 Predef 1.54.0 / \u65e5\u672c\u8a9e\u8a33 2013-07-01 Log, TTI, Type Erasure 1.53.0 / \u65e5\u672c\u8a9e\u8a33 2013-02-04 Atomic, Coroutine, Lockfree, Multiprecision, Odeint 1.52.0 / \u65e5\u672c\u8a9e\u8a33 2012-11-05 1.51.0 / \u65e5\u672c\u8a9e\u8a33 2012-08-20 Context 1.50.0 / \u65e5\u672c\u8a9e\u8a33 2012-06-28 Algorithm, Functional/OverloadedFunction,LocalFunction, Utility/IdentityType 1.49.0 / \u65e5\u672c\u8a9e\u8a33 2012-02-24 Heap 1.48.0 / \u65e5\u672c\u8a9e\u8a33 2011-11-15 Container, Locale, Move 1.47.0 / \u65e5\u672c\u8a9e\u8a33 2011-07-11 Chrono, Geometry, Phoenix, Ratio 1.46.1 / \u65e5\u672c\u8a9e\u8a33 2011-03-12 1.46.0 / \u65e5\u672c\u8a9e\u8a33 2011-02-21 Icl 1.45.0 / \u65e5\u672c\u8a9e\u8a33 2010-11-19 1.44.0 2010-08-13 Meta State Machine, Polygon 1.43.0 2010-05-06 Functional/factory, Functional/forward 1.42.0 2010-02-02 Uuid 1.41.0 2009-11-17 Property Tree 1.40.0 2009-08-27 1.39.0 2009-05-02 Signals2 1.38.0 2009-02-08 Flyweight, ScopeExit, Swap 1.37.0 2008-11-03 Proto 1.36.0 2008-08-14 Accumulators, Exception, Units, Unordered 1.35.0 2008-03-29 Asio, Bimap, Circular Buffer, Function Types, Fusion,GIL, Interprocess, Intrusive, Math/Special Functions,Math/Statistical Distributions, MPI, System 1.34.1 2007-07-24 1.34.0 2007-05-12 Foreach, Statechart, TR1 (removed), Typeof, Xpressive 1.33.1 2006-12-05 1.33.0 2005-08-11 Iostreams, Functional/Hash, Parameter, Pointer Container, Wave 1.32.0 2004-11-19 Assignment, Minmax, Multi-index Containers,Numeric Conversion, Program Options, Range, Serialization,String Algorithms, Tribool 1.31.0 2004-01-26 enable_if, Variant 1.30.2 2003-08-19 1.30.1 2003-08-04 1.30.0 2003-03-19 Filesystem, Optional, Interval, MPL, Spirit 1.29.0 2002-10-10 Date-Time, Dynamic Bitset, Format \u2026 \u2026 \u2026"},{"location":"libraries/boost/#_1","title":"\u53c2\u8003\u6587\u732e","text":""},{"location":"libraries/concurrency/","title":"\u4e26\u884c\u30fb\u4e26\u5217","text":""},{"location":"libraries/concurrency/#_2","title":"\u30de\u30eb\u30c1\u30bf\u30b9\u30af\u30b9\u30b1\u30b8\u30e5\u30fc\u30ea\u30f3\u30b0","text":""},{"location":"libraries/concurrency/#_3","title":"\u30b3\u30eb\u30fc\u30c1\u30f3","text":""},{"location":"libraries/containers/","title":"\u30b3\u30f3\u30c6\u30ca","text":""},{"location":"libraries/containers/#_2","title":"\u30cf\u30c3\u30b7\u30e5\u30c6\u30fc\u30d6\u30eb","text":""},{"location":"libraries/math/","title":"\u6570\u5b66","text":""},{"location":"libraries/math/#_2","title":"\u56fa\u5b9a\u5c0f\u6570\u70b9\u6570","text":""},{"location":"libraries/testing/","title":"\u5358\u4f53\u30c6\u30b9\u30c8\u30d5\u30ec\u30fc\u30e0\u30ef\u30fc\u30af","text":""},{"location":"libraries/text-data/","title":"\u30c6\u30ad\u30b9\u30c8\u30c7\u30fc\u30bf","text":""},{"location":"libraries/text-data/#json","title":"JSON","text":""},{"location":"libraries/text-data/#_2","title":"\u30d9\u30f3\u30c1\u30de\u30fc\u30af","text":""},{"location":"libraries/text-data/#toml","title":"TOML","text":""},{"location":"libraries/text-data/#xml","title":"XML","text":""},{"location":"libraries/text-data/#csv","title":"CSV","text":""},{"location":"libraries/text-data/#ini","title":"INI","text":""},{"location":"libraries/text-data/#yaml","title":"YAML","text":""},{"location":"standardization/cpp20/","title":"C++20 \u306e\u65b0\u6a5f\u80fd","text":"

    Info

    \u9805\u76ee\u8ffd\u52a0\u30fb\u57f7\u7b46\u4f5c\u696d\u4e2d\u3067\u3059\uff08\u5b8c\u6210\u5ea6 \u7d04 35%\uff09

    C++20 \u898f\u683c\u306b\u304a\u3051\u308b\u65b0\u6a5f\u80fd\u30fb\u4ed5\u69d8\u5909\u66f4\u3092\u89e3\u8aac\u3057\u307e\u3059\u3002

    "},{"location":"standardization/cpp20/#_1","title":"\u8a00\u8a9e\u6a5f\u80fd","text":""},{"location":"standardization/cpp20/#p0683r1","title":"\u30d3\u30c3\u30c8\u30d5\u30a3\u30fc\u30eb\u30c9\u306b\u30c7\u30d5\u30a9\u30eb\u30c8\u306e\u521d\u671f\u5024\u3092\u8a2d\u5b9a\u53ef\u80fd\u306b (P0683R1)","text":"

    \u30d3\u30c3\u30c8\u30d5\u30a3\u30fc\u30eb\u30c9\u306b\u304a\u3051\u308b\u30d3\u30c3\u30c8\u5e45\u306e\u6307\u5b9a\u306b\u7d9a\u3044\u3066\u3001= \u6f14\u7b97\u5b50\u307e\u305f\u306f {} \u521d\u671f\u5316\u5b50\u3092\u4f7f\u3063\u3066\u521d\u671f\u5316\u5f0f\u3092\u8a18\u8ff0\u3067\u304d\u308b\u3088\u3046\u306b\u306a\u308a\u307e\u3059\u3002

    #include <iostream>\n\nenum class Terrain : unsigned char\n{\n    Open, Forest, Hill, Mountain, Desert, Tundra, River, Ocean\n};\n\nstruct Tile\n{\n    unsigned char height : 4 = 1; // \u30c7\u30d5\u30a9\u30eb\u30c8\u5024\u3092 1 \u306b\n    Terrain terrain : 3 = Terrain::Open; // \u30c7\u30d5\u30a9\u30eb\u30c8\u5024\u3092\u660e\u793a\u7684\u306b Terrain::Open \u306b\n    bool passable : 1 = true; // \u30c7\u30d5\u30a9\u30eb\u30c8\u5024\u3092 true \u306b\n};\n\nint main()\n{\n    std::cout << std::boolalpha;\n\n    Tile tile1;\n    std::cout << static_cast<int>(tile1.height) << \", \" << static_cast<int>(tile1.terrain) << \", \" << tile1.passable << '\\n';\n\n    Tile tile2{ 15, Terrain::Mountain, false };\n    std::cout << static_cast<int>(tile2.height) << \", \" << static_cast<int>(tile2.terrain) << \", \" << tile2.passable << '\\n';\n}\n
    1, 0, true\n15, 3, false\n

    "},{"location":"standardization/cpp20/#p0704r1","title":"\u30e1\u30f3\u30d0\u30dd\u30a4\u30f3\u30bf\u6f14\u7b97\u5b50\u306e\u4ed5\u69d8\u3092\u4e00\u8cab\u6027\u306e\u305f\u3081\u306b\u4fee\u6b63 (P0704R1)","text":"

    C++17 \u307e\u3067\u306e\u30e1\u30f3\u30d0\u30dd\u30a4\u30f3\u30bf\u6f14\u7b97\u5b50 .* \u306f\u300c\u53f3\u8fba\u5024\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u304b\u3089\u3001\u5de6\u8fba\u5024\u53c2\u7167\u4fee\u98fe\u3055\u308c\u305f\u30e1\u30f3\u30d0\u95a2\u6570\u30dd\u30a4\u30f3\u30bf\u306b\u4f7f\u3046\u3053\u3068\u306f\u4e0d\u9069\u683c\u300d\u3068\u3044\u3046\u898f\u683c\u6587\u9762\u306b\u306a\u3063\u3066\u3044\u307e\u3057\u305f\u3002\u305d\u306e\u305f\u3081\u3001\u540c\u3058\u610f\u5473\u3092\u3082\u3064\u6b21\u306e 2 \u3064\u306e\u30d7\u30ed\u30b0\u30e9\u30e0\u3067\u5f8c\u8005\u3060\u3051\u4e0d\u9069\u683c\u3068\u3055\u308c\u3001\u4e00\u8cab\u6027\u304c\u3042\u308a\u307e\u305b\u3093\u3067\u3057\u305f\u3002

    #include <iostream>\n#include <string>\n\nstruct Text\n{\n    std::string m_data;\n\n    const std::string& get() const &\n    {\n        return m_data;\n    }\n};\n\nint main()\n{\n    std::cout << Text{ \"Hello\" }.get() << '\\n'; // OK\n\n    std::cout << (Text{ \"Hello\" }.*&Text::get)() << '\\n'; // C++17 \u307e\u3067\u306f\u4e0d\u9069\u683c\u3001C++20 \u304b\u3089 OK\n}\n
    C++20 \u3067\u306f\u300c\u53f3\u8fba\u5024\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u304b\u3089\u3001\u5de6\u8fba\u5024\u53c2\u7167\u4fee\u98fe\u3055\u308c\u305f \"\u975e const\" \u30e1\u30f3\u30d0\u95a2\u6570\u30dd\u30a4\u30f3\u30bf\u306b\u4f7f\u3046\u3053\u3068\u306f\u4e0d\u9069\u683c\u300d\u3068\u6587\u9762\u3092\u4fee\u6b63\u3057\u3001\u5f8c\u8005\u3082\u30b3\u30f3\u30d1\u30a4\u30eb\u3067\u304d\u308b\u3088\u3046\u306b\u306a\u308a\u307e\u3059\u3002

    "},{"location":"standardization/cpp20/#2-p1236r1","title":"\u7b26\u53f7\u4ed8\u304d\u6574\u6570\u578b\u306e\u8ca0\u6570\u8868\u73fe\u3092 2 \u306e\u88dc\u6570\u3068\u898f\u5b9a (P1236R1)","text":"

    \u307b\u307c\u3059\u3079\u3066\u306e\u73fe\u4ee3\u7684\u306a\u30b3\u30f3\u30d4\u30e5\u30fc\u30bf\u3067\u3001\u7b26\u53f7\u4ed8\u304d\u6574\u6570\u578b\u306e\u8ca0\u6570\u306f 2 \u306e\u88dc\u6570\u3067\u8868\u73fe\u3055\u308c\u307e\u3059\u3002\u3057\u304b\u3057\u3001C++ \u3067\u306f\u8ca0\u6570\u306e\u8868\u73fe\u65b9\u6cd5\u306b\u3064\u3044\u3066\u898f\u683c\u3067\u5b9a\u3081\u3066\u3044\u306a\u304b\u3063\u305f\u305f\u3081\u3001\uff08\u73fe\u5b9f\u7684\u3067\u306f\u3042\u308a\u307e\u305b\u3093\u304c\uff092 \u306e\u88dc\u6570\u4ee5\u5916\u3067\u8ca0\u6570\u8868\u73fe\u3092\u5b9f\u88c5\u3059\u308b\u4f59\u5730\u3082\u6b8b\u3055\u308c\u3066\u3044\u307e\u3057\u305f\u3002C++20 \u304b\u3089\u306f 2 \u306e\u88dc\u6570\u306e\u307f\u3092\u8a31\u53ef\u3059\u308b\u3088\u3046\u898f\u683c\u6587\u8a00\u304c\u4fee\u6b63\u3055\u308c\u307e\u3057\u305f\u3002 \u8fd1\u5e74\u306e\u30a2\u30fc\u30ad\u30c6\u30af\u30c1\u30e3\u3067 2 \u306e\u88dc\u6570\u4ee5\u5916\u3092\u4f7f\u3046\u4f8b\u306f\u30011 \u306e\u88dc\u6570\u3092\u4f7f\u3046 Unisys 2200 \u304c\u3042\u308a\u307e\u3059\u3002\u307e\u305f\u904e\u53bb\u306b\u306f\u7b26\u53f7\u3068\u7d76\u5bfe\u5024\u3067\u8868\u73fe\u3059\u308b\u30a2\u30fc\u30ad\u30c6\u30af\u30c1\u30e3\u3082\u3042\u308a\u307e\u3057\u305f\u3002\u3053\u308c\u3089\u306f\u30e2\u30c0\u30f3\u306a C++ \u3092\u958b\u767a\u74b0\u5883\u3068\u3057\u3066\u4f7f\u7528\u3057\u306a\u3044\u306e\u3067\u3001\u3053\u306e\u898f\u683c\u5909\u66f4\u306b\u3088\u308b\u5f71\u97ff\u306f\u7121\u3044\u3068\u8003\u3048\u3089\u308c\u307e\u3059\u3002

    "},{"location":"standardization/cpp20/#8-bit-2","title":"\uff08\u53c2\u8003\uff09\u7b26\u53f7\u4ed8\u304d 8-bit \u6574\u6570\u306e 2 \u9032\u8868\u73fe","text":"10 \u9032\u8868\u73fe 2 \u306e\u88dc\u6570 1 \u306e\u88dc\u6570 \u7b26\u53f7\u3068\u7d76\u5bfe\u5024 127 01111111 01111111 01111111 126 01111110 01111110 01111110 125 01111101 01111101 01111101 2 00000010 00000010 00000010 1 00000001 00000001 00000001 0 00000000 00000000 00000000 -0 11111111 10000000 -1 11111111 11111110 10000001 -2 11111110 11111101 10000010 -126 10000010 10000001 11111110 -127 10000001 10000000 11111111 -128 10000000"},{"location":"standardization/cpp20/#0-no_unique_address-p0840r2","title":"\u30e1\u30f3\u30d0\u306e\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u304c\u7a7a\u306e\u30af\u30e9\u30b9\u306e\u5834\u5408\u306b\u30e1\u30e2\u30ea\u6d88\u8cbb\u3092 0 \u306b\u3067\u304d\u308b [[no_unique_address]] \u5c5e\u6027\u3092\u8ffd\u52a0 (P0840R2)","text":"

    \u30a2\u30ed\u30b1\u30fc\u30bf\u306a\u3069\u3092\u30af\u30e9\u30b9\u306e\u30e1\u30f3\u30d0\u3068\u3057\u3066\u4fdd\u6301\u3059\u308b\u3068\u304d\u3001\u305d\u308c\u304c\u30b9\u30c6\u30fc\u30c8\u30ec\u30b9\u306a\u7a7a\u306e\u30af\u30e9\u30b9\u3067\u3042\u3063\u3066\u3082\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u306e\u30a2\u30c9\u30ec\u30b9\u3092\u4e00\u610f\u306b\u7528\u610f\u3057\u306a\u3044\u3068\u3044\u3051\u306a\u3044\u305f\u3081\u3001\u30b5\u30a4\u30ba\u3092 0 \u306b\u3067\u304d\u305a\u30e1\u30e2\u30ea\u6d88\u8cbb\u304c\u7121\u99c4\u306b\u5897\u3048\u3066\u3057\u307e\u3046\u554f\u984c\u304c\u3042\u308a\u307e\u3057\u305f\u3002

    #include <iostream>\n\nstruct Empty {};\n\nstruct X\n{\n    int i;\n    Empty e;\n};\n\nint main()\n{\n    std::cout << sizeof(X) << '\\n'; // 4 \u3088\u308a\u5927\u304d\u3044\n}\n
    \u3053\u308c\u3092\u56de\u907f\u3059\u308b\u305f\u3081\u306b\u300c\u7a7a\u306e\u57fa\u5e95\u30af\u30e9\u30b9\u306f\u6700\u9069\u5316\u306b\u3088\u3063\u3066\u30b5\u30a4\u30ba 0 \u306b\u3057\u3066\u3088\u3044\u300d\u3068\u3044\u3046\u4ed5\u69d8\u3092\u5229\u7528\u3057\u305f Empty Base Optimization (EBO) \u3068\u3044\u3046\u30c6\u30af\u30cb\u30c3\u30af\u304c\u3042\u308a\u3001\u6a19\u6e96\u30e9\u30a4\u30d6\u30e9\u30ea\u3067\u3082\u3000std::unique_ptr \u3084 std::shared_ptr, std::vector \u306a\u3069\u306b\u4f7f\u308f\u308c\u3066\u3044\u307e\u3059\u3002
    #include <iostream>\n\nstruct Empty {};\n\nstruct X : public Empty\n{\n    int i;\n};\n\nint main()\n{\n    std::cout << sizeof(X) << '\\n'; // 4\n}\n
    \u3057\u304b\u3057\u3001\u3053\u308c\u3089\u306e\u30af\u30e9\u30b9\u3067\u7d99\u627f\u306b\u3088\u308b EBO \u3092\u5b9f\u88c5\u3059\u308b\u3068\u30b3\u30fc\u30c9\u304c\u8907\u96d1\u306b\u306a\u308b\u3068\u3044\u3046\u6b20\u70b9\u304c\u3042\u308a\u307e\u3057\u305f\u3002C++20 \u3067\u306f\u30e1\u30f3\u30d0\u306e\u5ba3\u8a00\u306b [[no_unique_address]] \u5c5e\u6027\u3092\u4ed8\u3051\u308b\u3053\u3068\u3067\u3001\u7d99\u627f\u3092\u4f7f\u308f\u306a\u304f\u3066\u3082\u30b3\u30f3\u30d1\u30a4\u30e9\u304c EBO \u3068\u540c\u3058\u3088\u3046\u306a\u6700\u9069\u5316\u3092\u3067\u304d\u308b\u3088\u3046\u306b\u306a\u308a\u3001\u5f93\u6765\u306e\u7d99\u627f\u306b\u3088\u308b EBO \u3092\u4f7f\u3063\u3066\u3044\u305f\u30b3\u30fc\u30c9\u3092\u3001\u3088\u308a\u5358\u7d14\u306a\u30b3\u30fc\u30c9\u306b\u7f6e\u304d\u63db\u3048\u3089\u308c\u307e\u3059\u3002
    #include <iostream>\n\nstruct Empty {};\n\nstruct X\n{\n    int i;\n    [[no_unique_address]] Empty e;\n};\n\nint main()\n{\n    std::cout << sizeof(X) << '\\n'; // 4\n}\n

    "},{"location":"standardization/cpp20/#typename-p0634r3","title":"\u578b\u540d\u3067\u3042\u308b\u3053\u3068\u304c\u660e\u3089\u304b\u306a\u6587\u8108\u3067 typename \u3092\u7701\u7565\u53ef\u80fd\u306b (P0634R3)","text":"

    C++17 \u3067\u4f9d\u5b58\u540d\u304c\u578b\u3067\u3042\u308b\u5834\u5408\u306b typename \u3092\u4ed8\u3051\u306a\u3044\u306e\u306f\u3001\u6d3e\u751f\u30af\u30e9\u30b9\u5b9a\u7fa9\u6642\u306e\u57fa\u5e95\u30af\u30e9\u30b9\u306e\u6307\u5b9a\u3068\u3001\u521d\u671f\u5316\u5b50\u30ea\u30b9\u30c8\u3067\u306e\u57fa\u5e95\u30af\u30e9\u30b9\u306e\u6307\u5b9a\u306e\u307f\u3067\u3057\u305f\uff08\u53b3\u5bc6\u306b\u306f\u3053\u306e 2 \u3064\u306b\u306f typename \u3092\u4ed8\u3051\u3089\u308c\u307e\u305b\u3093\uff09\u3002C++20 \u3067\u306f\u3001\u578b\u540d\u3057\u304b\u4f7f\u3048\u306a\u3044\u3055\u3089\u306b\u3044\u304f\u3064\u304b\u306e\u6587\u8108\u3067 typename \u304c\u7701\u7565\u53ef\u80fd\u306b\u306a\u308a\u307e\u3059\u3002\u6b21\u306e\u30b5\u30f3\u30d7\u30eb\u30b3\u30fc\u30c9\u306e\u5de6\u53f3\u30bf\u30d6\u3067\u6bd4\u8f03\u3067\u304d\u307e\u3059\u3002

    C++17C++20
    #include <vector>\n#include <string>\n\ntemplate <class T, class Alloc = typename T::allocator_type>\nstruct S : T::value_type // \u6d3e\u751f\u30af\u30e9\u30b9\u5b9a\u7fa9\u6642\u306e\u57fa\u5e95\u30af\u30e9\u30b9\u306e\u6307\u5b9a\n{\n    using value_type = typename T::value_type;\n\n    S()\n        : T::value_type() {} // \u521d\u671f\u5316\u5b50\u30ea\u30b9\u30c8\u3067\u306e\u57fa\u5e95\u30af\u30e9\u30b9\u306e\u6307\u5b9a\n\n    typename T::size_type max_size() const;\n\n    auto data()->typename T::pointer;\n\n    auto min_size() const\n    {\n        return static_cast<typename T::size_type>(0);\n    }\n};\n\ntemplate <class T> typename T::size_type MaxSize();\n\nint main()\n{\n    S<std::vector<std::string>> s;\n}\n
    #include <vector>\n#include <string>\n\ntemplate <class T, class Alloc = T::allocator_type> // OK\nstruct S : T::value_type // \u6d3e\u751f\u30af\u30e9\u30b9\u5b9a\u7fa9\u6642\u306e\u57fa\u5e95\u30af\u30e9\u30b9\u306e\u6307\u5b9a\n{\n    using value_type = T::value_type; // OK\n\n    S()\n        : T::value_type() {} // \u521d\u671f\u5316\u5b50\u30ea\u30b9\u30c8\u3067\u306e\u57fa\u5e95\u30af\u30e9\u30b9\u306e\u6307\u5b9a\n\n    T::size_type max_size() const; // OK\n\n    auto data()->T::pointer; // OK\n\n    auto min_size() const\n    {\n        return static_cast<T::size_type>(0); // OK\n    }\n};\n\ntemplate <class T> T::size_type MaxSize(); // OK\n\nint main()\n{\n    S<std::vector<std::string>> s;\n}\n
    "},{"location":"standardization/cpp20/#p1064r0","title":"\u5b9a\u6570\u5f0f\u3067\u306e\u4eee\u60f3\u95a2\u6570\u547c\u3073\u51fa\u3057\u304c\u53ef\u80fd\u306b (P1064R0)","text":"

    \u30b3\u30f3\u30d1\u30a4\u30eb\u6642\u306b\u6c7a\u5b9a\u53ef\u80fd\u3067\u3042\u308c\u3070\u3001\u53c2\u7167\u3084\u30dd\u30a4\u30f3\u30bf\u3092\u901a\u3057\u305f\u4eee\u60f3\u95a2\u6570\u306e\u547c\u3073\u51fa\u3057\u3092 constexpr \u306b\u3067\u304d\u308b\u3088\u3046\u306b\u306a\u308a\u307e\u3059\u3002constexpr \u4fee\u98fe\u3055\u308c\u305f\u4eee\u60f3\u95a2\u6570\u3092\u975e constexpr \u95a2\u6570\u3067\u30aa\u30fc\u30d0\u30fc\u30e9\u30a4\u30c9\u3059\u308b\u3053\u3068\u3084\u3001\u305d\u306e\u9006\u3082\u53ef\u80fd\u3067\u3059\u3002

    struct Cpp\n{\n    virtual int version() const = 0;\n};\n\nstruct Cpp17 : Cpp\n{\n    constexpr int version() const override\n    {\n        return 17;\n    }\n};\n\nstruct Cpp20 : Cpp\n{\n    constexpr int version() const override\n    {\n        return 20;\n    }\n};\n\nconstexpr int GetVersion(const Cpp& a)\n{\n    return a.version();\n}\n\nint main()\n{\n    constexpr Cpp17 cpp17;\n    constexpr Cpp20 cpp20;\n\n    static_assert(GetVersion(cpp17) == 17);\n    static_assert(GetVersion(cpp20) == 20);\n}\n
    "},{"location":"standardization/cpp20/#type_id-dynamic_cast-constexpr-p1327r1","title":"type_id \u3068 dynamic_cast \u304c constexpr \u306b (P1327R1)","text":"

    dynamic_cast \u3068 type_id \u304c\u3001\u4f8b\u5916\u3092\u6295\u3052\u308b\u30b1\u30fc\u30b9\u3092\u9664\u3044\u3066 constexpr \u306b\u306a\u308a\u307e\u3059\u3002

    #include <typeinfo>\n\nstruct Cpp\n{\n    virtual int version() const = 0;\n};\n\nstruct Cpp17 : Cpp\n{\n    constexpr int version() const override\n    {\n        return 17;\n    }\n};\n\nstruct Cpp20 : Cpp\n{\n    constexpr int version() const override\n    {\n        return 20;\n    }\n};\n\nint main()\n{\n    constexpr static Cpp17 cpp17;\n    constexpr const Cpp* pCpp = &cpp17;\n    constexpr auto& cpptype = typeid(*pCpp);\n\n    constexpr const Cpp& refCpp = cpp17;\n    constexpr const Cpp17& redCpp2 = dynamic_cast<const Cpp17&>(refCpp);\n}\n

    \u6b21\u306e\u3088\u3046\u306b\u4f8b\u5916\u3092\u6295\u3052\u308b\u30b1\u30fc\u30b9\u3067\u306f constexpr \u306b\u3067\u304d\u305a\u30b3\u30f3\u30d1\u30a4\u30eb\u30a8\u30e9\u30fc\u306b\u306a\u308a\u307e\u3059\u3002

    #include <typeinfo>\n\nstruct Cpp\n{\n    virtual int version() const = 0;\n};\n\nstruct Cpp17 : Cpp\n{\n    constexpr int version() const override\n    {\n        return 17;\n    }\n};\n\nstruct Cpp20 : Cpp\n{\n    constexpr int version() const override\n    {\n        return 20;\n    }\n};\n\nint main()\n{\n    constexpr Cpp* pCpp = nullptr;\n    constexpr auto& cpptype = typeid(*pCpp); //\u30b3\u30f3\u30d1\u30a4\u30eb\u30a8\u30e9\u30fc: \u4f8b\u5916 std::bad_typeid \u3092\u6295\u3052\u308b\u305f\u3081 constexpr \u4e0d\u53ef\n\n    constexpr static Cpp17 cpp17;\n    constexpr const Cpp& refCpp = cpp17;\n    constexpr const Cpp20& redCpp2 = dynamic_cast<const Cpp20&>(refCpp); // \u30b3\u30f3\u30d1\u30a4\u30eb\u30a8\u30e9\u30fc: \u4f8b\u5916 std::bad_cast \u3092\u6295\u3052\u308b\u305f\u3081 constexpr \u4e0d\u53ef\n}\n
    "},{"location":"standardization/cpp20/#p1330r0","title":"\u5b9a\u6570\u5f0f\u306b\u304a\u3044\u3066\u5171\u7528\u4f53\u306e\u30a2\u30af\u30c6\u30a3\u30d6\u30e1\u30f3\u30d0\u306e\u5207\u308a\u66ff\u3048\u304c\u53ef\u80fd\u306b (P1330R0)","text":"

    \u5171\u7528\u4f53\u306e\u30a2\u30af\u30c6\u30a3\u30d6\u30e1\u30f3\u30d0\u3068\u306f\u3001\u6700\u5f8c\u306b\u521d\u671f\u5316\u307e\u305f\u306f\u5024\u3092\u4ee3\u5165\u3057\u305f\u30e1\u30f3\u30d0\u306e\u3053\u3068\u3067\u3059\u3002C++17 \u3067\u306f\u5171\u7528\u4f53\u306e\u521d\u671f\u5316\u3084\u30a2\u30af\u30c6\u30a3\u30d6\u30e1\u30f3\u30d0\u3078\u306e\u30a2\u30af\u30bb\u30b9\u3092\u5b9a\u6570\u5f0f\u3067\u884c\u3048\u307e\u3057\u305f\u304c\u3001\u30a2\u30af\u30c6\u30a3\u30d6\u30e1\u30f3\u30d0\u306e\u5207\u308a\u66ff\u3048\u306f\u3067\u304d\u307e\u305b\u3093\u3067\u3057\u305f\u3002\u5b9a\u6570\u5f0f\u3067\u306e\u30a2\u30af\u30c6\u30a3\u30d6\u30e1\u30f3\u30d0\u306e\u5207\u308a\u66ff\u3048\u304c\u53ef\u80fd\u306b\u306a\u308b\u3068\u3001\u5171\u7528\u4f53\u306b\u3088\u3063\u3066\u5b9f\u88c5\u3055\u308c\u308b std::string \u3084 std::optional \u306a\u3069\u306e\u6a19\u6e96\u30e9\u30a4\u30d6\u30e9\u30ea\u30af\u30e9\u30b9\u306e\u30e1\u30f3\u30d0\u95a2\u6570\u306e constexpr \u5bfe\u5fdc\u3092\u62e1\u5145\u3067\u304d\u307e\u3059\u3002\u975e\u30a2\u30af\u30c6\u30a3\u30d6\u30e1\u30f3\u30d0\u3078\u306e\u30a2\u30af\u30bb\u30b9\u306f\u672a\u5b9a\u7fa9\u52d5\u4f5c\u306a\u306e\u3067\u3001\u5b9a\u6570\u5f0f\u3067\u884c\u3046\u3068\u30b3\u30f3\u30d1\u30a4\u30eb\u30a8\u30e9\u30fc\u306b\u306a\u308a\u307e\u3059\u3002

    #include <cstdint>\n\nunion Value\n{\n    float f;\n    std::uint32_t i;\n};\n\nconstexpr Value GetFloat(float x)\n{\n    return Value{ x }; // value.f \u304c\u30a2\u30af\u30c6\u30a3\u30d6\u30e1\u30f3\u30d0\n}\n\nconstexpr Value GetUint(std::uint32_t x)\n{\n    Value value = GetFloat(0.0f); // value.f \u304c\u30a2\u30af\u30c6\u30a3\u30d6\u30e1\u30f3\u30d0\n    value.i = x; // value.i \u304c\u30a2\u30af\u30c6\u30a3\u30d6\u30e1\u30f3\u30d0\u306b\n    return value;\n}\n\nint main()\n{\n    static_assert(GetUint(123).i == 123);\n}\n
    "},{"location":"standardization/cpp20/#try-catch-p1002r1","title":"\u5b9a\u6570\u5f0f\u306e\u6587\u8108\u3067\u306f try-catch \u3092\u7121\u8996\u3059\u308b\u3088\u3046\u306b (P1002R1)","text":"

    \u3053\u308c\u307e\u3067 constexpr \u95a2\u6570\u306e\u4e2d\u306b\u306f try-catch \u30d6\u30ed\u30c3\u30af\u3092\u66f8\u304f\u3053\u3068\u304c\u3067\u304d\u307e\u305b\u3093\u3067\u3057\u305f\u3002\u3057\u304b\u3057\u3001std::vector \u7b49\u306e\u30b3\u30f3\u30c6\u30ca\u3092 constexpr \u5bfe\u5fdc\u3059\u308b\u306b\u3042\u305f\u3063\u3066\u306f\u3001\u3053\u306e\u5236\u9650\u304c\u969c\u58c1\u3068\u306a\u308b\u305f\u3081\u3001C++20 \u3067\u306f constexpr \u95a2\u6570\u306e\u4e2d\u306e try-catch \u306f\u3001\u5b9a\u6570\u5f0f\u3068\u3057\u3066\u8a55\u4fa1\u3055\u308c\u308b\u3068\u304d\u306b\u306f\u7121\u8996\u3059\u308b\u3088\u3046\u4ed5\u69d8\u304c\u6539\u3081\u3089\u308c\u307e\u3059\u3002\u5b9a\u6570\u5f0f\u306e\u8a55\u4fa1\u4e2d\u306b\u4f8b\u5916\u3092\u6295\u3052\u308b\u3088\u3046\u3067\u3042\u308c\u3070\u30b3\u30f3\u30d1\u30a4\u30eb\u30a8\u30e9\u30fc\u306b\u306a\u308a\u307e\u3059\u3002std::vector \u306a\u3069\u3092 constexpr \u5bfe\u5fdc\u3055\u305b\u308b\u305f\u3081\u306e\u63aa\u7f6e\u3067\u3042\u308a\u3001\u5c06\u6765\u306e C++ \u306b\u304a\u3051\u308b\u30b3\u30f3\u30d1\u30a4\u30eb\u6642\u4f8b\u5916\u51e6\u7406\u306e\u5b9f\u73fe\u3092\u5426\u5b9a\u3059\u308b\u3082\u306e\u3067\u306f\u3042\u308a\u307e\u305b\u3093\u3002

    #include <cstdint> \n#include <iostream> \n#include <exception> \n\nconstexpr std::uint32_t AddU8(std::uint32_t a, std::uint32_t b)\n{\n    if ((a + b) >= 256)\n    {\n        throw std::exception{};\n    }\n\n    return a + b;\n}\n\nconstexpr std::uint32_t DoubleU8(std::uint32_t n)\n{\n    try\n    {\n        return AddU8(n, n);\n    }\n    catch (const std::exception& except)\n    {\n        return 0;\n    }\n}\n\nint main()\n{\n    static_assert(DoubleU8(123) == 246); // OK: \u4f8b\u5916\u3092\u6295\u3052\u305a\u306b\u5b9a\u6570\u5f0f\u3068\u3057\u3066\u8a55\u4fa1\u53ef\u80fd\n\n    //static_assert(DoubleU8(200) > 0); // \u30b3\u30f3\u30d1\u30a4\u30eb\u30a8\u30e9\u30fc: \u5b9a\u6570\u5f0f\u3068\u3057\u3066\u8a55\u4fa1\u3055\u308c\u308b constexpr \u95a2\u6570\u5185\u3067\u4f8b\u5916\u3092\u6295\u3052\u308b\u305f\u3081\n\n    std::cout << \"result: \" << DoubleU8(200) << '\\n'; // OK: \u5b9f\u884c\u6642\u306b\u8a55\u4fa1\u3055\u308c\u308b\u95a2\u6570\u3067\u4f8b\u5916\u304c\u767a\u751f\u3059\u308b\n}\n
    "},{"location":"standardization/cpp20/#deprecated-p1161r3","title":"\u6dfb\u5b57\u5f0f\u306b\u304b\u304b\u308b\u30b3\u30f3\u30de\u6f14\u7b97\u5b50\u306e\u4f7f\u7528\u3092 deprecated \u306b (P1161R3)","text":"

    \u3053\u308c\u307e\u3067 array[x, y] \u3068\u3044\u3046\u30b3\u30fc\u30c9\u3067\u306f\u3001\u30b3\u30f3\u30de\u6f14\u7b97\u5b50\u306e\u4f5c\u7528\u3067 y \u304c\u6dfb\u5b57\u6f14\u7b97\u306e\u5f15\u6570\u3068\u3057\u3066\u6e21\u3055\u308c\u307e\u3057\u305f\u3002\u3057\u304b\u3057\u3001\u3053\u306e\u6319\u52d5\u306f\u7d1b\u3089\u308f\u3057\u304f\u3001\u5c06\u6765\u306e C++ \u6a19\u6e96\u30e9\u30a4\u30d6\u30e9\u30ea\u306b\u591a\u6b21\u5143\u914d\u5217\u30af\u30e9\u30b9\u304c\u5b9f\u88c5\u3055\u308c\u305f\u3068\u304d\u3001\u6dfb\u5b57\u6f14\u7b97\u5b50\u3092\u8907\u6570\u306e\u5f15\u6570\u306b\u5bfe\u5fdc\u3055\u305b\u308b\u3088\u3046\u306a\u898f\u683c\u3092\u8ffd\u52a0\u3059\u308b\u3046\u3048\u3067\u306e\u969c\u58c1\u306b\u3082\u306a\u308a\u307e\u3059\u3002\u305d\u306e\u305f\u3081\u3001C++20 \u304b\u3089\u3001array[(x, y)] \u306e\u3088\u3046\u306b\u62ec\u5f27\u3092\u4f7f\u7528\u3059\u308b\u5834\u5408\u3092\u306e\u305e\u304d\u3001\u6dfb\u5b57\u5f0f\u306b\u304b\u304b\u308b\u30b3\u30f3\u30de\u6f14\u7b97\u5b50\u306e\u4f7f\u7528\u304c deprecated \u306b\u306a\u308a\u307e\u3059\u3002\u53e4\u3044\u30b3\u30fc\u30c9\u3067 deprecated \u306a\u66f8\u304d\u65b9\u3092\u3057\u3066\u3044\u305f\u5834\u5408\u3001\u524d\u8ff0\u306e\u3088\u3046\u306b () \u3092\u4ed8\u3051\u308b\u3053\u3068\u3067\u3001\u30b3\u30fc\u30c9\u306e\u6319\u52d5\u306b\u5f71\u97ff\u3092\u4e0e\u3048\u305a\u306b\u79fb\u690d\u304c\u53ef\u80fd\u3067\u3059\u3002

    #include <vector>\n\nint main()\n{\n    std::vector<int> v(10);\n\n    int index = 0;\n\n    v[++index, 0] = -1; // C++17 \u307e\u3067 OK, C++20 \u304b\u3089 deprecated\n\n    v[(++index, 0)] = -1; // OK\n}\n
    "},{"location":"standardization/cpp20/#using-p1099r5","title":"\u30b9\u30b3\u30fc\u30d7\u4ed8\u304d\u5217\u6319\u578b\u306b\u5bfe\u3059\u308b using \u5ba3\u8a00\u304c\u3067\u304d\u308b\u3088\u3046\u306b (P1099R5)","text":"

    \u3053\u308c\u307e\u3067\u306f\u3001enum class \u306e\u30b9\u30b3\u30fc\u30d7\u89e3\u6c7a\u3092\u7701\u7565\u3059\u308b\u65b9\u6cd5\u304c\u7121\u304f\u3001\u6b21\u306e\u3088\u3046\u306a switch \u3067\u3001\u5217\u6319\u578b\u306e\u540d\u524d\u304c\u4f55\u5ea6\u3082\u767b\u5834\u3059\u308b\u3088\u3046\u306a\u30b3\u30fc\u30c9\u3092\u66f8\u304f\u5fc5\u8981\u304c\u3042\u308a\u3001\u8aad\u307f\u306b\u304f\u304f\u3001\u9577\u3044\u5217\u6319\u578b\u306e\u540d\u524d\u304c\u907f\u3051\u3089\u308c\u308b\u539f\u56e0\u306b\u306a\u3063\u3066\u3044\u307e\u3057\u305f\u3002

    #include <iostream>\n#include <string_view>\n\nenum class Terrain\n{\n    Open, Mountain, River, Ocean\n};\n\nconstexpr std::string_view ToString(Terrain terrain)\n{\n    using namespace std::string_view_literals;\n\n    switch (terrain)\n    {\n    case Terrain::Open:     return \"Open\"sv;\n    case Terrain::Mountain: return \"Mountain\"sv;\n    case Terrain::River:    return \"River\"sv;\n    case Terrain::Ocean:    return \"Ocean\"sv;\n    default:                return \"\"sv;\n    }\n}\n\nint main()\n{\n    std::cout << ToString(Terrain::Mountain);\n}\n
    C++20 \u3067\u306f using \u5ba3\u8a00\u3092\u62e1\u5f35\u3057\u3001using Terrain::Open; \u3067 Open \u3092\u30a8\u30a4\u30ea\u30a2\u30b9\u3068\u3057\u3066\u4f7f\u3048\u308b\u3088\u3046\u306b\u306a\u308a\u307e\u3059\u3002\u307e\u305f using enum \u5ba3\u8a00\u3068\u3044\u3046\u65b0\u3057\u3044\u4ed5\u7d44\u307f\u306b\u3088\u308a\u3001using enum Terrain; \u3067 Terrain \u304c\u30ed\u30fc\u30ab\u30eb\u30b9\u30b3\u30fc\u30d7\u306b\u5c0e\u5165\u3055\u308c\u3001\u30b9\u30b3\u30fc\u30d7\u89e3\u6c7a\u6f14\u7b97\u5b50\u3092\u4f7f\u308f\u305a\u306b\u305d\u306e\u5217\u6319\u5b50\u3092\u4f7f\u3048\u308b\u3088\u3046\u306b\u306a\u308a\u307e\u3059\u3002
    enum class Terrain\n{\n    Open, Mountain, River, Ocean\n};\n\nconstexpr std::string_view ToString(Terrain terrain)\n{\n    using namespace std::string_view_literals;\n\n    switch (terrain)\n    {\n    using enum Terrain; // using enum \u5ba3\u8a00\u3067\u3001\u5217\u6319\u578b\u306e\u540d\u524d Terrain \u3092\u30ed\u30fc\u30ab\u30eb\u30b9\u30b3\u30fc\u30d7\u306b\u5c0e\u5165\n    case Open:      return \"Open\"sv;\n    case Mountain:  return \"Mountain\"sv;\n    case River:     return \"River\"sv;\n    case Ocean:     return \"Ocean\"sv;\n    default:        return \"\"sv;\n    }\n}\n\nint main()\n{\n    using Terrain::Mountain; // using \u5ba3\u8a00\u3067\u3001\u5217\u6319\u5b50 Mountain \u3092\u30ed\u30fc\u30ab\u30eb\u30b9\u30b3\u30fc\u30d7\u306b\u5c0e\u5165\n    std::cout << ToString(Mountain);\n}\n
    \u306a\u304a\u3001\u6b21\u306e\u3088\u3046\u306b\u8907\u6570\u306e using \u5ba3\u8a00\u306b\u3088\u3063\u3066\u540d\u524d\u306e\u885d\u7a81\u304c\u8d77\u3053\u308b\u5834\u5408\u306f\u30b3\u30f3\u30d1\u30a4\u30eb\u30a8\u30e9\u30fc\u306b\u306a\u308a\u307e\u3059\u3002
    #include <iostream>\n#include <string_view>\n\nenum class Terrain\n{\n    Open, Mountain, River, Ocean\n};\n\nenum class State\n{\n    Open, Closed\n};\n\nint main()\n{\n    using enum Terrain; // OK\n    using enum State;   // \u30b3\u30f3\u30d1\u30a4\u30eb\u30a8\u30e9\u30fc: Terrain::Open \u3068 State::Open \u306e\u540d\u524d\u304c\u885d\u7a81\n}\n

    "},{"location":"standardization/cpp20/#nodiscard-p1771r1","title":"\u30b3\u30f3\u30b9\u30c8\u30e9\u30af\u30bf\u306b [[nodiscard]] \u304c\u4f7f\u3048\u308b\u3088\u3046\u306b (P1771R1)","text":"

    C++17 \u3067 [[nodiscard]] \u304c\u5c0e\u5165\u3055\u308c\u305f\u969b\u3001\u4ed5\u69d8\u3067\u306f\u30b3\u30f3\u30b9\u30c8\u30e9\u30af\u30bf\u3092\u5bfe\u8c61\u3068\u3057\u3066\u3044\u307e\u305b\u3093\u3067\u3057\u305f\uff08\u305f\u3060\u3057\u3001GCC \u3067\u306f\u8b66\u544a\u3092\u51fa\u3057\u3064\u3064\u3082\u30b3\u30f3\u30b9\u30c8\u30e9\u30af\u30bf\u306b\u4ed8\u3051\u305f [[nodiscard]] \u3092\u30c1\u30a7\u30c3\u30af\u3057\u3066\u3044\u307e\u3057\u305f\uff09\u3002\u30b3\u30f3\u30b9\u30c8\u30e9\u30af\u30bf\u306e\u547c\u3073\u51fa\u3057\u306b\u3088\u3063\u3066\u4f5c\u6210\u3055\u308c\u305f\u4e00\u6642\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u304c\u610f\u56f3\u305b\u305a\u7121\u8996\u3055\u308c\u305f\u3068\u304d\u306b\u8b66\u544a\u3092\u51fa\u305b\u308b\u3068\u3001\u30e6\u30fc\u30b6\u306e\u9593\u9055\u3044\u3092\u6e1b\u3089\u305b\u307e\u3059\u3002\u305d\u3053\u3067\u3001\u30b3\u30f3\u30b9\u30c8\u30e9\u30af\u30bf\u306b\u3082 [[nodiscard]] \u5c5e\u6027\u3092\u4ed8\u3051\u3089\u308c\u308b\u3088\u3046\u3001C++17 \u5411\u3051\u306e\u898f\u683c\u306b\u3055\u304b\u306e\u307c\u3063\u3066\u4ed5\u69d8\u304c\u4fee\u6b63\u3055\u308c\u3001C++20 \u304a\u3088\u3073\u3001\u3053\u306e\u5909\u66f4\u306b\u5bfe\u5fdc\u3057\u305f C++17 \u30b3\u30f3\u30d1\u30a4\u30e9\u3067\u65b0\u4ed5\u69d8\u3092\u5229\u7528\u3067\u304d\u308b\u3088\u3046\u306b\u306a\u308a\u307e\u3059\u3002\u306a\u304a\u3001\u30c7\u30b9\u30c8\u30e9\u30af\u30bf\u3092\u5b9a\u7fa9\u3057\u3066\u3044\u305f\u5834\u5408\u3067\u3082\u8b66\u544a\u306f\u6d88\u3048\u307e\u305b\u3093\u3002

    struct Circle\n{\n    double x, y, r;\n\n    Circle() = default;\n\n    [[nodiscard]] constexpr Circle(double _x, double _y, double _r) noexcept\n        : x(_x), y(_y), r(_r) {}\n\n    void draw() const { /* ... */ }\n};\n\nint main()\n{\n    Circle(200, 300, 50); // warning: nodiscard \u5c5e\u6027\u306e\u30b3\u30f3\u30b9\u30c8\u30e9\u30af\u30bf\u3067\u4f5c\u6210\u3055\u308c\u305f\u4e00\u6642\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u3092\u7121\u8996\n\n    Circle(400, 300, 50).draw();\n}\n

    "},{"location":"standardization/cpp20/#inline-namespace-p1094r2","title":"\u30cd\u30b9\u30c8\u3057\u305f\u540d\u524d\u7a7a\u9593\u5b9a\u7fa9\u3067 inline namespace \u3092\u4f7f\u3048\u308b\u3088\u3046\u306b (P1094R2)","text":"

    C++17 \u3067\u30cd\u30b9\u30c8\u3057\u305f\u540d\u524d\u7a7a\u9593\u5b9a\u7fa9\u304c\u5c0e\u5165\u3055\u308c\u307e\u3057\u305f\u304c\u3001\u305d\u306e\u4e2d\u3067\u306f inline namespace \u3092\u4f7f\u3046\u3053\u3068\u304c\u3067\u304d\u305a\u3001inline namespace \u304c namespace \u5185\u306b\u3042\u308b\u6b21\u306e\u3088\u3046\u306a\u30b1\u30fc\u30b9\u3067\u6069\u6075\u3092\u53d7\u3051\u3089\u308c\u307e\u305b\u3093\u3067\u3057\u305f\u3002C++20 \u304b\u3089\u306f\u30cd\u30b9\u30c8\u3057\u305f\u540d\u524d\u7a7a\u9593\u5b9a\u7fa9\u306e\u4e2d\u3067 inline \u3092\u4f7f\u3048\u308b\u3088\u3046\u306b\u306a\u308a\u307e\u3059\u3002

    C++17C++20
    #include <iostream>\n\nnamespace mylib::v1::util\n{\n    constexpr int GetValue() { return 1; }\n}\n\nnamespace mylib\n{\n    inline namespace v2\n    {\n        namespace util\n        {\n            constexpr int GetValue() { return 2; }\n        }\n    }\n}\n\nint main()\n{\n    std::cout << mylib::v1::util::GetValue() << '\\n';\n    std::cout << mylib::v2::util::GetValue() << '\\n';\n    std::cout << mylib::util::GetValue() << '\\n'; // v2\n}\n
    #include <iostream>\n\nnamespace mylib::v1::util\n{\n    constexpr int GetValue() { return 1; }\n}\n\nnamespace mylib::inline v2::util\n{\n    constexpr int GetValue() { return 2; }\n}\n\nint main()\n{\n    std::cout << mylib::v1::util::GetValue() << '\\n';\n    std::cout << mylib::v2::util::GetValue() << '\\n';\n    std::cout << mylib::util::GetValue() << '\\n'; // v2\n}\n
    "},{"location":"standardization/cpp20/#private-p0969r0","title":"\u672c\u6765\u30a2\u30af\u30bb\u30b9\u53ef\u80fd\u306a private \u30e1\u30f3\u30d0\u306b\u69cb\u9020\u5316\u675f\u7e1b\u3067\u306f\u30a2\u30af\u30bb\u30b9\u3067\u304d\u306a\u304b\u3063\u305f\u4ed5\u69d8\u3092\u4fee\u6b63 (P0969R0)","text":"

    \u30e1\u30f3\u30d0\u95a2\u6570\u5185\u3067\u81ea\u8eab\u306e private \u30e1\u30f3\u30d0\u306b\u30a2\u30af\u30bb\u30b9\u3059\u308b\u3053\u3068\u3084\u3001friend \u6307\u5b9a\u3055\u308c\u305f\u95a2\u6570\u3067\u8a72\u5f53\u30af\u30e9\u30b9\u306e private \u30e1\u30f3\u30d0\u5909\u6570\u306b\u30a2\u30af\u30bb\u30b9\u3059\u308b\u3053\u3068\u306f\u901a\u5e38\u53ef\u80fd\u3067\u3059\u304c\u3001C++17 \u306e\u69cb\u9020\u5316\u675f\u7e1b\u306f\u30af\u30e9\u30b9\u306e public \u30e1\u30f3\u30d0\u306b\u3057\u304b\u30d0\u30a4\u30f3\u30c9\u3067\u304d\u306a\u3044\u3068\u3044\u3046\u898f\u683c\u6587\u9762\u306e\u5236\u7d04\u304c\u3042\u308a\u3001\u6b21\u306e\u3088\u3046\u306a\u30b1\u30fc\u30b9\u3067\u4e00\u8cab\u6027\u304c\u3042\u308a\u307e\u305b\u3093\u3067\u3057\u305f\u3002\u3053\u306e\u5236\u7d04\u3092\u8ab2\u3059\u5408\u7406\u7684\u306a\u7406\u7531\u306f\u7121\u304b\u3063\u305f\u305f\u3081\u3001C++17 \u5411\u3051\u306e\u898f\u683c\u306b\u3055\u304b\u306e\u307c\u3063\u3066\u4ed5\u69d8\u304c\u4fee\u6b63\u3055\u308c\u3001\u30a2\u30af\u30bb\u30b9\u53ef\u80fd\u3067\u3042\u308c\u3070 private \u30e1\u30f3\u30d0\u5909\u6570\u3092\u30d0\u30a4\u30f3\u30c9\u3067\u304d\u308b\u3088\u3046\u306b\u306a\u308a\u307e\u3059\u3002C++20 \u304a\u3088\u3073\u3001\u3053\u306e\u5909\u66f4\u306b\u5bfe\u5fdc\u3057\u305f C++17 \u30b3\u30f3\u30d1\u30a4\u30e9\u3067\u65b0\u4ed5\u69d8\u3092\u5229\u7528\u3067\u304d\u307e\u3059\u3002

    class Date\n{\nprivate:\n\n    int m_year, m_month, m_day;\n\npublic:\n\n    friend void Work(const Date& date);\n\n    void f(const Date& other) const\n    {\n        // OK\n        int year = other.m_year;\n        int month = other.m_month;\n        int day = other.m_day;\n\n        // \u3053\u308c\u307e\u3067\u306f\u30b3\u30f3\u30d1\u30a4\u30eb\u30a8\u30e9\u30fc, C++20 \u4ee5\u964d OK\n        auto [y, m, d] = other;\n    }\n};\n\n// friend \u6307\u5b9a\u3055\u308c\u3066\u3044\u308b\u95a2\u6570\nvoid Work(const Date& date)\n{\n    // OK\n    int year = date.m_year;\n    int month = date.m_month;\n    int day = date.m_day;\n\n    // \u3053\u308c\u307e\u3067\u306f\u30b3\u30f3\u30d1\u30a4\u30eb\u30a8\u30e9\u30fc, C++20 \u4ee5\u964d OK\n    auto [y, m, d] = date;\n}\n\nint main()\n{\n\n}\n
    "},{"location":"standardization/cpp20/#p1008r1","title":"\u30e6\u30fc\u30b6\u5ba3\u8a00\u3055\u308c\u305f\u30b3\u30f3\u30b9\u30c8\u30e9\u30af\u30bf\u3092\u6301\u3064\u30af\u30e9\u30b9\u306e\u96c6\u6210\u4f53\u521d\u671f\u5316\u3092\u7981\u6b62 (P1008R1)","text":"

    C++17 \u307e\u3067\u306f\u96c6\u6210\u4f53\u306e\u8981\u4ef6\u304c\u7de9\u304b\u3063\u305f\u305f\u3081\u3001\u30b3\u30f3\u30b9\u30c8\u30e9\u30af\u30bf\u306b\u3064\u3044\u3066\u306f\u3001\u30c7\u30d5\u30a9\u30eb\u30c8\u30b3\u30f3\u30b9\u30c8\u30e9\u30af\u30bf\u304c = delete \u307e\u305f\u306f private \u3067\u3042\u3063\u3066\u3082\u3001\u96c6\u6210\u4f53\u521d\u671f\u5316\u306b\u3088\u3063\u3066\u521d\u671f\u5316\u3067\u304d\u308b\u629c\u3051\u9053\u304c\u3042\u308a\u307e\u3057\u305f\u3002\u3053\u308c\u306f\u30e1\u30f3\u30d0\u5909\u6570\u304c\u610f\u56f3\u3057\u306a\u3044\u5024\u3067\u521d\u671f\u5316\u3055\u308c\u308b\u3068\u3044\u3063\u305f\u554f\u984c\u3092\u5f15\u304d\u8d77\u3053\u3057\u307e\u3059\u3002C++20 \u304b\u3089\u306f\u96c6\u6210\u4f53\u306e\u8981\u4ef6\u304c\u53b3\u3057\u304f\u306a\u308a\u3001\u30e6\u30fc\u30b6\u5ba3\u8a00\u3055\u308c\u305f\u30b3\u30f3\u30b9\u30c8\u30e9\u30af\u30bf\u304c\u3042\u308b\u30af\u30e9\u30b9\u306f\u96c6\u6210\u4f53\u306b\u306f\u306a\u308a\u307e\u305b\u3093\u3002

    struct A\n{\n    A() = delete;\n};\n\nstruct B\n{\nprivate:\n    B() = default;\n};\n\nstruct C\n{\n    int i = 0;\n    C() = default;\n};\n\nint main()\n{\n    A a1; // \u30b3\u30f3\u30d1\u30a4\u30eb\u30a8\u30e9\u30fc\n    A a2{}; // C++17 \u307e\u3067\u306f OK, C++20 \u304b\u3089\u306f\u30b3\u30f3\u30d1\u30a4\u30eb\u30a8\u30e9\u30fc\n\n    B b1; // \u30b3\u30f3\u30d1\u30a4\u30eb\u30a8\u30e9\u30fc\n    B b2{}; // C++17 \u307e\u3067\u306f OK, C++20 \u304b\u3089\u306f\u30b3\u30f3\u30d1\u30a4\u30eb\u30a8\u30e9\u30fc\n\n    C c1(123); //\u30b3\u30f3\u30d1\u30a4\u30eb\u30a8\u30e9\u30fc\n    C c2{ 123 }; // C++17 \u307e\u3067\u306f OK, C++20 \u304b\u3089\u306f\u30b3\u30f3\u30d1\u30a4\u30eb\u30a8\u30e9\u30fc\n}\n
    "},{"location":"standardization/cpp20/#throw-p0619r4","title":"throw() \u306b\u3088\u308b\u52d5\u7684\u4f8b\u5916\u6307\u5b9a\u3092\u524a\u9664 (P0619R4)","text":"

    C++11 \u3067\u306f\u3001noexcept \u306e\u8ffd\u52a0\u306b\u5408\u308f\u305b\u3001throw(typeid, ...) \u3084 throw() \u306b\u3088\u308b\u52d5\u7684\u4f8b\u5916\u6307\u5b9a\u304c\u975e\u63a8\u5968\u5316\u3055\u308c\u307e\u3057\u305f\u3002C++17 \u3067\u306f\u524d\u8005\u304c\u524a\u9664\u3055\u308c\u307e\u3057\u305f\u304c\u3001\u53e4\u3044\u30b3\u30fc\u30c9\u306b\u304a\u3044\u3066\u5e83\u304f\u4f7f\u308f\u308c\u3066\u3044\u305f\u5f8c\u8005\u306f\u3001\u79fb\u884c\u7336\u4e88\u306e\u305f\u3081\u306b noexcept(true) \u306e\u30a8\u30a4\u30ea\u30a2\u30b9\u3068\u3057\u3066\u6539\u3081\u3089\u308c\u3064\u3064\u4fdd\u6301\u3055\u308c\u3066\u3044\u307e\u3057\u305f\u3002C++20 \u3067\u306f\u5f8c\u8005\u3082\u524a\u9664\u3055\u308c\u307e\u3059\u3002

    "},{"location":"standardization/cpp20/#nodiscard-p1301r4","title":"\u30e1\u30c3\u30bb\u30fc\u30b8\u4ed8\u304d\u306e [[nodiscard]] \u5c5e\u6027 (P1301R4)","text":"

    C++17 \u3067\u8ffd\u52a0\u3055\u308c\u305f [[nodiscard]] \u5c5e\u6027\u306f\u3001\u30e9\u30a4\u30d6\u30e9\u30ea\u306a\u3069\u304c\u63d0\u4f9b\u3059\u308b\u95a2\u6570\u306e\u8aa4\u7528\u3092\u9632\u3050\u52a9\u3051\u306b\u306a\u308a\u307e\u3059\u304c\u3001\u95a2\u6570\u304c\u306a\u305c [[nodiscard]] \u5c5e\u6027\u3092\u6301\u3063\u3066\u3044\u308b\u306e\u304b\u306b\u3064\u3044\u3066\u3001\u5229\u7528\u8005\u306b\u5341\u5206\u306a\u60c5\u5831\u304c\u4f1d\u308f\u3089\u306a\u3044\u5834\u5408\u304c\u3042\u308a\u307e\u3057\u305f\u3002C++20 \u3067\u306f [[nodiscard(\"....\")]] \u306e\u3088\u3046\u306a\u5f62\u5f0f\u3067\u30e1\u30c3\u30bb\u30fc\u30b8\u3092\u8ffd\u52a0\u3067\u304d\u308b\u3088\u3046\u306b\u306a\u308a\u307e\u3059\u3002\u623b\u308a\u5024\u306e\u7121\u8996\u304c\u3042\u3063\u305f\u5834\u5408\u3001\u30b3\u30f3\u30d1\u30a4\u30e9\u306f\u8b66\u544a\u306b\u52a0\u3048\u3066\u3053\u306e\u30e1\u30c3\u30bb\u30fc\u30b8\u3092\u88dc\u8db3\u60c5\u5831\u3068\u3057\u3066\u51fa\u529b\u3067\u304d\u307e\u3059\u3002

    #include <vector>\n\nstruct Data\n{\nprivate:\n\n    std::vector<int> m_data;\n\npublic:\n\n    void clear()\n    {\n        m_data.clear();\n    }\n\n    [[nodiscard(\"Did you mean 'clear'?\")]]\n    bool empty() const\n    {\n        return m_data.empty();\n    }\n};\n\nint main()\n{\n    Data data;\n\n    data.empty();\n}\n

    \u30b3\u30f3\u30d1\u30a4\u30e9\u306e\u51fa\u529b\u4f8b

    prog.cc:27:2: warning: ignoring return value of function declared with 'nodiscard' attribute:\n        Did you mean 'clear'? [-Wunused-result]\n        data.empty();\n        ^~~~~~~~~~\n1 warning generated.\n
    "},{"location":"standardization/cpp20/#p0329r4","title":"\u6307\u793a\u4ed8\u304d\u521d\u671f\u5316\u5b50\u306b\u3088\u308b\u96c6\u6210\u4f53\u306e\u521d\u671f\u5316 (P0329R4)","text":"

    C++20 \u304b\u3089\u3001\u96c6\u6210\u4f53\u306b\u304a\u3044\u3066\u3001\u30e1\u30f3\u30d0\u5909\u6570\u540d\u3092\u6307\u5b9a\u3057\u305f\u521d\u671f\u5316\uff08\u6307\u793a\u4ed8\u304d\u521d\u671f\u5316\u5b50\u3092\u7528\u3044\u305f\u521d\u671f\u5316: \"Designated Initialization\" \uff09\u304c\u3067\u304d\u308b\u3088\u3046\u306b\u306a\u308a\u307e\u3059\u3002C \u8a00\u8a9e (C99) \u306b\u3082\u540c\u69d8\u306e\u6a5f\u80fd\u304c\u3042\u308a\u307e\u3059\u304c\u3001C++20 \u3067\u306f C99 \u306e\u6307\u793a\u4ed8\u304d\u521d\u671f\u5316\u5b50\u3068\u6bd4\u8f03\u3057\u3066\u4ee5\u4e0b\u306e\u3088\u3046\u306a\u5236\u7d04\u304c\u8ffd\u52a0\u3055\u308c\u3066\u3044\u307e\u3059\u3002

    \u307e\u305f\u3001\u521d\u671f\u5316\u5b50\u306e\u8a55\u4fa1\u9806\u5e8f\u304c\u5de6\u304b\u3089\u53f3\u3067\u3042\u308b\u3053\u3068\u304c\u4fdd\u8a3c\u3055\u308c\u307e\u3059\u3002

    #include <string>\n\nstruct Point\n{\n    int x, y;\n};\n\nstruct Item\n{\n    std::string name;\n    int id = -1;\n    Point pos = { -1, -1 };\n};\n\nvoid F(Point) {}\n\nint main()\n{\n    Point p1 = { .x = 10, .y = 20 }; // OK\n    Point p2{ .x = 10, .y = 20 }; // OK\n    Point p3 = { .x = 10 }; // OK: y \u306f 0 \u306b\u521d\u671f\u5316\u3055\u308c\u308b\n    Point p4 = { .y = 20 }; // OK: x \u306f 0 \u306b\u521d\u671f\u5316\u3055\u308c\u308b\n    F({ .x = 10, .y = 20 }); // OK\n\n    Point p4 = { .y = 20, .x = 30 }; // \u30b3\u30f3\u30d1\u30a4\u30eb\u30a8\u30e9\u30fc: (a) \u6307\u793a\u5b50\u306e\u9806\u756a\u304c\u30e1\u30f3\u30d0\u306e\u5ba3\u8a00\u9806\u3068\u7570\u306a\u308b\n    Point p5 = { .x = 20, 40 }; // \u30b3\u30f3\u30d1\u30a4\u30eb\u30a8\u30e9\u30fc: (b) \u6307\u793a\u4ed8\u304d\u521d\u671f\u5316\u5b50\u3068\u901a\u5e38\u306e\u521d\u671f\u5316\u5b50\u306f\u6df7\u5728\u3067\u304d\u306a\u3044\n    Point p6 = { .x = 20, .x = 30, .y = 30 }; // \u30b3\u30f3\u30d1\u30a4\u30eb\u30a8\u30e9\u30fc: (c) \u540c\u4e00\u30e1\u30f3\u30d0\u306e\u6307\u793a\u4ed8\u304d\u521d\u671f\u5316\u5b50\u306f\u8907\u6570\u56de\u767b\u5834\u3067\u304d\u306a\u3044\n\n    Item i1{ .name = \"shield\", .id = 30, .pos = { 5, 2 } }; // OK\n    Item i2{ .id = 0 }; // OK: name \u306f {} \u3067\u521d\u671f\u5316\u3001pos \u306f { -1, -1 } \u3067\u521d\u671f\u5316\n\n    Item i3{ .pos.x = 10, .pos.y = 40 }; // \u30b3\u30f3\u30d1\u30a4\u30eb\u30a8\u30e9\u30fc: (d) \u6307\u793a\u4ed8\u304d\u521d\u671f\u5316\u5b50\u306f\u30cd\u30b9\u30c8\u3067\u304d\u306a\u3044\n\n    int arr[3] = { [1] = 5 }; // \u30b3\u30f3\u30d1\u30a4\u30eb\u30a8\u30e9\u30fc: (e) \u914d\u5217\u306e\u6307\u793a\u4ed8\u304d\u521d\u671f\u5316\u306f\u3067\u304d\u306a\u3044\n}\n

    \u5f93\u6765\u307e\u3067\u306e Point p{}, Item i{} \u306e\u3088\u3046\u306a\u96c6\u6210\u4f53\u521d\u671f\u5316\u3092\u300c\u6307\u793a\u4ed8\u304d\u521d\u671f\u5316\u5b50\u304c 0 \u500b\u306e\u521d\u671f\u5316\u300d\u3068\u8003\u3048\u308b\u3068\u3001\u65b0\u3057\u3044\u6319\u52d5\u3082\u7406\u89e3\u3057\u3084\u3059\u304f\u306a\u308a\u307e\u3059\u3002\u306a\u304a\u3001\u6b21\u306e\u3088\u3046\u306b\u96c6\u6210\u4f53\u3067\u306f\u306a\u3044\u30af\u30e9\u30b9\u306e\u521d\u671f\u5316\u306b\u306f\u3001\u6307\u793a\u4ed8\u304d\u521d\u671f\u5316\u5b50\u306f\u4f7f\u3048\u307e\u305b\u3093\u3002

    #include <string>\n\nstruct Point\n{\n    int x, y;\n    Point() = default;\n    Point(int _x, int _y)\n        : x(_x)\n        , y(_y) {}\n};\n\nint main()\n{\n    // \u30b3\u30f3\u30d1\u30a4\u30eb\u30a8\u30e9\u30fc:\n    // \u30e6\u30fc\u30b6\u5ba3\u8a00\u3055\u308c\u305f\u30b3\u30f3\u30b9\u30c8\u30e9\u30af\u30bf\u3092\u6301\u3064\u305f\u3081\u96c6\u6210\u4f53\u3067\u306f\u306a\u3044\n    // \u96c6\u6210\u4f53\u3067\u306a\u3044\u305f\u3081\u6307\u793a\u4ed8\u304d\u521d\u671f\u5316\u5b50\u3092\u4f7f\u3048\u306a\u3044\n    Point p{ .x = 20, .y = 4 }; \n}\n
    "},{"location":"standardization/cpp20/#_2","title":"\u6a19\u6e96\u30e9\u30a4\u30d6\u30e9\u30ea","text":""},{"location":"standardization/cpp20/#p0457r2","title":"\u6587\u5b57\u5217\u306e\u5148\u982d\u3084\u672b\u5c3e\u304c\u3001\u3042\u308b\u6587\u5b57\u5217\u3068\u4e00\u81f4\u3059\u308b\u304b\u5224\u5b9a (P0457R2)","text":"

    std::basic_string \u3068 std::basic_string_view \u306b\u3001starts_with() \u3068 ends_with() \u30e1\u30f3\u30d0\u95a2\u6570\u304c\u8ffd\u52a0\u3055\u308c\u307e\u3059\u3002

    #include <iostream>\n#include <string_view>\n\nconstexpr bool HasPNGExtension(std::string_view filePath)\n{\n    // \u6587\u5b57\u5217\u304c \".png\" \u3067\u7d42\u308f\u308b\u306a\u3089 true, \u305d\u308c\u4ee5\u5916\u306f false \u3092\u8fd4\u3059\n    return filePath.ends_with(\".png\");\n}\n\nint main()\n{\n    std::cout << std::boolalpha;\n    std::cout << HasPNGExtension(\"picture.png\") << '\\n';\n    std::cout << HasPNGExtension(\"photo.jpg\") << '\\n';\n    std::cout << HasPNGExtension(\"music.mp3\") << '\\n';\n}\n
    true\nfalse\nfalse\n

    "},{"location":"standardization/cpp20/#operatorbasic_istream-chart-chartn-p0487r1","title":"operator>>(basic_istream&, charT*) \u306e\u7b2c\u4e8c\u5f15\u6570\u3092 charT(&)[N] \u306b\u5909\u66f4\u3057\u3066\u5b89\u5168\u306b (P0487R1)","text":"

    C++17 \u307e\u3067\u306e operator>>(basic_istream&, charT*) \u306f\u3001\u95a2\u6570\u306b\u30d0\u30c3\u30d5\u30a1\u306e\u30b5\u30a4\u30ba\u304c\u6e21\u3055\u308c\u306a\u3044\u305f\u3081\u3001\u6b21\u306e\u3088\u3046\u306a\u30d7\u30ed\u30b0\u30e9\u30e0\u3067\u30d0\u30c3\u30d5\u30a1\u30aa\u30fc\u30d0\u30fc\u30d5\u30ed\u30fc\u3078\u306e\u5bfe\u7b56\u304c\u5fc5\u8981\u3067\u3057\u305f\u3002

    #include <iostream>\n#include <iomanip>\n\nint main()\n{\n    char buffer[4];\n\n    // std::cin >> buffer; // \u5371\u967a: \u30d0\u30c3\u30d5\u30a1\u30aa\u30fc\u30d0\u30fc\u30d5\u30ed\u30fc\u306e\u53ef\u80fd\u6027\n\n    std::cin >> std::setw(4) >> buffer; // OK: \u30d0\u30c3\u30d5\u30a1\u30aa\u30fc\u30d0\u30fc\u30d5\u30ed\u30fc\u5bfe\u7b56\n\n    std::cout << buffer;\n}\n
    C++20 \u3067\u306f\u5f15\u6570\u3092\u6b21\u306e\u3088\u3046\u306b\u5909\u66f4\u3057\u3001\u95a2\u6570\u304c\u30d0\u30c3\u30d5\u30a1\u30aa\u30fc\u30d0\u30fc\u30d5\u30ed\u30fc\u306e\u5bfe\u7b56\u3092\u5b9f\u88c5\u3059\u308b\u3088\u3046\u306b\u306a\u308a\u307e\u3059\u3002
    // C++17 \u307e\u3067\ntemplate<class charT, class traits>\nbasic_istream<charT, traits>& operator>>(basic_istream<charT, traits>& in, charT* s);\n\n// C++20 \u304b\u3089\ntemplate<class charT, class traits, size_t N>\nbasic_istream<charT, traits>& operator>>(basic_istream<charT, traits>& in, charT (&s)[N]);\n
    #include <iostream>\n#include <iomanip>\n\nint main()\n{\n    char buffer[4];\n\n    std::cin >> buffer; // OK: C++20 \u3067\u306f\u30d0\u30c3\u30d5\u30a1\u30aa\u30fc\u30d0\u30fc\u30d5\u30ed\u30fc\u3092\u9632\u3052\u308b\n\n    std::cout << buffer;\n}\n
    \u3053\u306e\u5909\u66f4\u306b\u4f34\u3044\u3001C++17 \u307e\u3067\u306f\u6709\u52b9\u3060\u3063\u305f\u6b21\u306e\u3088\u3046\u306a\u30d7\u30ed\u30b0\u30e9\u30e0\u304c\u3001C++20 \u304b\u3089\u30b3\u30f3\u30d1\u30a4\u30eb\u30a8\u30e9\u30fc\u306b\u306a\u308a\u307e\u3059\u3002
    #include <iostream>\n#include <iomanip>\n\nint main()\n{\n    char* p = new char[100];\n    std::cin >> std::setw(100) >> p; // C++20 \u304b\u3089\u306f\u30b3\u30f3\u30d1\u30a4\u30eb\u30a8\u30e9\u30fc\n    std::cout << p;\n}\n

    "},{"location":"standardization/cpp20/#nodiscard-p0600r1","title":"\u623b\u308a\u5024\u306e\u7121\u8996\u304c\u4e0d\u5177\u5408\u3092\u3082\u305f\u3089\u3059\u95a2\u6570\u306b [[nodiscard]] \u3092\u4ed8\u4e0e (P0600R1)","text":"

    C++17 \u3067\u5c0e\u5165\u3055\u308c\u305f [[nodiscard]] \u5c5e\u6027\u3092\u6a19\u6e96\u30e9\u30a4\u30d6\u30e9\u30ea\u3067\u6d3b\u7528\u3059\u308b\u3088\u3046\u306b\u306a\u308a\u307e\u3059\u3002C++20 \u3067\u306f\u4ed8\u4e0e\u57fa\u6e96\u3092\u300c\u623b\u308a\u5024\u306e\u7121\u8996\u304c\u30c8\u30e9\u30d6\u30eb\u3084\u30e1\u30e2\u30ea\u30ea\u30fc\u30af\u306a\u3069\u306e\u91cd\u5927\u306a\u30a8\u30e9\u30fc\u3092\u5f15\u304d\u8d77\u3053\u3059 C++ \u306e\u95a2\u6570\u300d\u3068\u3057\u3001async(), launder(), allocate(), empty(), operator new() \u304c\u5bfe\u8c61\u3068\u306a\u3063\u3066\u3044\u307e\u3059\u3002

    #include <vector>\n#include <future>\n\nint main()\n{\n    std::vector v = { 10, 20, 30 };\n\n    v.empty(); // C++20 \u3067\u306f\u8b66\u544a\n\n    std::async(std::launch::async, [] { return 1; }); // C++20 \u3067\u306f\u8b66\u544a\n}\n
    MSVC \u306e\u6a19\u6e96\u30e9\u30a4\u30d6\u30e9\u30ea\u3067\u306f Visual Studio 2017 15.6 \u4ee5\u964d\u3001\u898f\u683c\u306e\u7bc4\u56f2\u3092\u8d85\u3048\u3066\u3088\u308a\u591a\u304f\u306e\u95a2\u6570\uff082,500 \u500b\u4ee5\u4e0a\uff09\u306b [[nodiscard]] \u5c5e\u6027\u3092\u4f7f\u3063\u3066\u3044\u307e\u3059\u3002\u305d\u306e\u7d50\u679c\u3001Chromium \u306e\u30bd\u30fc\u30b9\u306b\u7121\u610f\u5473\u306a std::move() \u304c\u898b\u3064\u304b\u308b\u306a\u3069\u3001\u65e2\u5b58\u306e\u30b3\u30fc\u30c9\u30d9\u30fc\u30b9\u306e\u30d0\u30b0\u306e\u767a\u898b\u306b\u5f79\u7acb\u3063\u3066\u3044\u307e\u3059\u3002

    "},{"location":"standardization/cpp20/#array-constexpr-p1023r0-p1032r1","title":"<array> \u30d8\u30c3\u30c0\u306e\u3059\u3079\u3066\u306e\u95a2\u6570\u304c constexpr \u306b (P1023R0), (P1032R1)","text":"

    C++17 \u306e <array> \u30d8\u30c3\u30c0\u3067\u306f\u3001\u6bd4\u8f03\u6f14\u7b97\u5b50\u3001swap(), fill() \u4ee5\u5916\u306e\u3059\u3079\u3066\u306e\u95a2\u6570\u304c constexpr \u3067\u3057\u305f\u3002C++20 \u3067\u306f\u3055\u3089\u306b\u3001array \u306e\u6bd4\u8f03\u6f14\u7b97\u306e\u5b9f\u88c5\u306b\u4f7f\u308f\u308c\u3066\u3044\u308b std::equal() \u3068 std::lexicographical_compare() \u304c constexpr \u306b\u306a\u3063\u305f (P0202R3) \u3053\u3068\u306b\u3068\u3082\u306a\u3044\u3001array \u306e\u6bd4\u8f03\u6f14\u7b97\u5b50\u3092 constexpr \u3068\u3057\u3001\u307e\u305f swap() \u3068 fill() \u306b\u3064\u3044\u3066\u3082 constexpr \u306b\u3059\u308b\u3053\u3068\u3092\u6c7a\u3081\u3001array \u30d8\u30c3\u30c0\u306e\u3059\u3079\u3066\u306e\u95a2\u6570\u304c constexpr \u3067\u63d0\u4f9b\u3055\u308c\u307e\u3059\u3002

    "},{"location":"standardization/cpp20/#chrono-zero-min-max-noexcept-p0972r0","title":"<chrono> \u30d8\u30c3\u30c0\u306e zero(), min(), max() \u95a2\u6570\u304c noexcept \u306b (P0972R0)","text":"

    std::chrono::duration_values, std::chrono::duration, std::chrono::time_point \u306a\u3069\u306e zero(), min(), max() \u95a2\u6570\u306b noexcept \u304c\u4ed8\u304d\u307e\u3059\u3002

    "},{"location":"standardization/cpp20/#pointer_traits-constexpr-p1006r1","title":"pointer_traits \u304c constexpr \u306b (P1006R1)","text":"

    std::vector \u3092 constexpr \u306b\u3059\u308b\u306e\u306b\u5fc5\u8981\u306a\u305f\u3081\u3001std::pointer_traits::pointer_to() \u95a2\u6570\u304c constrexpr \u306b\u306a\u308a\u307e\u3059\u3002

    "},{"location":"standardization/cpp20/#assume_aligned-p1007r3","title":"\u30dd\u30a4\u30f3\u30bf\u306e\u30a2\u30e9\u30a4\u30e1\u30f3\u30c8\u3092\u6700\u9069\u5316\u30d2\u30f3\u30c8\u3068\u3057\u3066\u30b3\u30f3\u30d1\u30a4\u30e9\u306b\u4f1d\u3048\u308b assume_aligned() \u95a2\u6570 (P1007R3)","text":"

    \u30c7\u30fc\u30bf\u306e\u30a2\u30c9\u30ec\u30b9\u304c 16 \u30d0\u30a4\u30c8\u306a\u3069\u306e\u30b5\u30a4\u30ba\u306b\u30a2\u30e9\u30a4\u30e1\u30f3\u30c8\u3055\u308c\u3066\u3044\u308b\u5834\u5408\u3001\u30b3\u30f3\u30d1\u30a4\u30e9\u304c SIMD \u3092\u4f7f\u3063\u305f\u6700\u9069\u306a\u30b3\u30fc\u30c9\u3092\u751f\u6210\u3067\u304d\u308b\u53ef\u80fd\u6027\u304c\u3042\u308a\u307e\u3059\u3002\u3042\u308b\u30dd\u30a4\u30f3\u30bf\u306e\u6307\u3059\u30c7\u30fc\u30bf\u304c\u30a2\u30e9\u30a4\u30e1\u30f3\u30c8\u3055\u308c\u3066\u3044\u308b\u3053\u3068\u3092\u30b3\u30f3\u30d1\u30a4\u30e9\u306b\u4f1d\u3048\u308b\u65b9\u6cd5\u3068\u3057\u3066\u3001GCC \u3084 Clang \u3067\u306f __builtin_assume_aligned() \u3084 __attribute__((assume_aligned(alignment))), ICC \u3067\u306f __assume_aligned() \u306a\u3069\u306e\u72ec\u81ea\u62e1\u5f35\u304c\u3042\u308a\u307e\u3059\u304c\u3001\u6a19\u6e96\u5316\u3055\u308c\u305f\u65b9\u6cd5\u306f\u3042\u308a\u307e\u305b\u3093\u3067\u3057\u305f\u3002C++20 \u3067\u306f\u3001\u3053\u308c\u3089\u306e\u5dee\u7570\u3092\u5438\u53ce\u3059\u308b\u6b21\u306e\u3088\u3046\u306a\u95a2\u6570\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8\u304c\u63d0\u4f9b\u3055\u308c\u307e\u3059\u3002

    template <size_t N, class T>\n[[nodiscard]] constexpr T* assume_aligned(T* ptr);\n
    \u5b9f\u969b\u306b\u306f\u6b21\u306e\u3088\u3046\u306b\u4f7f\u3044\u307e\u3059\u3002
    void Multiply(float* x, size_t size, float factor)\n{\n    float* ax = std::assume_aligned<64>(x); // x \u304c 64 \u30d0\u30a4\u30c8\u30a2\u30e9\u30a4\u30e1\u30f3\u30c8\u3067\u3042\u308b\u3053\u3068\u3092\u4f1d\u3048\u308b\n\n    for (size_t i = 0; i < size; ++i) // \u30eb\u30fc\u30d7\u304c\u9069\u5b9c\u6700\u9069\u5316\u3055\u308c\u308b\n    {\n        ax[i] *= factor;\n    }\n}\n

    "},{"location":"standardization/cpp20/#make-p1020r1-p1973r1","title":"\u30b9\u30de\u30fc\u30c8\u30dd\u30a4\u30f3\u30bf\u306e\u4f5c\u6210\u6642\u306b\u5024\u3092\u30c7\u30d5\u30a9\u30eb\u30c8\u521d\u671f\u5316\u3059\u308b make \u95a2\u6570\u3092\u8ffd\u52a0 (P1020R1), (P1973R1)","text":"

    \u5b9f\u884c\u6642\u6027\u80fd\u306e\u305f\u3081\u306b\u3001float \u3084 unsigned char \u306a\u3069\u7d44\u307f\u8fbc\u307f\u578b\u306e\u914d\u5217\u306e\u5024\u3092\u30c7\u30d5\u30a9\u30eb\u30c8\u521d\u671f\u5316\u3055\u305b\u305f\u3044\uff08\u30bc\u30ed\u521d\u671f\u5316\u3057\u306a\u3044\uff09\u30b1\u30fc\u30b9\u304c\u3042\u308a\u307e\u3059\u3002\u3057\u304b\u3057\u3001make_unique \u3084 make_shared, allocate_shared \u3067\u30b9\u30de\u30fc\u30c8\u30dd\u30a4\u30f3\u30bf\u3092\u4f5c\u6210\u3057\u305f\u5834\u5408\u306b\u306f\u5024\u521d\u671f\u5316\u304c\u5b9f\u884c\u3055\u308c\u307e\u3059\u3002C++20 \u3067\u306f\u3001\u5024\u521d\u671f\u5316\u3092\u305b\u305a\u306b\u30c7\u30d5\u30a9\u30eb\u30c8\u521d\u671f\u5316\u3067\u30b9\u30de\u30fc\u30c8\u30dd\u30a4\u30f3\u30bf\u3092\u4f5c\u6210\u3059\u308b\u95a2\u6570 make_unique_for_overwrite, make_shared_for_overwrite, allocate_shared_for_overwrite \u304c\u8ffd\u52a0\u3055\u308c\u307e\u3057\u305f\u3002

    #include <iostream>\n#include <memory>\n\n// \u672a\u521d\u671f\u5316\u306e\u5909\u6570\u3092\u4f7f\u3046\u5b9f\u9a13\u7684\u306a\u30b3\u30fc\u30c9\nint main()\n{\n    float v[4]; // \u30c7\u30d5\u30a9\u30eb\u30c8\u521d\u671f\u5316\n\n    for (int i = 0; i < 4; ++i)\n    {\n        std::cout << v[i] << '\\n';\n    }\n\n    auto pv = std::make_unique<float[]>(4); // \u5024\u521d\u671f\u5316 (0 \u521d\u671f\u5316) \n\n    for (int i = 0; i < 4; ++i)\n    {\n        std::cout << pv[i] << '\\n';\n    }\n\n    auto pd = std::make_unique_for_overwrite<float[]>(4); // \u30c7\u30d5\u30a9\u30eb\u30c8\u521d\u671f\u5316\n\n    for (int i = 0; i < 4; ++i)\n    {\n        std::cout << pd[i] << '\\n';\n    }\n}\n
    \u51fa\u529b\u4f8b
    2.20325e-38\n4.11052e+32\n1.3013e-45\n2.48626e-38\n0\n0\n0\n0\n2.30415e-38\n2.51341e-38\n4.63281e+30\n2.32703e+17\n

    "},{"location":"standardization/cpp20/#key_type-p0919r3-p1690r1","title":"\u975e\u9806\u5e8f\u9023\u60f3\u30b3\u30f3\u30c6\u30ca\u306e\u30eb\u30c3\u30af\u30a2\u30c3\u30d7\u64cd\u4f5c\u3067\u3001key_type \u3068\u6bd4\u8f03\u53ef\u80fd\u306a\u578b\u3092\u5909\u63db\u305b\u305a\u306b\u4f7f\u3048\u308b\u3088\u3046\u306b (P0919R3), (P1690R1)","text":"

    C++17 \u307e\u3067\u306e unorderd_map \u3084 unordered_set \u306a\u3069\u975e\u9806\u5e8f\u9023\u60f3\u30b3\u30f3\u30c6\u30ca\u3067\u306f\u3001find(), count(), equal_range() \u306a\u3069\u30eb\u30c3\u30af\u30a2\u30c3\u30d7\u3092\u884c\u3046\u30e1\u30f3\u30d0\u95a2\u6570\u306f\u5f15\u6570\u306b key_type \u3092\u3068\u308a\u3001\u4f8b\u3048\u3070\u6b21\u306e\u3088\u3046\u306a\u30b1\u30fc\u30b9\u3067 std::string \u578b\u306e\u4e00\u6642\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u304c\u4f5c\u6210\u3055\u308c\u3066\u975e\u52b9\u7387\u3067\u3057\u305f\u3002

    #include <string>\n#include <unordered_map>\n\nint main()\n{\n    std::unordered_map<std::string, int> table = { /* ... */ };\n\n    auto it = table.find(\"abc\"); // std::string \u578b\u306e\u4e00\u6642\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u304c\u4f5c\u6210\u3055\u308c\u308b\n}\n

    C++20 \u3067\u306f\u3001\u975e\u9806\u5e8f\u9023\u60f3\u30b3\u30f3\u30c6\u30ca\u306e\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8\u30d1\u30e9\u30e1\u30fc\u30bf\u306b\u3064\u3044\u3066 Hash::is_transparent \u3068 Pred::is_transparent \u304c\u5b58\u5728\u3059\u308b\u3068\u304d\u306b\u3001key_type \u4ee5\u5916\u306e\u578b\u3092\u5f15\u6570\u306b\u3068\u308b\u30e1\u30f3\u30d0\u95a2\u6570\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8\u306e\u30aa\u30fc\u30d0\u30fc\u30ed\u30fc\u30c9\u304c\u4f7f\u7528\u53ef\u80fd\u306b\u306a\u308a\u3001\u4e00\u6642\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u306e\u4f5c\u6210\u3092\u56de\u907f\u3067\u304d\u308b\u3088\u3046\u306b\u306a\u308a\u307e\u3059\u3002

    #include <string>\n#include <string_view>\n#include <unordered_map>\n\nstruct string_compare\n{\n    using is_transparent = void;\n    bool operator()(std::string_view key, std::string_view txt) const { return key == txt; }\n};\n\nstruct string_hash\n{\n    using is_transparent = void;\n    using transparent_key_equal = string_compare;\n    using hash_type = std::hash<std::string_view>; // helper local type\n    size_t operator()(std::string_view txt) const { return hash_type{}(txt); }\n    size_t operator()(const std::string& txt) const { return hash_type{}(txt); }\n    size_t operator()(const char* txt) const { return hash_type{}(txt); }\n};\n\nint main()\n{\n    using namespace std::literals;\n\n    std::unordered_map<std::string, int, string_hash, string_compare> table = { /* ... */ };\n\n    auto it1 = table.find(\"abc\"); // std::string \u578b\u306e\u4e00\u6642\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u306f\u4f5c\u6210\u3055\u308c\u306a\u3044\n\n    auto it2 = table.find(\"abc\"sv); // std::string \u578b\u306e\u4e00\u6642\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u306f\u4f5c\u6210\u3055\u308c\u306a\u3044\n}\n
    "},{"location":"standardization/cpp20/#2-stdmidpoint-p0811r3","title":"2 \u3064\u306e\u5024\u306e\u4e2d\u70b9\u3092\u8a08\u7b97\u3059\u308b std::midpoint() \u95a2\u6570 (P0811R3)","text":"

    2 \u3064\u306e\u5024 a, b \u306e\u4e2d\u70b9\u3092\u8a08\u7b97\u3059\u308b\u969b\u306b\u3001\u5358\u7d14\u306a (a + b) / 2 \u3068\u3044\u3046\u5f0f\u3067\u306f\u30aa\u30fc\u30d0\u30fc\u30d5\u30ed\u30fc\u3092\u8d77\u3053\u3059\u53ef\u80fd\u6027\u304c\u3042\u308a\u307e\u3059\u3002C++20 \u3067\u8ffd\u52a0\u3055\u308c\u308b std::midpoint() \u95a2\u6570\u3067\u306f\u3001\u6574\u6570\u306b\u5bfe\u3057\u3066

    constexpr Integer midpoint(Integer a, Integer b) noexcept\n{\n    using U = make_unsigned_t<Integer>;\n    return a>b ? a-(U(a)-b)/2 : a+(U(b)-a)/2;\n}\n
    \u306e\u3088\u3046\u306a\u5b9f\u88c5\u304c\u4f7f\u308f\u308c\u3001\u30aa\u30fc\u30d0\u30fc\u30d5\u30ed\u30fc\u3092\u56de\u907f\u3067\u304d\u307e\u3059\u3002(a + b) \u304c\u5947\u6570\u306b\u306a\u308b\u30b1\u30fc\u30b9\u306e\u7d50\u679c\u306f a \u306e\u65b9\u5411\u306b\u4e38\u3081\u3089\u308c\u307e\u3059\u3002 \u6d6e\u52d5\u5c0f\u6570\u70b9\u6570\u306b\u5bfe\u3057\u3066\u306f\u6b21\u306e\u3088\u3046\u306a\u5b9f\u88c5\u304c\u4f7f\u308f\u308c\u307e\u3059\u3002
    Float midpoint(Float a, Float b)\n{\n    return isnormal(a) && isnormal(b) ? a/2+b/2 : (a+b)/2;\n}\n
    #include <iostream>\n#include <numeric>\n\nint main()\n{\n    std::cout << (2'000'000'000 + 1'000'000'000) / 2 << '\\n'; // \u30aa\u30fc\u30d0\u30fc\u30d5\u30ed\u30fc\n\n    std::cout << std::midpoint(2'000'000'000, 1'000'000'000) << '\\n'; // 1500000000\n\n    std::cout << std::midpoint(1, 4) << '\\n'; // 2\n\n    std::cout << std::midpoint(4, 1) << '\\n'; // 3\n}\n

    "},{"location":"standardization/cpp20/#2-stdlerp-p0811r3","title":"2 \u3064\u306e\u5024\u306e\u7dda\u5f62\u88dc\u9593\u3092\u8a08\u7b97\u3059\u308b std::lerp() \u95a2\u6570 (P0811R3)","text":"

    2 \u70b9 a, b \u306e\u9593\u3092\u30d1\u30e9\u30e1\u30fc\u30bf t \u306b\u3088\u3063\u3066\u7dda\u5f62\u88dc\u9593\u3059\u308b\u95a2\u6570\u304c\u63d0\u4f9b\u3055\u308c\u307e\u3059\u3002\u8a08\u7b97\u7d50\u679c r \u306f a + t * (b - a) \u306b\u3088\u3063\u3066\u6c42\u3081\u3089\u308c\u307e\u3059\u304c\u3001\u5b9f\u88c5\u306b\u3088\u308a isfinite(a) && isfinite(b) \u306e\u3068\u304d

    \u307e\u305f\u3001cmp(lerp(a,b,t2), lerp(a,b,t1)) * cmp(t2,t1) * cmp(b,a) >= 0 (cmp \u306f -1, 0, 1 \u3092\u8fd4\u3059\u4e09\u65b9\u6bd4\u8f03\u95a2\u6570\u3068\u3059\u308b) \u3067\u3042\u308b\u3053\u3068\u304c\u4fdd\u8a3c\u3055\u308c\u307e\u3059\u3002

    #include <iostream>\n#include <numeric>\n\nint main()\n{\n    std::cout << std::lerp(0.0, 10.0, 0.0) << '\\n'; // 0\n\n    std::cout << std::lerp(0.0, 10.0, 0.3) << '\\n'; // 3\n\n    std::cout << std::lerp(0.0, 10.0, 1.0) << '\\n'; // 10\n\n    std::cout << std::lerp(0.0, 10.0, 1.2) << '\\n'; // 12\n}\n

    "},{"location":"standardization/cpp20/#version-p0754r2","title":"\u5b9f\u88c5\u56fa\u6709\u306e\u60c5\u5831\u3092\u307e\u3068\u3081\u308b <version> \u30d8\u30c3\u30c0\u3092\u8ffd\u52a0 (P0754R2)","text":"

    __cpp_lib_byte, __cpp_lib_void_t \u306e\u3088\u3046\u306a\u6a19\u6e96\u30e9\u30a4\u30d6\u30e9\u30ea\u306e\u6a5f\u80fd\u30c6\u30b9\u30c8\u30de\u30af\u30ed\u3001\u305d\u306e\u4ed6\u30e9\u30a4\u30d6\u30e9\u30ea\u306e\u30d0\u30fc\u30b8\u30e7\u30f3\u3084\u5b9f\u88c5\u56fa\u6709\u306e\u60c5\u5831\u3092\u307e\u3068\u3081\u308b\u76ee\u7684\u306e <version> \u30d8\u30c3\u30c0\u304c\u8ffd\u52a0\u3055\u308c\u307e\u3057\u305f\u3002 \u4f8b\u3048\u3070 C++20 \u4ee5\u524d\u306e MSVC \u306e\u6a19\u6e96\u30e9\u30a4\u30d6\u30e9\u30ea\u3067\u306f\u3001<yvals_core.h> \u3068\u3044\u3046\u72ec\u81ea\u30d8\u30c3\u30c0\u306b\u6a19\u6e96\u30e9\u30a4\u30d6\u30e9\u30ea\u306e\u6a5f\u80fd\u30c6\u30b9\u30c8\u30de\u30af\u30ed\u304c\u307e\u3068\u3081\u3089\u308c\u3066\u3044\u307e\u3057\u305f\u304c\u3001C++20 \u4ee5\u964d\u3067\u306f\u3042\u3089\u3086\u308b\u5b9f\u88c5\u306b\u304a\u3044\u3066\u3001<version> \u30d8\u30c3\u30c0\u3092\u898b\u308b\u3053\u3068\u3067\u3001\u3053\u3046\u3057\u305f\u5b9f\u88c5\u56fa\u6709\u306e\u60c5\u5831\u306b\u30a2\u30af\u30bb\u30b9\u3067\u304d\u308b\u305f\u3081\u5229\u4fbf\u6027\u304c\u9ad8\u307e\u308a\u307e\u3059\u3002

    "},{"location":"standardization/cpp20/#is_nothrow_convertible-p0758r1","title":"\u4f8b\u5916\u3092\u6295\u3052\u306a\u3044\u6697\u9ed9\u306e\u5909\u63db\u304c\u53ef\u80fd\u304b\u8abf\u3079\u308b is_nothrow_convertible (P0758R1)","text":"

    \u578b From \u304b\u3089\u578b To \u3078\u306e\u6697\u9ed9\u306e\u5909\u63db\u304c\u53ef\u80fd\u3067\u3042\u308b\u304b\u3092\u8abf\u3079\u308b\u578b\u7279\u6027\u30af\u30e9\u30b9 std::is_convertible<class From, class To> \u304c C++11 \u304b\u3089\u5c0e\u5165\u3055\u308c\u307e\u3057\u305f\u304c\u3001\u305d\u306e\u5909\u63db\u304c noexcept \u3067\u3082\u3042\u308b\u304b\u3092\u8abf\u3079\u3089\u308c\u308b\u30d0\u30fc\u30b8\u30e7\u30f3\u306f\u5b9f\u88c5\u3055\u308c\u3066\u3044\u307e\u305b\u3093\u3067\u3057\u305f\u3002 \u3053\u306e\u3053\u3068\u304c\u539f\u56e0\u3067\u3001std::decay_copy \u306e\u63d0\u6848 (N3255) \u306b\u304a\u3044\u3066\u3001\u9069\u5207\u306a noexcept \u4f8b\u5916\u4ed5\u69d8\u3092\u79fb\u690d\u6027\u306e\u3042\u308b\u65b9\u6cd5\u3067\u5b9a\u7fa9\u3067\u304d\u306a\u3044\u554f\u984c (LWG 2040) \u304c\u6307\u6458\u3055\u308c\u3066\u3044\u307e\u3057\u305f\u3002

    template <class T> \ntypename decay<T>::type decay_copy(T&& v) noexcept(??? /* is_nothrow_convertible<T, T>::value */);\n
    C++20 \u304b\u3089\u306f\u3001noexcept \u306a\u6697\u9ed9\u306e\u5909\u63db\u304c\u53ef\u80fd\u3067\u3042\u308b\u3053\u3068\u3092\u8abf\u3079\u308b\u65b0\u3057\u3044\u578b\u7279\u6027\u30af\u30e9\u30b9 std::is_nothrow_convertible<class From, class To> \u304c\u5b9f\u88c5\u3055\u308c\u308b\u3053\u3068\u3067\u554f\u984c\u3092\u89e3\u6d88\u3067\u304d\u307e\u3059\u3002 \u65e2\u5b58\u306e\u6a19\u6e96\u30e9\u30a4\u30d6\u30e9\u30ea\u95a2\u6570\u306b\u304a\u3044\u3066\u3082\u3001std::basic_string \u306e\u30e1\u30f3\u30d0\u95a2\u6570\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8\u306b\u3001\u3088\u308a\u9069\u5207\u306a noexcept \u4f8b\u5916\u4ed5\u69d8\u3092\u5b9a\u7fa9\u3059\u308b\u305f\u3081\u306b\u6d3b\u7528\u3055\u308c\u307e\u3059\u3002

    template <class T>\nsize_type find(const T& t, size_type pos = 0) const noexcept(is_nothrow_convertible_v<const T&, basic_string_view<CharT, Traits>>);\n
    "},{"location":"standardization/cpp20/#stdto_address-p0653r2","title":"\u30dd\u30a4\u30f3\u30bf\u30e9\u30a4\u30af\u306a\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u304b\u3089\u30a2\u30c9\u30ec\u30b9\u3092\u53d6\u5f97\u3059\u308b std::to_address() \u95a2\u6570 (P0653R2)","text":"

    \u30dd\u30a4\u30f3\u30bf\u30e9\u30a4\u30af\u306a\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u3092\u5f15\u6570\u306b\u3068\u308a\u3001\u305d\u308c\u304c\u8868\u3059\u306e\u3068\u540c\u3058\u30a2\u30c9\u30ec\u30b9\u3092\u751f\u30dd\u30a4\u30f3\u30bf\u3067\u8fd4\u3059\u95a2\u6570 std::to_address(p) \u304c\u8ffd\u52a0\u3055\u308c\u307e\u3059\u3002\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u304c\u30dd\u30a4\u30f3\u30bf\u578b\u306e\u5834\u5408\u306f\u305d\u306e\u5024\u3092\u8fd4\u3057\u3001\u305d\u308c\u4ee5\u5916\u306e\u5834\u5408\u3001std::pointer_traits<Ptr>::to_address(p) \u306e\u7279\u6b8a\u5316\u304c\u5b9a\u7fa9\u3055\u308c\u3066\u3044\u3066\u4f7f\u3048\u308c\u3070\u305d\u306e\u623b\u308a\u5024\u3092\u3001\u305d\u3046\u3067\u306a\u3044\u5834\u5408\u306f std::to_address(p.operator->()) \u306e\u623b\u308a\u5024\u3092\u8fd4\u3057\u307e\u3059\u3002

    "},{"location":"standardization/cpp20/#complex-constexpr-p0415r1","title":"<complex> \u30d8\u30c3\u30c0\u306e\u95a2\u6570\u306e constexpr \u5bfe\u5fdc\u3092\u5f37\u5316 (P0415R1)","text":"

    <complex> \u30d8\u30c3\u30c0\u304c\u63d0\u4f9b\u3059\u308b\u95a2\u6570\u306e\u3046\u3061\u3001\u8907\u7d20\u6570\u306e\u56db\u5247\u6f14\u7b97\u3001\u30ce\u30eb\u30e0\u306e\u53d6\u5f97\u3001\u5171\u5f79\u8907\u7d20\u6570\u306e\u53d6\u5f97\u306a\u3069\u3001constexpr \u975e\u5bfe\u5fdc\u306e\u6570\u5b66\u95a2\u6570 (sqrt \u306a\u3069) \u3092\u4f7f\u308f\u305a\u306b\u5b9f\u88c5\u3067\u304d\u308b\u3082\u306e\u304c constexpr \u5316\u3055\u308c\u307e\u3059\u3002

    "},{"location":"standardization/cpp20/#stdis_constant_evaluated-p0595r2","title":"\u30b3\u30f3\u30d1\u30a4\u30eb\u6642\u8a55\u4fa1\u306e\u6587\u8108\u304b\u5b9f\u884c\u6642\u8a55\u4fa1\u306e\u6587\u8108\u304b\u3092\u5224\u5225\u3067\u304d\u308b std::is_constant_evaluated() \u95a2\u6570 (P0595R2)","text":"

    C++17 \u307e\u3067\u306f\u3001\u5b9f\u884c\u3059\u308b\u30b3\u30fc\u30c9\u3092\u3001\u30b3\u30f3\u30d1\u30a4\u30eb\u6642\u8a55\u4fa1\u304b\u5b9f\u884c\u6642\u8a55\u4fa1\u304b\u306b\u5fdc\u3058\u3066\u4f7f\u3044\u5206\u3051\u308b\u65b9\u6cd5\u306f\u3042\u308a\u307e\u305b\u3093\u3067\u3057\u305f\u3002C++20 \u3067\u306f\u3001\u30b3\u30f3\u30d1\u30a4\u30eb\u6642\u8a55\u4fa1\u3055\u308c\u3066\u3044\u308b\u6587\u8108\u3067\u306f true \u3092\u3001\u305d\u308c\u4ee5\u5916\u306e\u5834\u5408\u3067\u306f false \u3092\u8fd4\u3059 std::is_constant_evaluated() \u95a2\u6570\u304c <type_traits> \u30d8\u30c3\u30c0\u306b\u8ffd\u52a0\u3055\u308c\u307e\u3059\u3002\u4f8b\u3048\u3070\u6a19\u6e96\u30e9\u30a4\u30d6\u30e9\u30ea\u3067 constexpr \u5bfe\u5fdc\u3057\u3066\u3044\u306a\u3044\u3088\u3046\u306a\u6570\u5b66\u95a2\u6570\u3092\u63d0\u4f9b\u3059\u308b\u969b\u3001\u30b3\u30f3\u30d1\u30a4\u30eb\u6642\u8a55\u4fa1\u3067\u306f constexpr \u7248\u306e\u5b9f\u88c5\u3092\u3001\u5b9f\u884c\u6642\u306b\u306f\u975e constexpr \u306e\u6a19\u6e96\u30e9\u30a4\u30d6\u30e9\u30ea\u306e\u5b9f\u88c5\u3092\u63d0\u4f9b\u3059\u308b\u3088\u3046\u9078\u629e\u3055\u305b\u308b\u3053\u3068\u304c\u3067\u304d\u307e\u3059\u3002\u306a\u304a\u3001std::is_constant_evaluated() \u3092 if constexpr \u306e ( ) \u5185\u3084 static_assert \u5185\u3067\u4f7f\u3046\u3068\u5e38\u306b true \u306b\u8a55\u4fa1\u3055\u308c\u3066\u3057\u307e\u3046\u306e\u3067\u6ce8\u610f\u304c\u5fc5\u8981\u3067\u3059\u3002\u57fa\u672c\u7684\u306b\u306f if (std::is_constant_evaluated()) \u3068\u66f8\u304d\u307e\u3059\u3002

    #include <cmath>\n#include <type_traits>\n#include <iostream>\n#include <iomanip>\n\nconstexpr float Sin_impl(float x2, int i, int k, float xn, long long nf)\n{\n    return (i > 10) ? 0.0f : (k * xn / nf + Sin_impl(x2, i + 2, -k, xn * x2, nf * (i + 1) * (i + 2)));\n}\n\nconstexpr float Sin(float x)\n{\n    if (std::is_constant_evaluated())\n    {\n        return Sin_impl(x * x, 1, 1, x, 1);\n    }\n    else\n    {\n        return std::sin(x);\n    }\n}\n\nint main()\n{\n    constexpr float Pi = 3.14159265f;\n    constexpr float theta = Pi / 4.0;\n\n    constexpr float x1 = Sin(theta); // \u30b3\u30f3\u30d1\u30a4\u30eb\u6642\u8a08\u7b97    \n    float x2 = Sin(theta);  // \u5b9f\u884c\u6642\u8a08\u7b97\n\n    std::cout << std::setprecision(16);\n    std::cout << x1 << '\\n';\n    std::cout << x2 << '\\n';\n}\n
    0.7071068286895752\n0.7071067690849304\n

    "},{"location":"standardization/cpp20/#p0020r6","title":"\u6d6e\u52d5\u5c0f\u6570\u70b9\u6570\u578b\u306e\u30a2\u30c8\u30df\u30c3\u30af\u64cd\u4f5c\u3092\u62e1\u5f35 (P0020R6)","text":"

    std::atomic<T> \u306e float, double, long double \u578b\u306e\u7279\u6b8a\u5316\u306b\u3001\u30e1\u30f3\u30d0\u95a2\u6570 fetch_add(), fetch_sub(), operator+=(), operator-=() \u304c\u8ffd\u52a0\u3055\u308c\u307e\u3059\u3002

    "},{"location":"standardization/cpp20/#stdmemory_order-enum-class-p0439r0","title":"std::memory_order \u3092 enum class \u306b\u5909\u66f4 (P0439R0)","text":"

    C++17 \u307e\u3067 enum \u3067\u5b9a\u7fa9\u3055\u308c\u3066\u3044\u305f std::memory_order \u3092\u3001\u30e2\u30c0\u30f3\u306a C++ \u6587\u6cd5\u3068\u578b\u5b89\u5168\u306e\u305f\u3081\u306b\u3001enum class \u3067\u5b9a\u7fa9\u3059\u308b\u4ed5\u69d8\u306b\u5909\u66f4\u3055\u308c\u307e\u3059\u3002\u3053\u308c\u307e\u3067\u306e\u8868\u8a18\u306f\u5b9a\u6570\u3067\u63d0\u4f9b\u3055\u308c\u308b\u3088\u3046\u306b\u306a\u308b\u305f\u3081\u3001\u65e2\u5b58\u306e\u30bd\u30fc\u30b9\u30b3\u30fc\u30c9\u306f\u5f71\u97ff\u3092\u53d7\u3051\u307e\u305b\u3093\u3002\u307e\u305f\u3001\u30d0\u30a4\u30ca\u30ea\u4e92\u63db\u6027\u306e\u305f\u3081\u306b\u3001enum class \u306e\u57fa\u5e95\u578b\u306e\u9078\u629e\u306f\u5b9f\u88c5\u306b\u4efb\u305b\u3089\u308c\u3066\u3044\u307e\u3059\u3002

    C++17C++20
    namespace std\n{\n    typedef enum memory_order\n    {\n        memory_order_relaxed,\n        memory_order_consume,\n        memory_order_acquire,\n        memory_order_release,\n        memory_order_acq_rel,\n        memory_order_seq_cst\n    } memory_order;\n}\n
    namespace std\n{\n    enum class memory_order /* : unspecified */\n    {\n        relaxed,\n        consume,\n        acquire,\n        release,\n        acq_rel,\n        seq_cst\n    };\n\n    inline constexpr memory_order memory_order_relaxed = memory_order::relaxed;\n    inline constexpr memory_order memory_order_consume = memory_order::consume;\n    inline constexpr memory_order memory_order_acquire = memory_order::acquire;\n    inline constexpr memory_order memory_order_release = memory_order::release;\n    inline constexpr memory_order memory_order_acq_rel = memory_order::acq_rel;\n    inline constexpr memory_order memory_order_seq_cst = memory_order::seq_cst;\n}\n
    "},{"location":"standardization/cpp20/#hash-p0809r0","title":"Hash \u304c\u540c\u4e00\u306e\u6319\u52d5\u3092\u3057\u306a\u3044\u975e\u9806\u5e8f\u9023\u60f3\u30b3\u30f3\u30c6\u30ca\u3069\u3046\u3057\u306e\u6bd4\u8f03\u304c\u53ef\u80fd\u306b (P0809R0)","text":"

    C++17 \u307e\u3067\u306f\u3001\u975e\u9806\u5e8f\u9023\u60f3\u30b3\u30f3\u30c6\u30ca\u306e operator==, operator!= \u306b\u3064\u3044\u3066\u3001\u300c\u4e21\u8005\u306e Hash \u3068 Pred \u304c\u305d\u308c\u305e\u308c\u540c\u4e00\u306e\u6319\u52d5\u3092\u3057\u306a\u3044\u5834\u5408\u306f\u672a\u5b9a\u7fa9\u52d5\u4f5c\u300d\u3068\u898f\u683c\u306b\u8a18\u3055\u308c\u3066\u3044\u307e\u3057\u305f\u3002\u3057\u304b\u3057\u3001\u30e9\u30f3\u30c0\u30e0\u306a\u30bd\u30eb\u30c8\u3092\u4f7f\u3046\u30cf\u30c3\u30b7\u30e5\u95a2\u6570\u3092\u6301\u3064\u30b3\u30f3\u30c6\u30ca\u540c\u58eb\u306e\u6bd4\u8f03\u3082\u30e6\u30fc\u30b9\u30b1\u30fc\u30b9\u3068\u3057\u3066\u60f3\u5b9a\u3055\u308c\u3001\u307e\u305f\u3001\u5bfe\u5fdc\u3059\u308b\u305f\u3081\u306e\u5b9f\u88c5\u3082\u96e3\u3057\u304f\u306a\u304b\u3063\u305f\u3053\u3068\u304b\u3089\u3001C++20 \u304b\u3089\u306f\u3053\u306e\u3046\u3061 Hash \u306b\u95a2\u3059\u308b\u8a18\u8ff0\u304c\u524a\u9664\u3055\u308c\u307e\u3057\u305f\u3002

    #include <iostream>\n#include <unordered_map>\n#include <random>\n#include <string>\n\ntemplate <class Type>\nstruct RandomizedHash\n{\n    size_t rnd;\n\n    RandomizedHash()\n    {\n        std::random_device rd;\n        rnd = std::uniform_int_distribution<size_t>{}(rd);\n    }\n\n    size_t operator()(const Type& s) const\n    {\n        return (std::hash<Type>{}(s) ^ rnd);\n    }\n};\n\nint main()\n{\n    std::unordered_map<std::string, int, RandomizedHash<std::string>> u1 =\n    {\n        { \"One\", 1 }, { \"Two\", 2 }, { \"Three\", 3 },\n    };\n\n    std::unordered_map<std::string, int, RandomizedHash<std::string>> u2 =\n    {\n        { \"One\", 1 }, { \"Two\", 2 }, { \"Three\", 3 },\n    };\n\n    // \u305d\u308c\u305e\u308c\u7570\u306a\u308b\u30cf\u30c3\u30b7\u30e5\u5024\u3092\u8fd4\u3059\n    const std::string s = \"abcde\";\n    std::cout << \"u1: \" << u1.hash_function()(s) << '\\n';\n    std::cout << \"u2: \" << u2.hash_function()(s) << '\\n';\n\n    std::cout << std::boolalpha;\n\n    // C++17 \u307e\u3067\u306f\u672a\u5b9a\u7fa9\u52d5\u4f5c\u3001C++20 \u304b\u3089 OK\n    std::cout << (u1 == u2) << '\\n';\n}\n
    "},{"location":"standardization/cpp20/#p0463r1","title":"\u5b9f\u884c\u74b0\u5883\u306e\u30a8\u30f3\u30c7\u30a3\u30a2\u30f3\u3092\u5224\u5225\u3059\u308b\u305f\u3081\u306e\u5217\u6319\u5b9a\u6570\u3092\u8ffd\u52a0 (P0463R1)","text":"

    \u3053\u308c\u307e\u3067\u306e C++ \u30d7\u30ed\u30b0\u30e9\u30e0\u3067\u306f\u3001\u30bf\u30fc\u30b2\u30c3\u30c8\u30a2\u30fc\u30ad\u30c6\u30af\u30c1\u30e3\u306e\u30d0\u30a4\u30c8\u30aa\u30fc\u30c0\u3092\u5224\u5225\u3059\u308b\u969b\u306b\u30c8\u30ea\u30c3\u30ad\u30fc\u306a\u30b3\u30fc\u30c9\u3092\u66f8\u304f\u5fc5\u8981\u304c\u3042\u308a\u307e\u3057\u305f\u3002C++20 \u304b\u3089\u306f\u3001\u30ea\u30c8\u30eb\u30a8\u30f3\u30c7\u30a3\u30a2\u30f3\u3092\u8868\u3059 endian::little, \u30d3\u30c3\u30b0\u30a8\u30f3\u30c7\u30a3\u30a2\u30f3\u3092\u8868\u3059 endian::big, \u5b9f\u884c\u74b0\u5883\u306e\u30a8\u30f3\u30c7\u30a3\u30a2\u30f3\u3092\u8868\u3059 endian::native \u306e 3 \u3064\u306e endian \u578b\u306e\u5217\u6319\u5b9a\u6570\uff08\u5024\u306f\u5b9f\u88c5\u306b\u4f9d\u5b58\uff09\u304c <type_traits> \u306b\u5b9a\u7fa9\u3055\u308c\u3001endian::native \u3092\u305d\u308c\u4ee5\u5916\u306e\u5024\u3068\u6bd4\u8f03\u3059\u308b\u3053\u3068\u3067\u3001\u5b9f\u884c\u74b0\u5883\u306e\u30d0\u30a4\u30c8\u30aa\u30fc\u30c0\u3092\u5224\u5225\u3067\u304d\u308b\u3088\u3046\u306b\u306a\u308a\u307e\u3059\u3002\u73fe\u5728\u306e C++ \u30b3\u30f3\u30d1\u30a4\u30e9\u3067\u3001\u30ea\u30c8\u30eb\u30a8\u30f3\u30c7\u30a3\u30a2\u30f3\u3067\u3082\u30d3\u30c3\u30b0\u30a8\u30f3\u30c7\u30a3\u30a2\u30f3\u3067\u3082\u306a\u3044\u30df\u30c9\u30eb\u30a8\u30f3\u30c7\u30a3\u30a2\u30f3\uff08PDP \u30a8\u30f3\u30c7\u30a3\u30a2\u30f3\u306a\u3069\uff09\u3092\u30b5\u30dd\u30fc\u30c8\u3057\u3066\u3044\u308b\u3082\u306e\u306f\u3042\u308a\u307e\u305b\u3093\u304c\u3001\u30df\u30c9\u30eb\u30a8\u30f3\u30c7\u30a3\u30a2\u30f3\u306e\u74b0\u5883\u306b\u304a\u3044\u3066\u306f\u3001endian::native \u306f endian::big \u3067\u3082 endian::little \u3067\u3082\u306a\u3044\u5024\u3092\u6301\u3064\u3053\u3068\u306b\u306a\u3063\u3066\u3044\u307e\u3059\u3002

    #include <iostream>\n#include <type_traits>\n\nint main()\n{\n    if constexpr (std::endian::native == std::endian::little)\n    {\n        std::cout << \"Little-endian\\n\";\n    }\n    else if constexpr (std::endian::native == std::endian::big)\n    {\n        std::cout << \"Big-endian\\n\";\n    }\n    else\n    {\n        std::cout << \"Middle-endian\\n\";\n    }\n}\n
    "},{"location":"standardization/cpp20/#cv-stdremove_cvref-trait-p0550r2","title":"\u578b\u304b\u3089 cv \u4fee\u98fe\u3068\u53c2\u7167\u3092\u9664\u53bb\u3059\u308b std::remove_cvref trait (P0550R2)","text":"

    \u578b\u304b\u3089 const \u3084 volatile \u306e\u4fee\u98fe\u304a\u3088\u3073\u53c2\u7167\u3092\u9664\u53bb\u3057\u305f\u3044\u3060\u3051\u3067\u3001\u914d\u5217\u304b\u3089\u30dd\u30a4\u30f3\u30bf\u3001\u95a2\u6570\u578b\u304b\u3089\u95a2\u6570\u30dd\u30a4\u30f3\u30bf\u3078\u306e\u5909\u63db\u306b\u3064\u3044\u3066\u306f\u4e0d\u8981\u3067\u3042\u3063\u3066\u3082\u3001C++17 \u3067\u306f std::remove_cv_t<std::remove_reference_t<T>> \u3068\u66f8\u304f\u3068\u9577\u304f\u306a\u308b\u305f\u3081 std::decay \u3092\u4f7f\u3046\u3068\u3044\u3046\u30b1\u30fc\u30b9\u304c\u3088\u304f\u3042\u308a\u307e\u3057\u305f\u3002C++20 \u304b\u3089\u306f std::remove_cv_t<std::remove_reference_t<T>> \u3068\u540c\u3058\u52b9\u679c\u3092\u6301\u3064 std::remove_cvref trait \u3068\u3001\u305d\u306e\u30d8\u30eb\u30d1\u30fc\u578b std::remove_cvref_t \u304c\u8ffd\u52a0\u3055\u308c\u3001\u77ed\u304f\u66f8\u3051\u308b\u3088\u3046\u306b\u306a\u308a\u307e\u3059\u3002std::remove_reference_t<std::remove_cv_t<T>> \u306e\u3088\u3046\u306a\u9806\u756a\u306e\u9593\u9055\u3044\u3092\u9632\u3050\u3053\u3068\u306b\u3082\u3064\u306a\u304c\u308a\u307e\u3059\u3002

    "},{"location":"standardization/cpp20/#stddecay-p0777r1","title":"\u6a19\u6e96\u30e9\u30a4\u30d6\u30e9\u30ea\u3067\u306e\u4e0d\u5fc5\u8981\u306a std::decay \u306e\u4f7f\u7528\u3092\u56de\u907f (P0777R1)","text":"

    C++17 \u306e\u6a19\u6e96\u30e9\u30a4\u30d6\u30e9\u30ea\u306e\u898f\u683c\u3067\u306f std::decay_t \u304c\u304a\u3088\u305d 40 \u7b87\u6240\u3067\u4f7f\u308f\u308c\u3066\u3044\u307e\u3057\u305f\u304c\u3001\u305d\u306e\u3046\u3061 cv \u4fee\u98fe\u306e\u9664\u53bb\u3084\u53c2\u7167\u306e\u9664\u53bb\u3060\u3051\u3067\u5341\u5206\u306a\u7b87\u6240\u306b\u3064\u3044\u3066\u3001\u5b9f\u88c5\u306e\u610f\u56f3\u3092\u3088\u308a\u660e\u78ba\u306b\u3059\u308b\u305f\u3081 std::remove_reference_t \u3084\u3001C++20 \u304b\u3089\u5c0e\u5165\u3055\u308c\u308b std::remove_cvref_t \u306b\u7f6e\u304d\u63db\u3048\u3089\u308c\u307e\u3059\u3002\u5177\u4f53\u7684\u306b\u306f\u3001std::apply \u3084\u3001std::optional, std::variant \u306e\u4e00\u90e8\u306e\u30e1\u30f3\u30d0\u95a2\u6570\u306a\u3069\u3067\u7f6e\u304d\u63db\u3048\u304c\u767a\u751f\u3057\u307e\u3059\u3002

    "},{"location":"standardization/cpp20/#numbers-p0631r8","title":"\u6570\u5b66\u5b9a\u6570\u3092\u63d0\u4f9b\u3059\u308b <numbers> \u30d8\u30c3\u30c0 (P0631R8)","text":"

    \u3053\u308c\u307e\u3067 C++ \u306e\u6a19\u6e96\u30e9\u30a4\u30d6\u30e9\u30ea\u306b\u306f\u6570\u5b66\u5b9a\u6570\u304c\u7528\u610f\u3055\u308c\u3066\u3044\u307e\u305b\u3093\u3067\u3057\u305f\uff08M_PI \u306a\u3069\u306f\u62e1\u5f35\uff09\u3002C++20 \u304b\u3089\u306f\u6570\u5b66\u5b9a\u6570\u3092\u307e\u3068\u3081\u305f <numbers> \u30d8\u30c3\u30c0\u304c\u8ffd\u52a0\u3055\u308c\u300113 \u7a2e\u985e\u306e\u6570\u5b66\u5b9a\u6570\u306e\u5909\u6570\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8\u5ba3\u8a00\u3068\u3001\u305d\u308c\u3089\u306e double \u578b\u3078\u306e\u7279\u6b8a\u5316\u306e\u5b9a\u7fa9\u304c\u63d0\u4f9b\u3055\u308c\u307e\u3059\u3002 \u5909\u6570\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8\u306f\u3001\u6a19\u6e96\u30e9\u30a4\u30d6\u30e9\u30ea\u30b3\u30f3\u30bb\u30d7\u30c8 floating_point \u3092\u4f7f\u3063\u3066\u3001std::numbers \u540d\u524d\u7a7a\u9593\u306b\u6b21\u306e\u3088\u3046\u306b\u5ba3\u8a00\u3055\u308c\u307e\u3059\u3002

    template <floating_point T>\ninline constexpr T pi_v<T> = 3.141592653589793238462643383279502884L;\n
    \u5408\u308f\u305b\u3066 double \u578b\u3078\u306e\u7279\u6b8a\u5316\u306e\u5b9a\u7fa9\u304c\u6b21\u306e\u3088\u3046\u306a\u5b9f\u88c5\u3067\u63d0\u4f9b\u3055\u308c\u307e\u3059\u3002
    inline constexpr double pi = pi_v<double>;\n
    C++20 \u3067\u8ffd\u52a0\u3055\u308c\u308b\u6570\u5b66\u5b9a\u6570\u306e\u4e00\u89a7\u306f\u6b21\u306e\u3068\u304a\u308a\u3067\u3059\u3002

    \u5b9a\u6570\u540d \u8aac\u660e binary128 \u306b\u5145\u5206\u306a\u7cbe\u5ea6\u3092\u6301\u3064\u5024 e_v e 2.718281828459045235360287471352662498L log2e_v 2 \u3092\u5e95\u3068\u3059\u308b e \u306e\u5bfe\u6570 1.442695040888963407359924681001892137L log10e_v 10 \u3092\u5e95\u3068\u3059\u308b e \u306e\u5bfe\u6570 0.434294481903251827651128918916605082L pi_v \u5186\u5468\u7387 (\u03c0) 3.141592653589793238462643383279502884L inv_pi_v 1/\u03c0 0.318309886183790671537767526745028724L inv_sqrtpi_v 1/\u221a\u03c0 0.564189583547756286948079451560772586L ln2_v 2 \u306e\u81ea\u7136\u5bfe\u6570 0.693147180559945309417232121458176568L ln10_v 10 \u306e\u81ea\u7136\u5bfe\u6570 2.302585092994045684017991454684364208L sqrt2_v \u221a2 1.414213562373095048801688724209698078L sqrt3_v \u221a3 1.732050807568877293527446341505872366L inv_sqrt3_v 1/\u221a3 0.577350269189625764509148780501957456L egamma_v \u30aa\u30a4\u30e9\u30fc\u306e\u5b9a\u6570 0.577215664901532860606512090082402431L phi_v \u9ec4\u91d1\u6570 (\u03c6) 1.618033988749894848204586834365638117L

    \u30b3\u30fc\u30c9\u3067\u4f7f\u7528\u3059\u308b\u969b\u306f\u3001using \u5ba3\u8a00\u306b\u3088\u3063\u3066\u8a18\u8ff0\u3092\u77ed\u304f\u3067\u304d\u307e\u3059\u3002

    #include <iostream>\n#include <numbers>\n\nint main()\n{\n    using std::numbers::pi;\n    using std::numbers::pi_v;\n\n    std::cout << 2.0 * pi  << '\\n';\n    std::cout << pi_v<float> << '\\n';\n}\n
    "},{"location":"standardization/cpp20/#basic_stringreserve-capacity-p0966r1","title":"basic_string::reserve() \u304c capacity \u3092\u7e2e\u5c0f\u3057\u306a\u3044\u3088\u3046\u306b (P0966R1)","text":"

    C++17 \u3067\u306f\u3001std::basic_string::reserve(size_type) \u306b\u73fe\u5728\u306e capacity() \u3088\u308a\u3082\u5c0f\u3055\u3044\u5024\u304c\u6e21\u3055\u308c\u305f\u969b\u3001shrink-to-fit \u3092\u5b9f\u884c\u3059\u308b\u3053\u3068\u304c\u8a31\u53ef\u3055\u308c\u3066\u3044\u305f\u305f\u3081\u3001\u6ce8\u610f\u6df1\u304f\u4f7f\u308f\u306a\u3044\u3068\u30e1\u30e2\u30ea\u306e\u518d\u914d\u7f6e\u3092\u983b\u7e41\u306b\u5f15\u304d\u8d77\u3053\u3057\u3001\u5b9f\u884c\u6642\u6027\u80fd\u3092\u4f4e\u4e0b\u3055\u305b\u308b\u3053\u3068\u304c\u3042\u308a\u307e\u3057\u305f\u3002\u307e\u305f\u3001\u30c7\u30d5\u30a9\u30eb\u30c8\u5f15\u6570\u3068\u3057\u3066 0 \u304c\u5b9a\u7fa9\u3055\u308c\u3066\u304a\u308a\u3001s.reserve() \u3068 s.shrink_to_fit() \u3067\u6a5f\u80fd\u304c\u91cd\u8907\u3059\u308b\u3068\u3044\u3046\u554f\u984c\u3084\u3001shrink-to-fit \u3092\u5b9f\u884c\u305b\u305a\u30c7\u30d5\u30a9\u30eb\u30c8\u5f15\u6570\u3082\u7121\u3044 std::vector::reserve(size_type) \u3068\u306e\u4e00\u8cab\u6027\u304c\u306a\u3044\u3068\u3044\u3046\u554f\u984c\u304c\u3042\u308a\u307e\u3057\u305f\u3002C++20 \u304b\u3089\u306e\u65b0\u3057\u3044\u4ed5\u69d8\u3067\u306f std::vector \u5074\u306b\u5408\u308f\u305b\u3001std::basic_string::reserve(size_type) \u306b\u73fe\u5728\u306e capacity() \u3088\u308a\u3082\u5c0f\u3055\u3044\u5024\u304c\u6e21\u3055\u308c\u305f\u969b\u306b\u306f\u4f55\u3082\u3057\u306a\u3044\u3053\u3068\u304c\u4fdd\u8a3c\u3055\u308c\u3001\u30c7\u30d5\u30a9\u30eb\u30c8\u5f15\u6570\u3082\u5ec3\u6b62\uff08\u4e92\u63db\u6027\u306e\u305f\u3081\u306b deprecated \u6307\u5b9a\u306e std::basic_string:reserve(void) \u30aa\u30fc\u30d0\u30fc\u30ed\u30fc\u30c9\u304c\u8ffd\u52a0\uff09\u3068\u306a\u308a\u3001\u3053\u308c\u3089\u306e\u554f\u984c\u304c\u89e3\u6c7a\u3055\u308c\u307e\u3059\u3002

    "},{"location":"standardization/cpp20/#contains-p0458r2","title":"\u9023\u60f3\u30b3\u30f3\u30c6\u30ca\u306b contains() \u30e1\u30f3\u30d0\u95a2\u6570\u3092\u8ffd\u52a0 (P0458R2)","text":"

    \u3042\u308b\u8981\u7d20\u304c\u9023\u60f3\u30b3\u30f3\u30c6\u30ca\u306b\u542b\u307e\u308c\u3066\u3044\u308b\u304b\u8abf\u3079\u308b\u305f\u3081\u306e C++17 \u307e\u3067\u306e\u30a4\u30c7\u30a3\u30aa\u30e0\u306f\u3001\u76f4\u611f\u7684\u3067\u306a\u304f\u521d\u5fc3\u8005\u306b\u3068\u3063\u3066\u3082\u660e\u5feb\u3067\u306f\u3042\u308a\u307e\u305b\u3093\u3067\u3057\u305f\u3002C++20 \u304b\u3089\u306f\u3001\u8981\u7d20\u306e\u5b58\u5728\u3092\u30c1\u30a7\u30c3\u30af\u3059\u308b contains(key) \u30e1\u30f3\u30d0\u95a2\u6570\u304c std::map, std::multimap, std::set, std::multiset, std::unordered_map, std::unordered_multimap, std::unordered_set, std::unordered_multiset \u306b\u8ffd\u52a0\u3055\u308c\u307e\u3059\u3002

    C++17C++20
    #include <iostream>\n#include <unordered_map>\n\nint main()\n{\n    const std::unordered_map<int, std::string> table =\n    {\n        { 200, \"OK\" }, { 201, \"Created\" }, { 202, \"Accepted\" }\n    };\n\n    if (table.find(200) != table.end())\n    {\n        std::cout << \"key exists\\n\";\n    }\n}\n
    #include <iostream>\n#include <unordered_map>\n\nint main()\n{\n    const std::unordered_map<int, std::string> table =\n    {\n        { 200, \"OK\" }, { 201, \"Created\" }, { 202, \"Accepted\" }\n    };\n\n    if (table.contains(200))\n    {\n        std::cout << \"key exists\\n\";\n    }\n}\n
    "},{"location":"standardization/cpp20/#stderase-stderase_if-p1209r0","title":"\u30b3\u30f3\u30c6\u30ca\u304b\u3089\u6307\u5b9a\u3057\u305f\u8981\u7d20\u3092\u524a\u9664\u3059\u308b\u64cd\u4f5c\u306b\u4e00\u8cab\u3057\u3066\u4f7f\u3048\u308b std::erase(), std::erase_if() \u95a2\u6570 (P1209R0)","text":"

    \u30b3\u30f3\u30c6\u30ca\u304b\u3089\u7279\u5b9a\u306e\u8981\u7d20\u3092\u524a\u9664\u3059\u308b\u3068\u3044\u3046\u51e6\u7406\u306f\u3001\u30b3\u30f3\u30c6\u30ca\u306e\u7a2e\u985e\u306b\u3088\u3063\u3066\u6700\u9069\u306a\u66f8\u304d\u65b9\u304c\u7570\u306a\u308a\u307e\u3059\u3002std::unordered_map \u3067\u306f\u30a4\u30c6\u30ec\u30fc\u30bf\u3092\u4f7f\u3063\u3066\u5148\u982d\u304b\u3089\u8981\u7d20\u3092\u524a\u9664\u3057\u3066\u3044\u304d\u3001std::list \u3067\u306f\u30e1\u30f3\u30d0\u95a2\u6570\u306e remove() \u3084 remove_if() \u3092\u4f7f\u3044\u3001std::vector \u3067\u306f std::remove_if() \u3068 erase() \u30e1\u30f3\u30d0\u95a2\u6570\u3092\u7d44\u307f\u5408\u308f\u305b\u307e\u3059\u3002\u3053\u306e\u3088\u3046\u306b\u30b3\u30f3\u30c6\u30ca\u306e\u7279\u6027\u306b\u5fdc\u3058\u3066\u30b3\u30fc\u30c9\u3092\u66f8\u304d\u5206\u3051\u308b\u306e\u306f\u5927\u5909\u3060\u3063\u305f\u305f\u3081\u3001C++20 \u3067\u306f\u3059\u3079\u3066\u306e\u30b3\u30f3\u30c6\u30ca\u5411\u3051\u306b\u9069\u5207\u306a\u5b9f\u88c5\u3092\u63d0\u4f9b\u3059\u308b\u3001\u4e00\u8cab\u3057\u3066\u4f7f\u3048\u308b\u975e\u30e1\u30f3\u30d0\u95a2\u6570 std::erase(), std::erase_if() \u304c\u8ffd\u52a0\u3055\u308c\u307e\u3059\u3002

    #include <iostream>\n#include <vector>\n#include <list>\n#include <unordered_map>\n#include <string>\n\nint main()\n{\n    std::vector v = { 3, 14, 1, 5, 92 };\n    std::list li = { 3, 14, 1, 5, 92 };\n    std::unordered_map<std::string, int> m = {\n        { \"aa\", 3 }, { \"bb\", 14 }, { \"cc\", 1 }, { \"dd\", 5 }, { \"ee\", 92 } };\n\n    std::erase(v, 3);\n    std::erase(li, 3);\n    std::erase_if(m, [](const auto& p) { return p.second == 3; });\n\n    std::erase_if(v, [](auto n) { return n < 10; });\n    std::erase_if(li, [](auto n) { return n < 10; });\n    std::erase_if(m, [](const auto& p) { return p.second < 10; });\n}\n
    "},{"location":"standardization/cpp20/#stdbit_cast-p0476r2","title":"\u30d0\u30a4\u30c8\u5217\u306e\u518d\u89e3\u91c8\u30ad\u30e3\u30b9\u30c8\u3092\u88dc\u52a9\u3059\u308b std::bit_cast() \u95a2\u6570 (P0476R2)","text":"

    \u3042\u308b\u578b\u306e\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u304c\u683c\u7d0d\u3055\u308c\u3066\u3044\u308b\u30d0\u30a4\u30c8\u5217\u306b\u5bfe\u3057\u3066\u3001\u5225\u306e\u578b\u306e\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u3068\u89e3\u91c8\u3057\u3066\u30a2\u30af\u30bb\u30b9\u3059\u308b\u3053\u3068 (type punning) \u306f C++ \u3067\u306f\u7981\u6b62\u3055\u308c\u3066\u3044\u307e\u3059 (strict aliasing rule). float \u578b\u306e\u5024\u306e\u30d0\u30a4\u30c8\u5217\u3092 std::uint32_t \u578b\u3068\u3057\u3066\u6271\u3046\u3068\u304d\u306e\u9593\u9055\u3063\u305f\u65b9\u6cd5\u3068\u3057\u3066\u3001\u6b21\u306e\u30b5\u30f3\u30d7\u30eb\u306e\u3088\u3046\u306b reinterpret_cast \u3084 union \u3092\u7528\u3044\u308b\u4f8b\u304c\u3042\u308a\u307e\u3059\u3002\u3053\u308c\u306f\u76f4\u611f\u7684\u306b\u898b\u3048\u3001\u5b9f\u969b\u307b\u3068\u3093\u3069\u306e\u30b3\u30f3\u30d1\u30a4\u30e9\u3067\u671f\u5f85\u901a\u308a\u52d5\u4f5c\u3057\u307e\u3059\u304c\u3001\u898f\u683c\u4e0a\u306f\u672a\u5b9a\u7fa9\u52d5\u4f5c\u3068\u306a\u308b\u4e0d\u6b63\u306a\u30b3\u30fc\u30c9\u3067\u3059\u3002\u6b63\u3057\u304f\u306f std::memcpy() \u3092\u4f7f\u3044\u307e\u3059\u3002

    #include <cstdint>\n#include <cstring>\n#include <iostream>\n\nunion FloatUint32\n{\n    float f;\n    std::uint32_t u;\n};\n\nint main()\n{\n    constexpr float f = 0.5f;\n\n    // \u672a\u5b9a\u7fa9\u52d5\u4f5c\n    const std::uint32_t u1 = *reinterpret_cast<const std::uint32_t*>(&f);\n\n    // \u672a\u5b9a\u7fa9\u52d5\u4f5c\n    const std::uint32_t u2 = FloatUint32{ f }.u;\n\n    // OK\n    std::uint32_t u3;\n    std::memcpy(&u3, &f, sizeof(f));\n\n    std::cout << u1 << '\\n';\n    std::cout << u2 << '\\n';\n    std::cout << u3 << '\\n';\n}\n

    \u3057\u304b\u3057\u3001std::memcpy() \u3067\u306f\u578b\u5909\u63db\u3092 constexpr \u306b\u3067\u304d\u305a\u3001\u307e\u305f\u3001\u30c7\u30d5\u30a9\u30eb\u30c8\u30b3\u30f3\u30b9\u30c8\u30e9\u30af\u30c8\u53ef\u80fd\u3067\u306a\u3044\u578b\u306b\u5bfe\u5fdc\u3059\u308b\u306b\u306f std::aligned_storage \u3068\u7d44\u307f\u5408\u308f\u305b\u308b\u5fc5\u8981\u304c\u3042\u308b\u306a\u3069\u3001\u9069\u5207\u306a\u5b9f\u88c5\u306f\u9762\u5012\u3067\u3057\u305f\u3002C++20 \u3067\u306f\u3001\u3053\u306e\u5b9f\u88c5\u3092\u30b3\u30f3\u30d1\u30a4\u30e9\u30b5\u30dd\u30fc\u30c8\u306b\u3088\u308b constexpr \u5bfe\u5fdc\u3082\u542b\u3081\u3066\u5b9f\u73fe\u3059\u308b std::bit_cast() \u95a2\u6570\u304c\u63d0\u4f9b\u3055\u308c\u307e\u3059\u3002

    template <typename To, typename From>\nconstexpr To bit_cast(const From& from) noexcept;\n

    \u5909\u63db\u5148\u306e\u578b To \u3068\u5909\u63db\u5143\u306e\u578b From \u306b\u3064\u3044\u3066\u3001sizeof(To) != sizeof(From) \u306e\u5834\u5408\u3084\u3001std::is_trivially_copyable_v<To> == false \u307e\u305f\u306f std::is_trivially_copyable_v<From> == false \u306e\u5834\u5408\u306b\u306f\u30b3\u30f3\u30d1\u30a4\u30eb\u30a8\u30e9\u30fc\u306b\u306a\u308b\u305f\u3081\u3001\u9593\u9055\u3044\u3092\u6e1b\u3089\u3059\u52b9\u679c\u3082\u3042\u308a\u307e\u3059\u3002

    #include <cstdint>\n#include <bit>\n#include <iostream>\n\nint main()\n{\n    constexpr float f = 0.5f;\n\n    constexpr std::uint32_t u = std::bit_cast<std::uint32_t>(f);\n\n    std::cout << u << '\\n';\n}\n
    "},{"location":"standardization/cpp20/#numeric-p0616r0","title":"<numeric> \u306e\u95a2\u6570\u306e\u975e\u52b9\u7387\u306a\u5b9f\u88c5\u3092\u6539\u5584 (P0616R0)","text":"

    C++17 \u3067\u306f\u3001std::accumulate() \u306f acc = binary_op(acc, *i) \u3068\u3057\u3066\u5b9f\u88c5\u3055\u308c\u308b\u3068\u898f\u683c\u306b\u5b9a\u3081\u3089\u308c\u3066\u3044\u3044\u305f\u305f\u3081\u3001\u6b21\u306e\u3088\u3046\u306a\u30b1\u30fc\u30b9\u3067 std::accumulate() \u306e\u6700\u4e2d\u306b std::string \u306e\u30a2\u30ed\u30b1\u30fc\u30b7\u30e7\u30f3\u304c\u5927\u91cf\u306b\u767a\u751f\u3057\u3066\u975e\u52b9\u7387\u3067\u3057\u305f\u3002

    #include <iostream>\n#include <string>\n#include <numeric>\n#include <vector>\n\nint main()\n{\n    std::vector<std::string> words(100, \"abc\");\n\n    std::string s = \"start\";\n\n    std::string r = std::accumulate(words.begin(), words.end(), s);\n\n    std::cout << r << '\\n';\n}\n
    C++17 \u306e std::accumulate() \u306e\u4e2d\u3067\u884c\u308f\u308c\u308b\u3053\u3068:
    acc = acc + *i; // operator+(const std::string&, const std::string&)\n++i;\n... // \u304f\u308a\u8fd4\u3057\n

    C++20 \u3067\u306f\u3001std::move() \u3092\u4f7f\u3046 acc = binary_op(std::move(acc), *i) \u3068\u3044\u3046\u5b9f\u88c5\u306b\u5909\u66f4\u3055\u308c\u3001\u53f3\u8fba\u5024\u306e\u6f14\u7b97\u306b\u5bfe\u3059\u308b\u52b9\u7387\u7684\u306a\u5b9f\u88c5\u3092\u63d0\u4f9b\u3059\u308b\u578b (std::string \u306a\u3069) \u304c\u3001\u6069\u6075\u3092\u53d7\u3051\u3089\u308c\u308b\u3088\u3046\u306b\u306a\u308a\u307e\u3059\u3002

    C++20 \u306e std::accumulate() \u306e\u4e2d\u3067\u884c\u308f\u308c\u308b\u3053\u3068:

    acc = std::move(acc) + *i; // operator+(std::string&&, const std::string&)\n++i;\n...\n
    operator+(std::string&& lhs, const std::string& rhs) \u306f\u57fa\u672c\u7684\u306b lhs.append(rhs) \u3067\u3059\u3002\u6b21\u306e\u3088\u3046\u306b\u3042\u3089\u304b\u3058\u3081\u5341\u5206\u306a\u30ad\u30e3\u30d1\u30b7\u30c6\u30a3\u3092\u78ba\u4fdd\u3057\u305f\u30d0\u30c3\u30d5\u30a1\u3092 std::accumulate() \u5185\u3067\u4f7f\u3048\u308b\u3088\u3046\u306b\u3082\u306a\u308a\u307e\u3059\u3002

    #include <iostream>\n#include <string>\n#include <numeric>\n#include <vector>\n\nint main()\n{\n    std::vector<std::string> words(100, \"abc\");\n\n    std::string s = \"start\";\n\n    s.reserve(s.size() + (word.size() * words.front().size())); // C++17 \u3067\u306f\u7121\u610f\u5473\n\n    std::string r = std::accumulate(words.begin(), words.end(), std::move(s));\n\n    std::cout << r << '\\n';\n}\n

    std::move() \u3092\u4f7f\u3046\u3053\u306e\u4ed5\u69d8\u5909\u66f4\u306f\u3001\u540c\u3058 <numeric> \u30d8\u30c3\u30c0\u306e std::inner_product() \u3084 std::partial_sum(), std::adjacent_difference() \u306b\u3082\u9069\u7528\u3055\u308c\u307e\u3059\u3002

    "},{"location":"standardization/cpp20/#2-p0556r3-p1355r2-p1956r1","title":"2 \u306e\u7d2f\u4e57\u6570\u306b\u95a2\u3059\u308b\u30e6\u30fc\u30c6\u30a3\u30ea\u30c6\u30a3\u95a2\u6570\u3092\u8ffd\u52a0 (P0556R3), (P1355R2), (P1956R1)","text":"

    \u3042\u308b\u6574\u6570\u304c 2 \u306e\u7d2f\u4e57\u6570\u3067\u3042\u308b\u304b\u3092\u8abf\u3079\u305f\u308a\u3001\u3042\u308b\u6574\u6570\u306b\u8fd1\u3044 2 \u306e\u7d2f\u4e57\u6570\u3092\u63a2\u3057\u305f\u308a\u3059\u308b\u51e6\u7406\u306f\u3001\u30d7\u30ed\u30b0\u30e9\u30df\u30f3\u30b0\u3067\u3088\u304f\u767b\u5834\u3057\u307e\u3059\u304c\u3001C++17 \u306e\u6a19\u6e96\u30e9\u30a4\u30d6\u30e9\u30ea\u306b\u306f\u5b9f\u88c5\u3055\u308c\u3066\u3044\u307e\u305b\u3093\u3067\u3057\u305f\u3002C++20 \u3067\u306f\u6b21\u306e\u3088\u3046\u306a\u95a2\u6570\u304c\u8ffd\u52a0\u3055\u308c\u307e\u3059\u3002

    namespace std\n{\n    template <class T>\n    constexpr bool has_single_bit(T x) noexcept;\n\n    template <class T>\n    constexpr T bit_ceil(T x);\n\n    template <class T>\n    constexpr T bit_floor(T x) noexcept;\n\n    template <class T>\n    constexpr T bit_width(T x) noexcept;\n}\n

    \u3044\u305a\u308c\u306e\u95a2\u6570\u3082\u3001\u578b T \u304c\u7b26\u53f7\u306a\u3057\u6574\u6570\u578b (unsigned char, unsigned short, unsigned int, unsigned long, unsigned long long) \u306e\u5834\u5408\u306e\u307f\u30aa\u30fc\u30d0\u30fc\u30ed\u30fc\u30c9\u89e3\u6c7a\u306b\u53c2\u52a0\u3057\u307e\u3059\u3002\u306a\u304a\u3001std::bit_ceil(x) \u306b\u3064\u3044\u3066\u3001\u7d50\u679c\u304c\u578b T \u3067\u8868\u73fe\u3067\u304d\u306a\u3044\u5834\u5408\u306e\u52d5\u4f5c\u306f\u672a\u5b9a\u7fa9\u3067\u3059\u3002

    #include <iostream>\n#include <bit>\n\nint main()\n{\n    for (unsigned i = 0; i <= 16; ++i)\n    {\n        std::cout << i << \": \"\n            << std::has_single_bit(i) << ' '\n            << std::bit_ceil(i) << ' '\n            << std::bit_floor(i) << ' '\n            << std::bit_width(i) << '\\n';\n    }\n}\n
    0: 0 1 0 0\n1: 1 1 1 1\n2: 1 2 2 2\n3: 0 4 2 2\n4: 1 4 4 3\n5: 0 8 4 3\n6: 0 8 4 3\n7: 0 8 4 3\n8: 1 8 8 4\n9: 0 16 8 4\n10: 0 16 8 4\n11: 0 16 8 4\n12: 0 16 8 4\n13: 0 16 8 4\n14: 0 16 8 4\n15: 0 16 8 4\n16: 1 16 16 5\n

    "},{"location":"standardization/cpp20/#stdlist-stdforward_list-p0646r1","title":"std::list \u3068 std::forward_list \u306e\u8981\u7d20\u524a\u9664\u30e1\u30f3\u30d0\u95a2\u6570\u304c\u3001\u524a\u9664\u3057\u305f\u8981\u7d20\u6570\u3092\u8fd4\u3059\u3088\u3046\u306b (P0646R1)","text":"

    std::list \u306e\u30e1\u30f3\u30d0\u95a2\u6570 remove() \u3067\u8981\u7d20\u3092\u524a\u9664\u3057\u305f\u969b\u3001\u5b9f\u969b\u306b\u524a\u9664\u3055\u308c\u305f\u8981\u7d20\u6570\u3092\u77e5\u308b\u306b\u306f\u3001\u524d\u5f8c\u3067 size() \u306e\u6bd4\u8f03\u3092\u884c\u308f\u306a\u3051\u308c\u3070\u306a\u308a\u307e\u305b\u3093\u3067\u3057\u305f\u3002\u3057\u304b\u3057\u3001std::forward_list \u306e\u5834\u5408\u306f size() \u30e1\u30f3\u30d0\u95a2\u6570\u3092\u6301\u305f\u306a\u3044\u305f\u3081\u3001O(n) \u306e\u64cd\u4f5c\u3067\u3042\u308b std::distance() \u3092\u4f7f\u3046\u5fc5\u8981\u304c\u3042\u308a\u307e\u3057\u305f\u3002C++20 \u3067\u306f\u3001std::list \u304a\u3088\u3073 std::forward_list \u306e remove(), remove_if(), unique() \u30e1\u30f3\u30d0\u95a2\u6570\u304c\u3001\u524a\u9664\u3055\u308c\u305f\u8981\u7d20\u6570\u3092\u623b\u308a\u5024\u3068\u3057\u3066\u8fd4\u3059\u3088\u3046\u306b\u306a\u308a\u307e\u3059\u3002\u306a\u304a\u3001\u547c\u3073\u51fa\u3057\u5074\u3067\u623b\u308a\u5024\u3092\u4f7f\u308f\u306a\u3044\u5834\u5408\u3001\u4e3b\u8981\u30b3\u30f3\u30d1\u30a4\u30e9\u306f\u6700\u9069\u5316\u3067\u51e6\u7406\u3092\u7701\u7565\u3059\u308b\u305f\u3081\u3001\u3053\u306e\u4ed5\u69d8\u5909\u66f4\u304c\u5b9f\u884c\u6642\u6027\u80fd\u306b\u4e0e\u3048\u308b\u5f71\u97ff\u306f\u7121\u3044\u3068\u3055\u308c\u3066\u3044\u307e\u3059\u3002

    "},{"location":"standardization/cpp20/#stdis_bounded_array-stdis_unbounded_array-p1357r1","title":"\u8981\u7d20\u6570\u304c\u6c7a\u307e\u3063\u3066\u3044\u308b\u914d\u5217\u578b\u304b\u3069\u3046\u304b\u3092\u8abf\u3079\u308b\u578b\u7279\u6027 std::is_bounded_array, std::is_unbounded_array (P1357R1)","text":"

    C++17 \u306e\u6a19\u6e96\u30e9\u30a4\u30d6\u30e9\u30ea\u304c\u63d0\u4f9b\u3059\u308b\u578b\u7279\u6027\u306b\u306f\u3001\u914d\u5217\u306e\u8981\u7d20\u6570\u304c\u6c7a\u307e\u3063\u3066\u3044\u308b (bounded) \u304b\u3069\u3046\u304b\u3092\u5224\u5b9a\u3059\u308b\u3082\u306e\u306f\u3042\u308a\u307e\u305b\u3093\u3067\u3057\u305f\u3002C++20 \u3067\u306f\u5229\u4fbf\u6027\u306e\u305f\u3081\u306b\u3001\u578b T \u304c\u8981\u7d20\u6570\u65e2\u77e5\u306e\u914d\u5217\u578b\u3067\u3042\u308b\u304b\u3092\u8abf\u3079\u308b\u578b\u7279\u6027 std::is_bounded_array<T> \u3068\u3001\u578b T \u304c\u8981\u7d20\u6570\u672a\u77e5\u306e\u914d\u5217\u578b\u3067\u3042\u308b\u304b\u3092\u8abf\u3079\u308b\u578b\u7279\u6027 std::is_unbounded_array<T> \u304c\u8ffd\u52a0\u3055\u308c\u307e\u3057\u305f\u3002

    #include <iostream>\n#include <type_traits>\n\nint main()\n{\n    std::cout << std::boolalpha;\n\n    std::cout << std::is_bounded_array_v<int> << '\\n'; // false\n    std::cout << std::is_bounded_array_v<int[]> << '\\n'; // false\n    std::cout << std::is_bounded_array_v<int[5]> << '\\n'; // true\n\n    std::cout << std::is_unbounded_array_v<int> << '\\n'; // false\n    std::cout << std::is_unbounded_array_v<int[]> << '\\n'; // true\n    std::cout << std::is_unbounded_array_v<int[5]> << '\\n'; // false\n}\n
    false\nfalse\ntrue\nfalse\ntrue\nfalse\n

    C++ \u6a19\u6e96\u30e9\u30a4\u30d6\u30e9\u30ea\u306e\u6a5f\u80fd\u3067\u306f\u3001\u4f8b\u3048\u3070 std::make_unique() \u304c\u8981\u7d20\u6570\u65e2\u77e5\u306e\u914d\u5217\u578b\u3092\u7981\u6b62\u3057\u3066\u3044\u307e\u3059\u3002\u3053\u3046\u3057\u305f\u30aa\u30fc\u30d0\u30fc\u30ed\u30fc\u30c9\u3092\u6271\u3046\u3068\u304d\u306b\u3001\u3053\u306e\u578b\u7279\u6027\u304c\u4fbf\u5229\u3067\u3059\u3002

    #include <iostream>\n#include <memory>\n\nint main()\n{\n    auto p1 = std::make_unique<int[]>(3);\n    auto p2 = std::make_unique<int[5]>(); // \u30b3\u30f3\u30d1\u30a4\u30eb\u30a8\u30e9\u30fc\n}\n
    "},{"location":"standardization/cpp20/#stdfunction-noexcept-p0771r1","title":"std::function \u306e\u30e0\u30fc\u30d6\u30b3\u30f3\u30b9\u30c8\u30e9\u30af\u30bf\u304c noexcept \u306b (P0771R1)","text":"

    \u5b9f\u884c\u6642\u6027\u80fd\u3092\u5411\u4e0a\u3055\u305b\u308b\u305f\u3081\u3001C++20 \u3067\u306f std::function \u306e\u30e0\u30fc\u30d6\u30b3\u30f3\u30b9\u30c8\u30e9\u30af\u30bf\u304c noexcept \u306b\u306a\u308a\u307e\u3059\u3002\u306a\u304a\u3001libstdc++ \u3068 libc++ \u3067\u306f\u63d0\u6848\u6642\u70b9\u3067\u3059\u3067\u306b\u5b9f\u88c5\u6e08\u307f\u3067\u3057\u305f\u3002

    "},{"location":"standardization/cpp20/#utility-algorithm-constexpr-p0202r3-p0879r0","title":"<utility>, <algorithm> \u306e\u591a\u304f\u306e\u95a2\u6570\u304c constexpr \u306b (P0202R3), (P0879R0)","text":"

    C++20 \u3067\u306f <utility> \u30d8\u30c3\u30c0\u306e std::swap(), std::exchange() \u304a\u3088\u3073\u3001<algorithm> \u30d8\u30c3\u30c0\u3067\u6761\u4ef6\u3092\u6e80\u305f\u3059\u5168\u95a2\u6570\u304c constexpr \u306b\u5bfe\u5fdc\u3057\u307e\u3059\u3002std::all_of() \u3084 std::sort(), std::reverse() \u306a\u3069\u3001\u3088\u304f\u4f7f\u308f\u308c\u308b\u30a2\u30eb\u30b4\u30ea\u30ba\u30e0\u95a2\u6570\u304c constexpr \u306b\u306a\u308a\u307e\u3059\u3002

    <algorithm> \u30d8\u30c3\u30c0\u3067 constexpr \u306b\u306a\u3089\u306a\u3044\u306e\u306f\u4ee5\u4e0b\u306e\u95a2\u6570\u306e\u307f\u3067\u3059\u3002

    #include <array>\n#include <algorithm>\n#include <iostream>\n\nconstexpr int SumOfTop3(std::array<int, 5> a)\n{\n    std::nth_element(a.begin(), a.begin() + 3, a.end()); // C++20 \u3067\u306f constexpr\n\n    return a[0] + a[1] + a[2];\n}\n\nint main()\n{\n    constexpr int n = SumOfTop3({ 1, 8, 16, 4, 2 });\n\n    static_assert(n == 7);\n\n    std::cout << n << '\\n'; // 7\n}\n
    7\n
    "},{"location":"standardization/cpp20/#delete-p0722r3","title":"\u30c7\u30b9\u30c8\u30e9\u30af\u30bf\u3092\u81ea\u52d5\u3067\u547c\u3070\u306a\u3044 delete \u6f14\u7b97\u5b50\u30aa\u30fc\u30d0\u30fc\u30ed\u30fc\u30c9 (P0722R3)","text":"

    C++17 \u3067\u306f\u3001\u30e6\u30fc\u30b6\u5b9a\u7fa9\u306e delete \u306e\u4e2d\u3067\u30e1\u30f3\u30d0\u5909\u6570\u306b\u30a2\u30af\u30bb\u30b9\u3057\u305f\u304f\u3066\u3082\u3001\u3059\u3067\u306b\u30af\u30e9\u30b9\u306e\u30c7\u30b9\u30c8\u30e9\u30af\u30bf\u304c\u547c\u3070\u308c\u3066\u3044\u308b\u305f\u3081\u672a\u5b9a\u7fa9\u306e\u52d5\u4f5c\u306b\u306a\u308a\u307e\u3059\u3002

    #include <iostream>\n#include <new>\n\nstruct Object\n{\n    std::string m_str = \"ABCDEFGHIJKLMNOPQRSTUVWXYZ\";\n\n    static void operator delete(void* p)\n    {    \n        std::cout << \"m_str: \"\n            << static_cast<Object*>(p)->m_str // \u672a\u5b9a\u7fa9\u306e\u52d5\u4f5c\n            << '\\n';\n        ::operator delete(p);\n    }\n};\n\nint main()\n{\n    Object* p = new Object;\n    delete p;\n}\n

    C++20 \u3067\u306f\u3001delete \u306e\u7b2c\u4e8c\u5f15\u6570\u3092 std::destroying_delete_t \u578b\u306b\u3059\u308b\u3053\u3068\u3067\u3001\u30c7\u30b9\u30c8\u30e9\u30af\u30bf\u306e\u547c\u3073\u51fa\u3057\u304c\u81ea\u52d5\u3067\u5b9f\u884c\u3055\u308c\u306a\u3044\u6319\u52d5\u306b\u8a2d\u5b9a\u3067\u304d\u307e\u3059\uff08\u3053\u306e\u65b0\u3057\u3044\u6319\u52d5\u3092\u300cdestroying operator delete\u300d\u3068\u547c\u3073\u307e\u3059\uff09\u3002void T::operator delete(T* ptr, std::destroying_delete_t) \u306e\u3088\u3046\u306b\u3001\u7b2c\u4e00\u5f15\u6570\u306b\u306f\u30af\u30e9\u30b9\u3078\u306e\u30dd\u30a4\u30f3\u30bf\u304c\u6e21\u3055\u308c\u3001\u660e\u793a\u7684\u306b\u30c7\u30b9\u30c8\u30e9\u30af\u30bf ptr->~T() \u3092\u547c\u3076\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059\u3002

    #include <iostream>\n#include <new>\n\nstruct Object\n{\n    std::string m_str = \"ABCDEFGHIJKLMNOPQRSTUVWXYZ\";\n\n    static void operator delete(Object* p, std::destroying_delete_t)\n    {    \n        std::cout << \"m_str: \"\n            << p->m_str\n            << '\\n';      \n        p->~Object();\n        ::operator delete(p);\n    }\n};\n\nint main()\n{\n    Object* p = new Object;\n    delete p;\n}\n
    "},{"location":"standardization/cpp20/#p0553r4","title":"\u30d3\u30c3\u30c8\u5faa\u74b0\u30b7\u30d5\u30c8\u30fb\u30d3\u30c3\u30c8\u30ab\u30a6\u30f3\u30c8\u95a2\u6570 (P0553R4)","text":"

    \u30d3\u30c3\u30c8\u5217\u306e\u5de6\u7aef\u3068\u53f3\u7aef\u304c\u5faa\u74b0\u3059\u308b\u3088\u3046\u306b\u30b7\u30d5\u30c8\u3059\u308b\u30d3\u30c3\u30c8\u30ed\u30fc\u30c6\u30fc\u30b7\u30e7\u30f3\u3084\u30011 \u306b\u306a\u3063\u3066\u3044\u308b\u30d3\u30c3\u30c8\u3092\u6570\u3048\u308b popcount \u306a\u3069\u306e\u30d3\u30c3\u30c8\u64cd\u4f5c\u547d\u4ee4\u306f\u3001\u591a\u304f\u306e CPU \u30a2\u30fc\u30ad\u30c6\u30af\u30c1\u30e3\u306b\u642d\u8f09\u3055\u308c\u3066\u3044\u307e\u3059\u304c\u3001\u305d\u308c\u306b\u5bfe\u5fdc\u3059\u308b\u95a2\u6570\u306f C++17 \u6a19\u6e96\u30e9\u30a4\u30d6\u30e9\u30ea\u306b\u306f\u5b58\u5728\u305b\u305a\u3001__builtin_popcount (GCC, Clang) \u3084 __popcnt (MSVC) \u306e\u3088\u3046\u306a\u3001\u51e6\u7406\u7cfb\u304c\u63d0\u4f9b\u3059\u308b\u975e\u6a19\u6e96\u306e\u7d44\u307f\u8fbc\u307f\u95a2\u6570\u3092\u4f7f\u3046\u5fc5\u8981\u304c\u3042\u308a\u307e\u3057\u305f\u3002C++20 \u3067\u306f\u30017 \u7a2e\u985e\u306e\u30d3\u30c3\u30c8\u64cd\u4f5c\u304c\u6a19\u6e96\u30e9\u30a4\u30d6\u30e9\u30ea\u95a2\u6570\u3068\u3057\u3066\u63d0\u4f9b\u3055\u308c\u307e\u3059\u3002

    namespace std\n{\n    template<class T>\n    [[nodiscard]] constexpr T rotl(T x, int s) noexcept;\n\n    template<class T>\n    [[nodiscard]] constexpr T rotr(T x, int s) noexcept;\n\n    template<class T>\n    constexpr int countl_zero(T x) noexcept;\n\n    template<class T>\n    constexpr int countl_one(T x) noexcept;\n\n    template<class T>\n    constexpr int countr_zero(T x) noexcept;\n\n    template<class T>\n    constexpr int countr_one(T x) noexcept;\n\n    template<class T>\n    constexpr int popcount(T x) noexcept;\n}\n

    \u3044\u305a\u308c\u306e\u95a2\u6570\u3082\u3001\u578b T \u304c\u7b26\u53f7\u306a\u3057\u6574\u6570\u578b (unsigned char, unsigned short, unsigned int, unsigned long, unsigned long long) \u306e\u5834\u5408\u306e\u307f\u30aa\u30fc\u30d0\u30fc\u30ed\u30fc\u30c9\u89e3\u6c7a\u306b\u53c2\u52a0\u3057\u307e\u3059\u3002

    #include <iostream>\n#include <cstdint>\n#include <bit>\n\nvoid ShowBinary(std::uint16_t x)\n{\n    for (size_t i = 0; i < 16; ++i)\n    {\n        std::cout << ((x >> (15 - i)) & 1);\n    }\n    std::cout << '\\n';\n}\n\nint main()\n{\n    const std::uint16_t x = 0b0001'0110'1110'1111;\n\n    ShowBinary(x);\n    std::cout << '\\n';\n\n    for (int s = -4; s <= 4; ++s)\n    {\n        ShowBinary(std::rotl(x, s));\n    }\n    std::cout << '\\n';\n\n    for (int s = -4; s <= 4; ++s)\n    {\n        ShowBinary(std::rotr(x, s));\n    }\n    std::cout << '\\n';\n\n    std::cout << std::countl_zero(x) << '\\n';   // 3\n    std::cout << std::countl_one(x) << '\\n';    // 0\n    std::cout << std::countr_zero(x) << '\\n';   // 0\n    std::cout << std::countr_one(x) << '\\n';    // 4\n    std::cout << std::popcount(x) << '\\n';      // 10\n}\n
    0001011011101111\n\n1111000101101110\n1110001011011101\n1100010110111011\n1000101101110111\n0001011011101111\n0010110111011110\n0101101110111100\n1011011101111000\n0110111011110001\n\n0110111011110001\n1011011101111000\n0101101110111100\n0010110111011110\n0001011011101111\n1000101101110111\n1100010110111011\n1110001011011101\n1111000101101110\n\n3\n0\n0\n4\n10\n

    "},{"location":"standardization/cpp20/#stdarray-stdto_array-p0325r4","title":"\u7d44\u307f\u8fbc\u307f\u914d\u5217\u304b\u3089 std::array \u3092\u4f5c\u6210\u3059\u308b std::to_array() (P0325R4)","text":"

    C++17 \u3067\u5c0e\u5165\u3055\u308c\u305f\u578b\u63a8\u8ad6\u30ac\u30a4\u30c9\u306b\u3088\u3063\u3066\u3001std::array \u3067\u6b21\u306e\u3088\u3046\u306a\u30b3\u30fc\u30c9\u304c\u66f8\u3051\u308b\u3088\u3046\u306b\u306a\u308a\u307e\u3057\u305f\u3002

    #include <array>\n\nint main()\n{\n    auto a = std::array{ 1, 2, 3 }; // std::array<int, 3>\n}\n

    \u3057\u304b\u3057\u3001\"hello\" \u3084 int[4] \u306e\u3088\u3046\u306a\u7d44\u307f\u8fbc\u307f\u914d\u5217\u304b\u3089 std::array<char, 6> \u3084 std::array<int, 4> \u3092\u4f5c\u6210\u3059\u308b\u65b9\u6cd5\u306f\u3042\u308a\u307e\u305b\u3093\u3067\u3057\u305f\u3002

    #include <array>\n\nint main()\n{\n    auto a1 = std::array{ \"hello\" }; // std::array<const char*, 1>\n\n    int xs[4] = { 1,2,3,4 };\n    auto a2 = std::array{ xs }; // std::array<int*, 1>\n}\n

    C++20 \u3067\u306f\u3001\u7d44\u307f\u8fbc\u307f\u914d\u5217\u306e\u5de6\u8fba\u5024\u307e\u305f\u306f\u53f3\u8fba\u5024\u3092\u5f15\u6570\u306b\u3068\u308a\u3001\u5024\u3092\u30b3\u30d4\u30fc\uff08\u30e0\u30fc\u30d6\uff09\u3057\u3066\u65b0\u3057\u3044 std::array \u3092\u4f5c\u6210\u3059\u308b\u88dc\u52a9\u95a2\u6570 std::to_array() \u304c\u8ffd\u52a0\u3055\u308c\u3001\u7d44\u307f\u8fbc\u307f\u914d\u5217\u304b\u3089\u306e std::array \u306e\u4f5c\u6210\u304c\u7c21\u5358\u306b\u306a\u308a\u307e\u3057\u305f\u3002

    #include <array>\n\nint main()\n{\n    auto a1 = std::to_array(\"hello\"); // std::array<char, 6>\n\n    int xs[4] = { 1,2,3,4 };\n    auto a2 = std::to_array(xs); // std::array<int, 4>\n\n    auto a3 = std::to_array<long>({ 1, 2 }); // std::array<long, 2>\n}\n
    "},{"location":"standardization/cpp20/#stdfilesystemcreate_directory-p1164r1","title":"std::filesystem::create_directory() \u306e\u6319\u52d5\u3092\u76f4\u611f\u7684\u306b (P1164R1)","text":"

    C++17 \u3067\u5c0e\u5165\u3055\u308c\u305f std::filesystem::create_directory() \u304a\u3088\u3073 std::filesystem::create_directories() \u306e\u5f53\u521d\u306e\u4ed5\u69d8\u3067\u306f\u3001

    \u3068\u3044\u3046\u3001\u5bfe\u51e6\u3057\u306b\u304f\u304f\u4e00\u8cab\u3057\u306a\u3044\u6319\u52d5\u304c\u3042\u308a\u307e\u3057\u305f\u3002C++20 \u3067\u306f\u540c\u540d\u306e\uff08\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u3067\u306a\u3044\uff09\u30d5\u30a1\u30a4\u30eb\u304c\u5b58\u5728\u3059\u308b\u5834\u5408\u306f\u5e38\u306b\u30a8\u30e9\u30fc\u306b\u306a\u308b\u3088\u3046\u4ed5\u69d8\u304c\u4fee\u6b63\u3055\u308c\u307e\u3059\u3002\u3053\u306e\u5909\u66f4\u306f C++17 \u898f\u683c\u306b\u3055\u304b\u306e\u307c\u3063\u3066\u9069\u7528\u3055\u308c\u3001\u5bfe\u5fdc\u3057\u305f C++17 \u74b0\u5883\u3067\u3082\u5229\u7528\u3067\u304d\u307e\u3059\u3002

    "},{"location":"standardization/cpp20/#stdmake_shared-stdallocate_shared-p0674r1","title":"std::make_shared() \u3068 std::allocate_shared() \u304c\u914d\u5217\u3092\u30b5\u30dd\u30fc\u30c8 (P0674R1)","text":"

    C++11 \u3067\u5c0e\u5165\u3055\u308c\u305f std::make_shared(), std::allocate_shared() \u306f\u914d\u5217\u3092\u30b5\u30dd\u30fc\u30c8\u3057\u3066\u3044\u307e\u305b\u3093\u3067\u3057\u305f\u3002C++20 \u304b\u3089\u306f\u914d\u5217\u578b\u306e\u305f\u3081\u306e\u30aa\u30fc\u30d0\u30fc\u30ed\u30fc\u30c9\u304c\u8ffd\u52a0\u3055\u308c\u307e\u3059\u3002

    #include <iostream>\n#include <memory>\n\nint main()\n{\n    // \u5024\u521d\u671f\u5316\u3055\u308c\u305f int[100]\n    std::shared_ptr<int[]> p1 = std::make_shared<int[]>(100);\n    std::cout << p1[99] << '\\n'; // 0\n\n    // \u5024\u521d\u671f\u5316\u3055\u308c\u305f double[6][4]\n    std::shared_ptr<double[][4]> p2 = std::make_shared<double[][4]>(6);\n    std::cout << p2[5][3] << '\\n'; // 0.0\n\n    // \u5024\u521d\u671f\u5316\u3055\u308c\u305f int[100]\n    std::shared_ptr<int[100]> p3 = std::make_shared<int[100]>();\n    std::cout << p3[99] << '\\n'; // 0\n\n    // \u5024\u521d\u671f\u5316\u3055\u308c\u305f double[6][4]\n    std::shared_ptr<double[6][4]> p4 = std::make_shared<double[6][4]>();\n    std::cout << p4[5][3] << '\\n'; // 0.0\n\n    // int[100] \u3067\u5404\u8981\u7d20\u306f -1\n    std::shared_ptr<int[]> p5 = std::make_shared<int[]>(100, -1);\n    std::cout << p5[99] << '\\n'; // -1\n\n    // double[6][4] \u3067\u3001\u5404 double[4] \u306f { 1.0, 0.9, 0.8, 0.7 }\n    std::shared_ptr<double[][4]> p6 = std::make_shared<double[][4]>(6, { 1.0, 0.9, 0.8, 0.7 });\n    std::cout << p6[5][3] << '\\n'; // 0.7\n\n    // int[100] \u3067\u5404\u8981\u7d20\u306f -2\n    std::shared_ptr<int[100]> p7 = std::make_shared<int[100]>(-2);\n    std::cout << p7[99] << '\\n'; // -2\n\n    // double[6][4] \u3067\u3001\u5404 double[4] \u306f { 0.0, 0.1, 0.2, 0.3 }\n    std::shared_ptr<double[6][4]> p8 = std::make_shared<double[6][4]>({ 0.0, 0.1, 0.2, 0.3 });\n    std::cout << p8[5][3] << '\\n'; // 0.3\n}\n
    0\n0\n0\n0\n-1\n0.7\n-2\n0.3\n

    "},{"location":"standardization/cpp20/#stdshift_left-stdshift_right-p0769r2","title":"\u7bc4\u56f2\u306e\u8981\u7d20\u3092\u5de6\u53f3\u306b\u30b7\u30d5\u30c8\u3059\u308b std::shift_left(), std::shift_right() \u95a2\u6570 (P0769R2)","text":"

    \u3042\u308b\u7bc4\u56f2\u306e\u8981\u7d20\u3092\u5de6\u53f3\u306b\u79fb\u52d5\u3055\u305b\u305f\u3044\u3068\u304d\u306f std::rotate() \u3092\u4f7f\u3046\u65b9\u6cd5\u304c\u3042\u308a\u307e\u3057\u305f\u304c\u3001\u306f\u307f\u51fa\u305f\u5206\u306f\u56de\u8ee2\u3057\u3066\u53cd\u5bfe\u5074\u306b\u79fb\u52d5\u3059\u308b\u64cd\u4f5c\u3067\u3042\u308b\u305f\u3081\u3001\u305d\u308c\u3089\u306e\u5024\u304c\u4e0d\u8981\u306a\u5834\u5408\u306f\u4f59\u8a08\u306a\u30b3\u30b9\u30c8\u304c\u767a\u751f\u3057\u3066\u3044\u307e\u3057\u305f\u3002\u307e\u305f\u3001std::rotate() \u3067\u306f\u8981\u7d20\u3092\u3069\u3061\u3089\u306b\u3069\u308c\u3060\u3051\u79fb\u52d5\u3059\u308b\u304b\u3068\u3044\u3046\u610f\u56f3\u3092\u660e\u5feb\u306b\u8868\u73fe\u3067\u304d\u307e\u305b\u3093\u3067\u3057\u305f\u3002

    C++20 \u3067\u306f\u3001\u3042\u308b\u7bc4\u56f2\u306e\u8981\u7d20\u3092\u56de\u8ee2\u7121\u3057\u3067\u79fb\u52d5\uff08\u30b7\u30d5\u30c8\uff09\u3055\u305b\u308b std::shift_left(first, last, n), std::shift_right(first, last, n) \u95a2\u6570\u304c\u8ffd\u52a0\u3055\u308c\u307e\u3059\u3002\u79fb\u52d5\u3055\u305b\u308b\u8981\u7d20\u306e\u7bc4\u56f2\u3092 first, last \u3067\u6307\u5b9a\u3057\u3001n \u500b\u5206\u5de6\u53f3\u306b\u30b7\u30d5\u30c8\u3057\u307e\u3059\u3002n \u304c 0 \u4ee5\u4e0b\u306e\u5834\u5408\u306f\u4f55\u3082\u3057\u307e\u305b\u3093\u3002\u79fb\u52d5\u306b\u3088\u308a\u8981\u7d20\u304c\u306a\u304f\u306a\u3063\u305f\u90e8\u5206\u306f\u6709\u52b9\u3067\u672a\u898f\u5b9a\u306e\u72b6\u614b\u306b\u306a\u308b\u305f\u3081\u3001\u65b0\u3057\u3044\u8981\u7d20\u3092\u4ee3\u5165\u3059\u308b\u304b\u3001erase() \u3067\u524a\u9664\u3057\u307e\u3059\u3002

    #include <iostream>\n#include <vector>\n#include <algorithm>\n\nint main()\n{\n    {\n        std::vector v = { 1, 2, 3, 4, 5 };\n\n        // \u5de6\u3078 1 \u30ed\u30fc\u30c6\u2015\u30c8\n        // { 2, 3, 4, 5, 1 }\n        std::rotate(v.begin(), v.begin() + 1, v.end());\n\n        v.back() = 6;\n\n        for (const auto& e : v)\n        {\n            std::cout << e << ' '; // 2 3 4 5 6\n        }\n\n        std::cout << '\\n';\n    }\n\n    {\n        std::vector v = { 1, 2, 3, 4, 5 };\n\n        // \u5de6\u3078 1 \u30b7\u30d5\u30c8\n        // { 2, 3, 4, 5, (\u672a\u898f\u5b9a) }\n        std::shift_left(v.begin(), v.end(), 1);\n\n        v.back() = 6;\n\n        for (const auto& e : v)\n        {\n            std::cout << e << ' '; // 2 3 4 5 6\n        }\n\n        std::cout << '\\n';\n    }\n}\n
    2 3 4 5 6 \n2 3 4 5 6 \n

    "},{"location":"standardization/cpp20/#stdstring_view-p1391r4","title":"std::string_view \u306e\u30b3\u30f3\u30b9\u30c8\u30e9\u30af\u30bf\u306b\u3001\u7bc4\u56f2\u306e\u30a4\u30c6\u30ec\u30fc\u30bf\u30da\u30a2\u3092\u53d7\u3051\u53d6\u308b\u30aa\u30fc\u30d0\u30fc\u30ed\u30fc\u30c9\u3092\u8ffd\u52a0 (P1391R4)","text":"

    \u3053\u308c\u307e\u3067\u306f\u3001\u30e1\u30e2\u30ea\u9023\u7d9a\u306a\u7bc4\u56f2\u304b\u3089 std::string_view \u3092\u4f5c\u6210\u3059\u308b\u306b\u306f\u3001\u5148\u982d\u30dd\u30a4\u30f3\u30bf\u3068\u30b5\u30a4\u30ba\u3092\u6e21\u3059\u5fc5\u8981\u304c\u3042\u308a\u3001\u30a4\u30c6\u30ec\u30fc\u30bf\u3092\u4f7f\u7528\u3059\u308b\u3053\u3068\u306f\u3067\u304d\u307e\u305b\u3093\u3067\u3057\u305f\u3002

    C++20 \u3067\u306f\u3001\u30a4\u30c6\u30ec\u30fc\u30bf\u30b3\u30f3\u30bb\u30d7\u30c8 std::contiguous_iterator<It> \u3092\u6e80\u305f\u3059\u5148\u982d\u30a4\u30c6\u30ec\u30fc\u30bf It \u3068\u3001std::sized_sentinel_for<It> \u3092\u6e80\u305f\u3059\u30a4\u30c6\u30ec\u30fc\u30bf End \u306b\u3088\u308b string_view::string_view(It first, End last); \u3068\u3044\u3046\u30b3\u30f3\u30b9\u30c8\u30e9\u30af\u30bf\u306e\u30aa\u30fc\u30d0\u30fc\u30ed\u30fc\u30c9\u304c\u8ffd\u52a0\u3055\u308c\u307e\u3059\u3002\u3053\u308c\u306b\u3088\u308a\u3001char \u578b\u306e\u914d\u5217\u3084 std::vector<char>, \u975e\u6a19\u6e96\u306e\u30e9\u30a4\u30d6\u30e9\u30ea\u3067\u4f7f\u308f\u308c\u3066\u3044\u308b\u69d8\u3005\u306a\u6587\u5b57\u5217\u30af\u30e9\u30b9\u304b\u3089\u306e std::string_view \u306e\u69cb\u7bc9\u304c\u3001\u30a4\u30c6\u30ec\u30fc\u30bf\u3092\u4f7f\u3046\u65b9\u6cd5\u3067\u5b9f\u73fe\u3067\u304d\u308b\u3088\u3046\u306b\u306a\u308a\u307e\u3059\u3002

    #include <iostream>\n#include <vector>\n#include <string_view>\n\nint main()\n{\n    const std::vector<char> chars = { 'A', 'B', 'C', 'D', 'E' };\n\n    // C++17 \u307e\u3067\n    //const std::string_view sv{ chars.data(), chars.size() };\n\n    const std::string_view sv{ chars.begin(), chars.end() };\n\n    std::cout << sv << '\\n';\n}\n
    ABCDE\n

    "},{"location":"standardization/cpp23/","title":"C++23 \u306e\u65b0\u6a5f\u80fd","text":"

    C++23 \u306e\u898f\u683c\u30c9\u30e9\u30d5\u30c8\u306b\u5165\u308b\u3053\u3068\u304c\u6c7a\u307e\u3063\u305f\u65b0\u6a5f\u80fd\u30fb\u4ed5\u69d8\u5909\u66f4\u3092\u968f\u6642\u8ffd\u52a0\u3057\u3066\u3044\u304d\u307e\u3059\u3002

    "},{"location":"standardization/cpp23/#_1","title":"\u8a00\u8a9e\u6a5f\u80fd","text":""},{"location":"standardization/cpp23/#stdsize_t-p0330","title":"std::size_t \u578b\u306e\u6574\u6570\u30ea\u30c6\u30e9\u30eb\u306e\u305f\u3081\u306e\u30b5\u30d5\u30a3\u30c3\u30af\u30b9\u3092\u8ffd\u52a0 (P0330)","text":"

    \u3053\u308c\u307e\u3067 std::size_t \u578b\u306e\u5024\u3092\u30ea\u30c6\u30e9\u30eb\u3067\u8868\u73fe\u3059\u308b\u65b9\u6cd5\u304c\u306a\u304f\u3001\u6b21\u306e\u3088\u3046\u306a\u4e0d\u4fbf\u306e\u539f\u56e0\u306b\u306a\u3063\u3066\u3044\u307e\u3057\u305f\u3002

    #include <vector>\n#include <algorithm>\n\nint main()\n{\n    std::vector<int> v{ 0, 1, 2, 3 };\n\n    // \u30b3\u30f3\u30d1\u30a4\u30eb\u30a8\u30e9\u30fc (64-bit \u74b0\u5883): i \u3068 s \u304c\u7570\u306a\u308b\u578b\n    for (auto i = 0u, s = v.size(); i < s; ++i)\n    {\n\n    }\n\n    // OK\n    for (auto i = size_t(0), s = v.size(); i < s; ++i)\n    {\n\n    }\n\n    size_t s2 = std::max(1u, v.size()); // \u30b3\u30f3\u30d1\u30a4\u30eb\u30a8\u30e9\u30fc (64-bit \u74b0\u5883): \u5f15\u6570\u306e\u578b\u304c\u4e0d\u4e00\u81f4\n\n    size_t s3 = std::max<size_t>(1u, v.size()); // OK\n}\n

    C++23 \u3067\u306f std::size_t \u578b\u306e\u5024\u3092\u8868\u3059\u30ea\u30c6\u30e9\u30eb\u306e\u30b5\u30d5\u30a3\u30c3\u30af\u30b9 z \u304a\u3088\u3073 Z \u304c\u8ffd\u52a0\u3055\u308c\u3001123z \u306f\u7b26\u53f7\u4ed8\u304d\u306e std::size_t \u306b\u76f8\u5f53\u3059\u308b\u578b (std::ptrdiff_\u00adt), 123uz \u304c std::size_t \u578b\u3068\u898b\u306a\u3055\u308c\u307e\u3059\u3002

    #include <vector>\n#include <algorithm>\n\nint main()\n{\n    std::vector<int> v{ 0, 1, 2, 3 };\n\n    // OK\n    for (auto i = 0uz, s = v.size(); i < s; ++i)\n    {\n\n    }\n\n    size_t s2 = std::max(1uz, v.size()); // OK\n}\n
    "},{"location":"standardization/cpp23/#_2","title":"\u6a19\u6e96\u30e9\u30a4\u30d6\u30e9\u30ea","text":""},{"location":"standardization/cpp23/#c-atomics-stdatomich-p0943r6","title":"C \u8a00\u8a9e\u3068\u306e atomics \u306e\u4e92\u63db\u3092\u76ee\u7684\u3068\u3057\u305f\u6a19\u6e96\u30e9\u30a4\u30d6\u30e9\u30ea\u30d8\u30c3\u30c0 <stdatomic.h> \u3092\u8ffd\u52a0 (P0943R6)","text":"

    C++ atomics \u306e\u975e\u30b8\u30a7\u30cd\u30ea\u30c3\u30af\u306a\u90e8\u5206 (atomic_char \u3084 atomic_ulong \u306a\u3069) \u306f C \u8a00\u8a9e\u304b\u3089\u3082\u4f7f\u3048\u308b\u3088\u3046\u306b\u8a2d\u8a08\u3055\u308c\u3066\u3044\u307e\u3057\u305f\u304c\u3001C \u8a00\u8a9e\u304c\u30b8\u30a7\u30cd\u30ea\u30c3\u30af\u7528\u3068\u3057\u3066\u72ec\u81ea\u306b _Atomic(T) \u578b\u6307\u5b9a\u5b50\u3092\u8ffd\u52a0\u3057\u305f\u307b\u304b\u3001C++ \u306e\u898f\u683c\u3067\u306f C \u8a00\u8a9e\u306e\u30d8\u30c3\u30c0 <stdatomic.h> \u306b\u95a2\u3059\u308b\u8a00\u53ca\u304c\u306a\u3044\u3053\u3068\u304b\u3089\u3001\u5b9f\u969b\u306e\u76f8\u4e92\u904b\u7528\u306b\u306f\u3044\u304f\u3089\u304b\u306e\u624b\u9593\u304c\u5fc5\u8981\u3067\u3057\u305f\u3002

    #ifdef __cplusplus\n    #include <atomic>   \n    using std::atomic_int;  \n    using std::memory_order;\n    using std::memory_order_acquire;\n    #define _Atomic(X) std::atomic<X>\n    // ...\n#else\n    #include <stdatomic.h>\n#endif\n\n// C \u3067\u3082 C++ \u3067\u3082\u30b3\u30f3\u30d1\u30a4\u30eb\u53ef\u80fd\nint main(void)\n{\n    atomic_int a;\n    memory_order b = memory_order_acquire;\n    _Atomic(int) c;\n    return 0;\n}\n

    C++23 \u3067\u306f\u6a19\u6e96\u30e9\u30a4\u30d6\u30e9\u30ea\u306b C \u8a00\u8a9e\u3068\u306e atomics \u306e\u4e92\u63db\u306e\u305f\u3081\u306e\u30d8\u30c3\u30c0 <stdatomic.h> \u3092\u8ffd\u52a0\u3057\u3001\u30a4\u30f3\u30af\u30eb\u30fc\u30c9\u3059\u308b\u3060\u3051\u3067\u5171\u901a\u306e\u30b3\u30fc\u30c9\u3092\u66f8\u3051\u308b\u3088\u3046\u306b\u3057\u307e\u3059\u3002

    #include <stdatomics.h>\n\n// C \u3067\u3082 C++ \u3067\u3082\u30b3\u30f3\u30d1\u30a4\u30eb\u53ef\u80fd\nint main(void)\n{\n    atomic_int a;\n    memory_order b = memory_order_acquire;\n    _Atomic(int) c;\n    return 0;\n}\n
    "},{"location":"standardization/cpp23/#scoped-enum-stdis_scoped_enumt-trait-p1048r1","title":"\u578b\u304c scoped enum \u3067\u3042\u308b\u304b\u3092\u8abf\u3079\u308b std::is_scoped_enum<T> trait (P1048R1)","text":"

    C++11 \u3067 scoped enum (enum class / enum struct) \u304c\u5c0e\u5165\u3055\u308c\u307e\u3057\u305f\u304c\u3001\u540c\u6642\u306b\u5c0e\u5165\u3055\u308c\u305f type trait std::is_enum<T> \u306f\u3001unscoped enum (enum) \u578b\u3068 scoped enum \u578b\u306e\u3069\u3061\u3089\u306b\u3082 true \u3092\u793a\u3057\u3001\u4e21\u8005\u3092\u533a\u5225\u3067\u304d\u307e\u305b\u3093\u3067\u3057\u305f\u3002

    C++23 \u3067\u306f\u578b\u304c scoped enum \u3067\u3042\u308b\u304b\u3092\u8abf\u3079\u308b std::is_scoped_enum<T> trait \u304c\u8ffd\u52a0\u3055\u308c\u3001\u4e21\u8005\u3092\u533a\u5225\u3067\u304d\u308b\u3088\u3046\u306b\u306a\u308a\u307e\u3059\u3002

    #include <iostream>\n#include <type_traits>\n\nenum UnscopedEnum {};\nenum class ScopedEnum {};\n\nint main()\n{\n    std::cout << std::boolalpha;\n\n    std::cout << std::is_enum_v<int> << '\\n';           // false    \n    std::cout << std::is_enum_v<UnscopedEnum> << '\\n';  // true\n    std::cout << std::is_enum_v<ScopedEnum> << '\\n';    // true\n\n    std::cout << std::is_scoped_enum_v<int> << '\\n';            // false\n    std::cout << std::is_scoped_enum_v<UnscopedEnum> << '\\n';   // false\n    std::cout << std::is_scoped_enum_v<ScopedEnum> << '\\n';     // true\n}\n

    \u306a\u304a\u3001Boost.TypeTraits \u306b\u306f\u3059\u3067\u306b\u6b21\u306e\u3088\u3046\u306b\u5b9f\u88c5\u3055\u308c\u3066\u3044\u307e\u3059\u3002

    namespace boost\n{\n    template <class T>\n    struct is_scoped_enum\n        : conjunction<is_enum<T>, negation<is_convertible<T, int>>>::type {};\n}\n
    "},{"location":"standardization/cpp23/#contains-p1679r3","title":"\u6587\u5b57\u5217\u30af\u30e9\u30b9\u306b\u3001\u6307\u5b9a\u3057\u305f\u6587\u5b57\u3084\u6587\u5b57\u5217\u304c\u542b\u307e\u308c\u3066\u3044\u308b\u304b\u3092\u8fd4\u3059 .contains() \u30e1\u30f3\u30d0\u95a2\u6570 (P1679R3)","text":"

    std::string \u3084 std::string_view \u306b\u3042\u308b\u6587\u5b57\u3084\u6587\u5b57\u5217\u304c\u542b\u307e\u308c\u3066\u3044\u308b\u304b\u3092\u8abf\u3079\u308b\u306b\u306f\u3001\u6b21\u306e\u3088\u3046\u306b .find() \u3092\u4f7f\u3063\u305f\u5c11\u3057\u9060\u56de\u308a\u306a\u30b3\u30fc\u30c9\u3092\u66f8\u304f\u5fc5\u8981\u304c\u3042\u308a\u307e\u3057\u305f\u3002

    #include <iostream>\n#include <string>\n\nint main()\n{\n    std::string s = \"C++23\";\n\n    std::cout << std::boolalpha;\n\n    // '4' \u304c\u542b\u307e\u308c\u3066\u3044\u308b\u304b\u3092\u8abf\u3079\u308b\n    std::cout << (s.find('4') != std::string::npos) << '\\n'; // false\n\n    // \"++\" \u304c\u542b\u307e\u308c\u3066\u3044\u308b\u304b\u3092\u8abf\u3079\u308b\n    std::cout << (s.find(\"++\") != std::string::npos) << '\\n'; // true\n}\n

    C++23 \u3067\u306f std::basic_string \u3068 std::basic_string_view \u306b\u3001\u6307\u5b9a\u3057\u305f\u6587\u5b57\u3084\u6587\u5b57\u5217\u304c\u542b\u307e\u308c\u308b\u304b\u3092\u8fd4\u3059 .contains(basic_string_view), .contains(charT), .contains(const charT*) \u30e1\u30f3\u30d0\u95a2\u6570\u304c\u8ffd\u52a0\u3055\u308c\u3001\u3088\u308a\u7c21\u6f54\u306b\u66f8\u3051\u308b\u3088\u3046\u306b\u306a\u308a\u307e\u3057\u305f\u3002

    #include <iostream>\n#include <string>\n\nint main()\n{\n    std::string s = \"C++23\";\n\n    std::cout << std::boolalpha;\n\n    // '4' \u304c\u542b\u307e\u308c\u3066\u3044\u308b\u304b\u3092\u8abf\u3079\u308b\n    std::cout << s.contains('4') << '\\n'; // false\n\n    // \"++\" \u304c\u542b\u307e\u308c\u3066\u3044\u308b\u304b\u3092\u8abf\u3079\u308b\n    std::cout << s.contains(\"++\") << '\\n'; // true\n}\n

    \u306a\u304a\u3001\u6307\u5b9a\u3057\u305f\u6587\u5b57\u5217\u304b\u3089\u59cb\u307e\u308b\u304b\u3092\u8abf\u3079\u308b .starts_with(), \u6307\u5b9a\u3057\u305f\u6587\u5b57\u5217\u3067\u7d42\u308f\u308b\u304b\u3092\u8abf\u3079\u308b .ends_with() \u30e1\u30f3\u30d0\u95a2\u6570\u304c C++20 \u3067\u8ffd\u52a0\u3055\u308c\u3066\u3044\u307e\u3059\u3002

    "},{"location":"standardization/cpp23/#stdto_underlying-p1682r3","title":"\u5217\u6319\u578b\u306e\u5024\u3092\u57fa\u5e95\u578b\u306b\u5909\u63db\u3059\u308b std::to_underlying() (P1682R3)","text":"

    \u3053\u308c\u307e\u3067 enum class \u3092\u57fa\u5e95\u578b\u306e\u6574\u6570\u5024\u3078\u9069\u5207\u306b\u5909\u63db\u3059\u308b\u306b\u306f static_cast<std::underlying_type_t<Enum>>(e) \u3068\u66f8\u304f\u5fc5\u8981\u304c\u3042\u308a\u307e\u3057\u305f\u3002C++23 \u3067\u306f\u3053\u308c\u3092 std::to_underlying(e) \u3068\u66f8\u3051\u308b\u3088\u3046\u306b\u306a\u308a\u307e\u3057\u305f\u3002

    #include <iostream>\n#include <utility>\n\nenum class State : char\n{\n    Open, Closed\n};\n\nenum class Terrain\n{\n    Open, Mountain, River, Ocean\n};\n\nint main()\n{\n    auto a = std::to_underlying(State::Open); // c \u306f char\n\n    auto b = std::to_underlying(Terrain::Mountain); // b \u306f int\n}\n
    "},{"location":"standardization/cpp23/#stdstringstream-stdspan-stdspanstream-p0448r4","title":"std::stringstream \u3068\u7570\u306a\u308a\u3001\u5185\u90e8\u30d0\u30c3\u30d5\u30a1\u306b std::span \u3092\u7528\u3044\u308b std::spanstream (P0448R4)","text":"

    std::stringstream \u306f\u5185\u90e8\u306e\u30d0\u30c3\u30d5\u30a1\u3092\u52d5\u7684\u306b\u78ba\u4fdd\u3059\u308b\u3082\u306e\u3067\u3057\u305f\u304c\u3001C++23 \u3067\u8ffd\u52a0\u3055\u308c\u305f std::spanstream \u306f std::span \u3092\u30d0\u30c3\u30d5\u30a1\u3068\u3057\u3066\u7528\u3044\u308b\u3053\u3068\u304c\u3067\u304d\u308b\u3088\u3046\u306b\u306a\u308a\u307e\u3057\u305f\u3002\u4f8b\u3048\u3070\u3001\u30b9\u30bf\u30c3\u30af\u306b\u78ba\u4fdd\u3057\u305f\u56fa\u5b9a\u30b5\u30a4\u30ba\u306e\u30d0\u30c3\u30d5\u30a1\u3092\u5272\u308a\u5f53\u3066\u308b\u3053\u3068\u304c\u3067\u304d\u307e\u3059\u3002

    # include <iostream>\n# include <string_view>\n# include <spanstream>\n# include <sstream>\n\nint main()\n{\n    const char input[] = \"11 22 33\";\n\n    // C++23\n    {\n        std::ispanstream is{ input }; // span \u3068\u3057\u3066\u30d0\u30c3\u30d5\u30a1\u3092\u6e21\u3059\n        int a, b, c;\n        is >> a >> b >> c;\n\n        char buffer[30]{};\n        std::ospanstream os{ buffer }; // span \u3068\u3057\u3066\u30d0\u30c3\u30d5\u30a1\u3092\u6e21\u3059\n        os << (a * 100) << (b * 100) << (c * 100);\n        std::cout << std::string_view{ os.span() } << '\\n';\n    }\n\n    // (\u6bd4\u8f03) std::stringstream\n    {\n        std::istringstream is{ input }; // std::string \u304c\u4f5c\u3089\u308c\u308b\n        int a, b, c;\n        is >> a >> b >> c;\n\n        std::ostringstream os; // \u5185\u90e8\u30d0\u30c3\u30d5\u30a1\u306f\u52d5\u7684\u306b\u78ba\u4fdd\u3055\u308c\u308b\n        os << (a * 100) << (b * 100) << (c * 100);\n        std::cout << os.str() << '\\n';\n    }\n}\n
    "},{"location":"standardization/cpp23/#type_infooperator-constexpr-p1328r1","title":"type_info::operator==() \u304c constexpr \u306b (P1328R1)","text":"

    C++20 \u3067 typeid \u304c constexpr \u306e\u6587\u8108\u3067\u4f7f\u3048\u308b\u3088\u3046\u306b\u306a\u308a\u307e\u3057\u305f\u304c\u3001\u623b\u308a\u5024\u306e std::type_info \u306b\u306f constexpr \u306e\u30e1\u30f3\u30d0\u95a2\u6570\u304c\u7121\u304f\u5b9f\u7528\u6027\u304c\u3042\u308a\u307e\u305b\u3093\u3067\u3057\u305f\u3002C++23 \u3067\u306f std::type_info::operator== \u304c constexpr \u306b\u306a\u308a\u307e\u3057\u305f\u3002

    #include <iostream>\n#include <typeinfo>\n\nstruct IShape\n{\n    virtual ~IShape() = default;\n};\n\nstruct Circle : IShape\n{\n    double x, y, r;\n};\n\nint main()\n{\n    if constexpr (typeid(IShape) != typeid(Circle))\n    {\n        std::cout << \"typeid(IShape) != typeid(Circle))\\n\";\n    }\n}\n
    "},{"location":"standardization/cpp23/#stdstack-stdqueue-p1425r4","title":"std::stack \u3068 std::queue \u306b\u3001\u30a4\u30c6\u30ec\u30fc\u30bf\u30da\u30a2\u3092\u3068\u308b\u30b3\u30f3\u30b9\u30c8\u30e9\u30af\u30bf\u30aa\u30fc\u30d0\u30fc\u30ed\u30fc\u30c9\u3092\u8ffd\u52a0 (P1425R4)","text":"

    std::stack \u3068 std::queue \u306b\u306f\u3001\u30a4\u30c6\u30ec\u30fc\u30bf\u30da\u30a2\u3092\u3068\u308b\u30b3\u30f3\u30b9\u30c8\u30e9\u30af\u30bf\u304c\u7121\u304f\u3001\u4ed6\u306e\u30b3\u30f3\u30c6\u30ca\u3084\u30b3\u30f3\u30c6\u30ca\u30a2\u30c0\u30d7\u30bf\u3068\u4e00\u8cab\u6027\u304c\u7121\u304b\u3063\u305f\u305f\u3081\u3001C++23 \u3067\u8ffd\u52a0\u3055\u308c\u307e\u3057\u305f\u3002\u3053\u308c\u306f\u3001C++23 \u3067\u8ffd\u52a0\u3055\u308c\u305f ranges::to \u306e\u5185\u90e8\u5b9f\u88c5\u304c\u8907\u96d1\u306b\u306a\u308b\u306e\u3092\u9632\u3050\u3053\u3068\u306b\u3082\u8ca2\u732e\u3057\u307e\u3059\u3002

    #include <vector>\n#include <stack>\n#include <queue>\n\nint main()\n{\n    std::vector<int> v = { 10, 20, 30, 40 };\n    std::stack<int> s(v.begin(), v.end());\n    std::queue<int> q(v.begin(), v.end());\n}\n
    "},{"location":"standardization/cppx/","title":"C++23, C++26 \u4ee5\u964d\u306b\u5411\u3051\u305f\u63d0\u6848","text":"

    Info

    C++23 \u306e\u898f\u683c\u30c9\u30e9\u30d5\u30c8\u5165\u308a\u304c\u6c7a\u307e\u3063\u305f\u6a5f\u80fd\u306f C++23 \u306e\u65b0\u6a5f\u80fd \u306b\u79fb\u52d5\u3057\u307e\u3059\u3002

    C++ \u6a19\u6e96\u5316\u59d4\u54e1\u4f1a\u3067\u8b70\u8ad6\u304c\u9032\u884c\u4e2d\u306e\u304a\u3082\u306a\u63d0\u6848\u3067\u3059\u3002\u307e\u3060\u63d0\u6848\u6bb5\u968e\u3067\u3042\u308b\u305f\u3081\u3001\u59d4\u54e1\u4f1a\u306b\u3088\u3063\u3066\u59a5\u5f53\u3067\u306a\u3044\u3068\u5224\u65ad\u3055\u308c\u305f\u5834\u5408\u306f\u898f\u683c\u306b\u306f\u63a1\u629e\u3055\u308c\u307e\u305b\u3093\u3002\u63d0\u6848\u5185\u5bb9\u306f\u63a1\u629e\u307e\u3067\u4f55\u5ea6\u3082\u5909\u66f4\u3055\u308c\u308b\u3053\u3068\u304c\u3042\u308a\u307e\u3059\u3002

    "},{"location":"standardization/cppx/#_1","title":"\u6a19\u6e96\u30e9\u30a4\u30d6\u30e9\u30ea \u30e2\u30b8\u30e5\u30fc\u30eb","text":"

    <iostream> \u3084 <vector> \u306a\u3069\u3001\u3059\u3079\u3066\u306e C++ \u6a19\u6e96\u30e9\u30a4\u30d6\u30e9\u30ea\u30d8\u30c3\u30c0\u3092\u30e2\u30b8\u30e5\u30fc\u30eb\u3068\u3057\u3066\u63d0\u4f9b\u3059\u308b\u63d0\u6848\u3067\u3059\u3002\u8a00\u8a9e\u6a5f\u80fd\u3068\u3057\u3066\u306e\u30e2\u30b8\u30e5\u30fc\u30eb\u306f C++20 \u306b\u5c0e\u5165\u3055\u308c\u307e\u3057\u305f\u304c\u3001\u6a19\u6e96\u30e9\u30a4\u30d6\u30e9\u30ea\u3078\u306e\u5c0e\u5165\u306f\u8b70\u8ad6\u304c\u9593\u306b\u5408\u308f\u305a\u3001C++23 \u306b\u5148\u9001\u308a\u3055\u308c\u307e\u3057\u305f\u3002\u6a19\u6e96\u30e9\u30a4\u30d6\u30e9\u30ea\u306e\u30e2\u30b8\u30e5\u30fc\u30eb\u3078\u306e\u79fb\u884c\u306b\u5408\u308f\u305b\u3066\u3001\u6a19\u6e96\u30e9\u30a4\u30d6\u30e9\u30ea\u3092\u518d\u7de8\u6210\u3059\u308b\u63d0\u6848\u3082\u51fa\u3055\u308c\u3066\u3044\u307e\u3059\u3002

    "},{"location":"standardization/cppx/#operator","title":"operator[] \u306b\u8907\u6570\u306e\u5f15\u6570","text":"

    m[i, j, k] \u306e\u3088\u3046\u306b\u3001operator[] \u306e\u5f15\u6570\u306b\u8907\u6570\u306e\u5024\u3092\u6e21\u305b\u308b\u3088\u3046\u306b\u3059\u308b\u63d0\u6848\u3067\u3059\u3002\u591a\u6b21\u5143\u914d\u5217\u306e\u8981\u7d20\u306b\u7c21\u6f54\u306a\u5f0f\u3067\u30a2\u30af\u30bb\u30b9\u3067\u304d\u308b\u3088\u3046\u306b\u306a\u308a\u307e\u3059\u3002\u3053\u306e\u66f8\u304d\u65b9\u306f\u3001C++17 \u898f\u683c\u3067\u306f\u30b3\u30f3\u30de\u6f14\u7b97\u5b50\u3068\u89e3\u91c8\u3055\u308c\u3066 m[k] \u306b\u306a\u3063\u3066\u3057\u307e\u3046\u305f\u3081\u3001\u307e\u305a\u306f\u73fe\u884c\u306e\u6587\u6cd5\u3092 deprecated \u306b\u3059\u308b\u63d0\u6848\u304c\u63d0\u51fa\u3055\u308c\u3066\u3044\u307e\u3059\u3002std::span \u306e\u591a\u6b21\u5143\u7248\u3067\u3042\u308b std::mdspan \u306e\u63d0\u6848\u3067\u306e\u6d3b\u7528\u3082\u671f\u5f85\u3055\u308c\u307e\u3059\u3002

    "},{"location":"standardization/cppx/#api","title":"\u4f4e\u30ec\u30d9\u30eb \u30aa\u30fc\u30c7\u30a3\u30aa API","text":"

    \u97f3\u58f0\u518d\u751f\u30fb\u9332\u97f3\u3092\u884c\u3046\u4f4e\u30ec\u30d9\u30eb API std::audio \u3092\u8ffd\u52a0\u3059\u308b\u63d0\u6848\u3067\u3059\u3002\u4ee5\u524d\u9813\u632b\u3057\u305f 2D Graphics API \u306e\u6a19\u6e96\u5316\u306b\u6bd4\u3079\u308c\u3070\u3001\u67af\u308c\u3066\u3044\u308b\u6280\u8853\u306a\u306e\u3067\u5b9f\u73fe\u53ef\u80fd\u6027\u306f\u4f4e\u304f\u306f\u306a\u3055\u305d\u3046\u3067\u3059\u3002\u6ce2\u5f62\u30c7\u30fc\u30bf\u3092\u30aa\u30fc\u30c7\u30a3\u30aa\u30c7\u30d0\u30a4\u30b9\u3068\u3084\u308a\u53d6\u308a\u3059\u308b\u3053\u3068\u304c\u4e3b\u8981\u306a\u5f79\u5272\u3067\u3001\u97f3\u58f0\u30b3\u30fc\u30c7\u30c3\u30af\u3084\u30d5\u30a3\u30eb\u30bf\u306a\u3069\u306e\u6a5f\u80fd\u306f\u63d0\u4f9b\u3057\u307e\u305b\u3093\u3002\u5b9f\u9a13\u7684\u306a\u5b9f\u88c5\u3092\u516c\u958b\u3057\u3066\u3001\u8a2d\u8a08\u306b\u95a2\u3059\u308b\u30d5\u30a3\u30fc\u30c9\u30d0\u30c3\u30af\u3092\u96c6\u3081\u3066\u3044\u308b\u6bb5\u968e\u3067\u3059\u3002

    "},{"location":"standardization/cppx/#_2","title":"\u30cd\u30c3\u30c8\u30ef\u30fc\u30af","text":"

    \u30cd\u30c3\u30c8\u30ef\u30fc\u30af\u6a5f\u80fd\u3092\u6a19\u6e96\u30e9\u30a4\u30d6\u30e9\u30ea\u306b\u5c0e\u5165\u3059\u308b\u63d0\u6848\u3067\u3059\u3002Boost.Asio \u3092\u30d9\u30fc\u30b9\u306b\u3001\u30bd\u30b1\u30c3\u30c8\u901a\u4fe1\u3001\u540d\u524d\u89e3\u6c7a\u3001\u30a4\u30f3\u30bf\u30fc\u30cd\u30c3\u30c8\u30d7\u30ed\u30c8\u30b3\u30eb\u3001\u30bf\u30a4\u30de\u30fc\u3001\u30d0\u30c3\u30d5\u30a1\u3001\u975e\u540c\u671f\u51e6\u7406\u306e\u305f\u3081\u306e\u5404\u7a2e\u6a5f\u80fd\u3092\u5b9f\u88c5\u3059\u308b\u4e88\u5b9a\u3067\u3059\u3002

    "},{"location":"standardization/cppx/#_3","title":"\u30ea\u30d5\u30ec\u30af\u30b7\u30e7\u30f3","text":"

    C++ \u306b\u30ea\u30d5\u30ec\u30af\u30b7\u30e7\u30f3\u3092\u5c0e\u5165\u3059\u308b\u63d0\u6848\u3067\u3059\u3002C# \u306e\u3088\u3046\u306a\u52d5\u7684\u306a\u30ea\u30d5\u30ec\u30af\u30b7\u30e7\u30f3\u3067\u306f\u306a\u304f\u3001\u30b3\u30f3\u30d1\u30a4\u30eb\u6642\u306b\u60c5\u5831\u3092\u53d6\u5f97\u3059\u308b\u9759\u7684\u306a\u30ea\u30d5\u30ec\u30af\u30b7\u30e7\u30f3\u3067\u3059\u3002

    #include <experimental/reflect>\n\nusing namespace std::experimental::reflect;\n\nconstexpr void f(int arg1, int arg2);\n\nusing f_mobj = reflexpr(f(0, 1));\n\nauto name = get_name_v<get_element_t<0, get_parameters_t<f_mobj>>>; // \"arg1\"\n\nauto is_constexpr_function = is_constexpr<f_mobj>::value; // true\n

    \u3053\u306e\u6a5f\u80fd\u3092\u524d\u63d0\u3068\u3057\u305f\u30e1\u30bf\u30af\u30e9\u30b9\u306e\u63d0\u6848\u3082\u8b70\u8ad6\u304c\u9032\u3093\u3067\u3044\u307e\u3059\u3002

    "},{"location":"standardization/cppx/#_4","title":"\u30d1\u30bf\u30fc\u30f3\u30de\u30c3\u30c1\u30f3\u30b0","text":"

    std::tuple \u3084 std::variant \u3067 C++ \u306b\u304a\u3051\u308b\u4ee3\u6570\u7684\u30c7\u30fc\u30bf\u578b\u306e\u8868\u73fe\u304c\u5e83\u304c\u308a\u307e\u3057\u305f\u304c\u3001\u305d\u308c\u3089\u3092\u6271\u3046\u305f\u3081\u306e std::apply \u3084 std::visit \u306f\u8907\u96d1\u3067\u591a\u304f\u306e\u5236\u7d04\u304c\u3042\u308a\u307e\u3059\u3002C++ \u4ee5\u5916\u306e\u30d7\u30ed\u30b0\u30e9\u30df\u30f3\u30b0\u8a00\u8a9e\u306b\u306a\u3089\u3044\u3001\u30d1\u30bf\u30fc\u30f3\u30de\u30c3\u30c1\u30f3\u30b0\u3092\u5c0e\u5165\u3057\u3066\u3053\u306e\u554f\u984c\u3092\u89e3\u6c7a\u3059\u308b\u63d0\u6848\u3067\u3059\u3002\u3053\u306e\u63d0\u6848\u3067\u306f\u3001\u3088\u308a\u5ba3\u8a00\u7684\u3067\u69cb\u9020\u5316\u3055\u308c\u305f switch \u6587\u3068\u3057\u3066\u3001inspect \u5f0f\u3068\u3044\u3046\u65b0\u3057\u3044\u6587\u6cd5\u306e\u5c0e\u5165\u3092\u63d0\u6848\u3057\u3066\u3044\u307e\u3059\u3002

    \u30d1\u30bf\u30fc\u30f3\u30de\u30c3\u30c1\u30f3\u30b0\u306e\u5b9f\u9a13\u7684\u306a\u5b9f\u88c5\u3092 Compiler Explorer \u4e0a\u3067\u8a66\u3059\u3053\u3068\u304c\u3067\u304d\u307e\u3059\u3002

    // inspect \u5f0f\u306e\u6587\u6cd5\ninspect constexpr_opt (init-statement_opt condition) trailing-return-type_opt\n{\n    pattern guard_opt => statement\n    pattern guard_opt => !_opt { statement-seq }\n    ...\n};\n
    "},{"location":"standardization/cppx/#_5","title":"\u6574\u6570\u306e\u30de\u30c3\u30c1\u30f3\u30b0","text":"\u73fe\u5728\u63d0\u6848
    switch (code)\n{\n    case 200: std::cout << \"OK\\n\"; break;\n    case 404: std::cout << \"Not Found\\n\"; break;\n    default : std::cout << \"don't care\\n\";\n}\n
    inspect (code)\n{\n    200 => { std::cout << \"OK\\n\" }\n    404 => { std::cout << \"Not Found\\n\" }\n    __  => { std::cout << \"don't care\\n\" } // __ \u306f\u30ef\u30a4\u30eb\u30c9\u30ab\u30fc\u30c9\u30d1\u30bf\u30fc\u30f3\n};\n
    "},{"location":"standardization/cppx/#_6","title":"\u6587\u5b57\u5217\u306e\u30de\u30c3\u30c1\u30f3\u30b0","text":"\u73fe\u5728\u63d0\u6848
    if (s == \"png\")\n{\n    std::cout << \"PNG Image\\n\";\n}\nelse if (s == \"jpg\")\n{\n    std::cout << \"JPEG Image\\n\";\n}\nelse\n{\n    std::cout << \"Not supported\\n\";\n}\n
    inspect (s)\n{\n    \"png\" => { std::cout << \"PNG Image\\n\"; }\n    \"jpg\" => { std::cout << \"JPEG Image\\n\"; }\n    __    => { std::cout << \"Not supported\\n\"; }\n};\n
    "},{"location":"standardization/cppx/#tuples","title":"Tuples \u306e\u30de\u30c3\u30c1\u30f3\u30b0","text":"\u73fe\u5728\u63d0\u6848
    auto&& [x, y] = pos;\nif (x == 0 && y == 0)\n{\n    std::cout << \"on the origin\\n\";\n}\nelse if (y == 0)\n{\n    std::cout << \"on X-axis\\n\";\n}\nelse if (x == 0)\n{\n    std::cout << \"on Y-axis\\n\";\n}\nelse\n{\n    std::cout << x << \", \" << y << '\\n';\n}\n
    inspect (pos)\n{\n    [0, 0] => { std::cout << \"on the origin\\n\"; }\n    [x, 0] => { std::cout << \"on the X-axis\\n\"; }\n    [0, y] => { std::cout << \"on the Y-axis\\n\"; }\n    [x, y] => { std::cout << x << \", \" << y << '\\n'; }\n};\n
    "},{"location":"standardization/cppx/#variants","title":"Variants \u306e\u30de\u30c3\u30c1\u30f3\u30b0","text":"\u73fe\u5728\u63d0\u6848
    struct Visitor\n{\n    void operator()(int i) const\n    {\n        std::cout << \"int: \" << i << '\\n';\n    }\n\n    void operator()(float f) const\n    {\n        std::cout << \"float: \" << f << '\\n';\n    }\n};\n\nint main()\n{\n    std::variant<int, float> v = 3.14f;\n\n    std::visit(Visitor{}, v);\n}\n
    int main()\n{\n    std::variant<int, float> v = 3.14f;\n\n    inspect (v)\n    {\n        <int> i   => { std::cout << \"int: \" << i << '\\n'; }\n        <float> f => { std::cout << \"float: \" << f << '\\n'; }\n    }\n};\n
    "},{"location":"standardization/cppx/#polymorphic-types","title":"Polymorphic Types \u306e\u30de\u30c3\u30c1\u30f3\u30b0","text":"\u73fe\u5728\u63d0\u6848
    struct Shape\n{\n    virtual ~Shape() = default;\n    virtual double area() const = 0;\n};\n\nstruct Circle : Shape\n{\n    double radius;\n    double area() const override\n    {\n        return std::numbers::pi * radius * radius;\n    }\n};\n\nstruct Rectangle : Shape\n{\n    double width, height;\n    double area() const override\n    {\n        return width * height;\n    }\n};\n
    struct Shape\n{\n    virtual ~Shape() = default;\n};\n\nstruct Circle : Shape\n{\n    double radius;\n};\n\nstruct Rectangle : Shape\n{\n    double width, height;\n};\n\ndouble Area(const Shape& shape)\n{\n    return inspect (shape)\n    {\n        <Circle>    [r]     => std::numbers::pi * r * r;\n        <Rectangle> [w, h]  => w * h;\n    }\n};\n
    "},{"location":"standardization/cppx/#_7","title":"\u62e1\u5f35\u6d6e\u52d5\u5c0f\u6570\u70b9\u6570\u578b","text":"

    float, double, long double \u4ee5\u5916\u306e\u6d6e\u52d5\u5c0f\u6570\u70b9\u6570\u578b\u306e\u5b9f\u88c5\u3092\u53ef\u80fd\u306b\u3059\u308b\u63d0\u6848\u3067\u3059\u3002\u30b3\u30f3\u30d4\u30e5\u30fc\u30bf\u30b0\u30e9\u30d5\u30a3\u30c3\u30af\u30b9\u3084\u6a5f\u68b0\u5b66\u7fd2\u5206\u91ce\u3067\u4f7f\u7528\u983b\u5ea6\u304c\u5897\u3048\u3066\u3044\u308b\u534a\u7cbe\u5ea6 (16-bit) \u6d6e\u52d5\u5c0f\u6570\u70b9\u6570\u578b\u3092\u3001\u7d44\u307f\u8fbc\u307f\u578b\u3068\u3057\u3066\u63d0\u4f9b\u3067\u304d\u308b\u3088\u3046\u306b\u3059\u308b\u3053\u3068\u304c\u4e3b\u306a\u76ee\u7684\u3067\u3059\u3002

    "},{"location":"standardization/cppx/#unicode","title":"Unicode \u540d\u306b\u3088\u308b\u6587\u5b57\u30a8\u30b9\u30b1\u30fc\u30d7","text":"

    Python \u306a\u3069\u3067\u63a1\u7528\u3055\u308c\u3066\u3044\u308b\u3001Unicode \u540d\u306b\u3088\u308b\u6587\u5b57\u30a8\u30b9\u30b1\u30fc\u30d7\u3092\u5c0e\u5165\u3059\u308b\u63d0\u6848\u3067\u3059\u3002\u4e0d\u53ef\u8996\u6587\u5b57\u3084\u4f3c\u3066\u3044\u308b\u5b57\u5f62\u3092\u6587\u5b57 / \u6587\u5b57\u5217\u30ea\u30c6\u30e9\u30eb\u3067\u8a18\u8ff0\u3059\u308b\u969b\u306b\u5f79\u306b\u7acb\u3061\u307e\u3059\u3002

    std::string a =\"\\N{ZERO WIDTH SPACE}\"; // \"\u200b\" (\u4e0d\u53ef\u8996\u306e\u7a7a\u767d)\nstd::string b = \"\\N{GREEK CAPITAL LETTER OMEGA}\"; // \"\u03a9\"\nstd::string c = \"\\N{OHM SIGN}\"; // \"\u2126\"\n
    "},{"location":"standardization/cppx/#stdstringoperatorchar","title":"std::string::operator=(char) \u306e\u554f\u984c\u306e\u89e3\u6d88","text":"

    std::string::operator=(char) \u306b\u3088\u3063\u3066\u6b21\u306e\u3088\u3046\u306a\u30b3\u30fc\u30c9\u304c\u30b3\u30f3\u30d1\u30a4\u30eb\u3067\u304d\u3066\u3057\u307e\u3046\u554f\u984c\u306e\u89e3\u6c7a\u3092\u56f3\u308b\u63d0\u6848\u3067\u3059\u3002\u3053\u306e\u95a2\u6570\u81ea\u4f53\u3092 deprecated \u306b\u3059\u308b\u3053\u3068\u3082\u89e3\u6c7a\u6cd5\u306e\u5019\u88dc\u3068\u3057\u3066\u6319\u3052\u3089\u308c\u3066\u3044\u307e\u3059\u3002

    std::string s;\ns = 48.0;\nstd::cout << s << '\\n';\n
    "},{"location":"standardization/cppx/#stdprint","title":"std::print()","text":"

    C++20 \u306e std::format \u3092\u30d9\u30fc\u30b9\u306b\u3057\u305f\u65b0\u3057\u3044\u6a19\u6e96\u51fa\u529b API, std::print() \u3092\u5c0e\u5165\u3059\u308b\u63d0\u6848\u3067\u3059\u3002std::cout \u306b\u6bd4\u3079\u3066\u3001Unicode \u5bfe\u5fdc\u3001\u4f7f\u3044\u3084\u3059\u3055\u3084\u5b9f\u884c\u6642\u6027\u80fd\u306e\u5411\u4e0a\u3001\u30d0\u30a4\u30ca\u30ea\u30b5\u30a4\u30ba\u306e\u524a\u6e1b\u304c\u671f\u5f85\u3055\u308c\u307e\u3059\u3002

    std::print(\"Hello, {}!\", name);\n
    "},{"location":"standardization/cppx/#_8","title":"\u30bd\u30fc\u30c8\u6e08\u307f\u914d\u5217\u306b\u3088\u308b\u9023\u60f3\u30b3\u30f3\u30c6\u30ca","text":"

    \u30bd\u30fc\u30c8\u6e08\u307f\u914d\u5217\uff08\u30c7\u30d5\u30a9\u30eb\u30c8\u3067\u306f vector\uff09\u3092\u4f7f\u3063\u305f\u9023\u60f3\u30b3\u30f3\u30c6\u30ca\u5b9f\u88c5 std::flat_set, std::flat_multiset, std::flat_map, std::flat_multimap \u3092\u6a19\u6e96\u30e9\u30a4\u30d6\u30e9\u30ea\u306b\u8ffd\u52a0\u3059\u308b\u63d0\u6848\u3067\u3059\u3002

    "},{"location":"standardization/cppx/#executors","title":"Executors","text":""},{"location":"standardization/cppx/#_9","title":"\u30b3\u30eb\u30fc\u30c1\u30f3\u306e\u30e9\u30a4\u30d6\u30e9\u30ea\u30b5\u30dd\u30fc\u30c8","text":""},{"location":"standardization/cppx/#_10","title":"\u5951\u7d04\u30d7\u30ed\u30b0\u30e9\u30df\u30f3\u30b0","text":""},{"location":"standardization/header/","title":"C++ \u6a19\u6e96\u30e9\u30a4\u30d6\u30e9\u30ea","text":"

    C++ \u306e\u898f\u683c\u3067\u5b9a\u3081\u3089\u308c\u305f\u6a19\u6e96\u30e9\u30a4\u30d6\u30e9\u30ea\u306b\u542b\u307e\u308c\u308b\u30d8\u30c3\u30c0\u306e\u4e00\u89a7\u3067\u3059\u3002 \u30ea\u30d5\u30a1\u30ec\u30f3\u30b9 Web \u30b5\u30a4\u30c8\u306f

    \u306b\u5bfe\u5fdc\u3057\u3066\u3044\u307e\u3059\u3002

    "},{"location":"standardization/header/#_1","title":"\u6a19\u6e96\u30e9\u30a4\u30d6\u30e9\u30ea","text":"\u30d8\u30c3\u30c0 \u30ea\u30d5\u30a1\u30ec\u30f3\u30b9 \u5b9f\u88c5 \u30d0\u30fc\u30b8\u30e7\u30f3 <algorithm> en / jp / cpprefjp libstdc++ / libc++ / MSVC <any> en / jp / cpprefjp libstdc++ / libc++ / MSVC since C++17 <array> en / jp / cpprefjp libstdc++ / libc++ / MSVC since C++11 <atomic> en / jp / cpprefjp libstdc++ / libc++ / MSVC since C++11 <barrier> en / jp / cpprefjp libstdc++ / libc++ / MSVC since C++20 <bit> en / jp / cpprefjp libstdc++ / libc++ / MSVC since C++20 <bitset> en / jp / cpprefjp libstdc++ / libc++ / MSVC <cassert> en / jp / cpprefjp libstdc++ / libc++ / MSVC <cctype> en / jp / cpprefjp libstdc++ / libc++ / MSVC <cerrno> en / jp / cpprefjp libstdc++ / libc++ / MSVC <cfenv> en / jp / cpprefjp libstdc++ / libc++ / MSVC since C++11 <cfloat> en / jp / cpprefjp libstdc++ / libc++ / MSVC <charconv> en / jp / cpprefjp libstdc++ / libc++ / MSVC since C++17 <chrono> en / jp / cpprefjp libstdc++ / libc++ / MSVC since C++11 <cinttypes> en / jp / cpprefjp libstdc++ / libc++ / MSVC since C++11 <climits> en / jp / cpprefjp libstdc++ / libc++ / MSVC <clocale> en / jp / cpprefjp libstdc++ / libc++ / MSVC <cmath> en / jp / cpprefjp libstdc++ / libc++ / MSVC <compare> en / jp / cpprefjp libstdc++ / libc++ / MSVC since C++20 <complex> en / jp / cpprefjp libstdc++ / libc++ / MSVC <concepts> en / jp / cpprefjp libstdc++ / libc++ / MSVC since C++20 <condition_variable> en / jp / cpprefjp libstdc++ / libc++ / MSVC since C++11 <coroutine> en / jp / cpprefjp libstdc++ / libc++ / MSVC since C++20 <csetjmp> en / jp / cpprefjp libstdc++ / libc++ / MSVC <csignal> en / jp / cpprefjp libstdc++ / libc++ / MSVC <cstdarg> en / jp / cpprefjp libstdc++ / libc++ / MSVC <cstddef> en / jp / cpprefjp libstdc++ / libc++ / MSVC <cstdint> en / jp / cpprefjp libstdc++ / libc++ / MSVC since C++11 <cstdio> en / jp / cpprefjp libstdc++ / libc++ / MSVC <cstdlib> en / jp / cpprefjp libstdc++ / libc++ / MSVC <cstring> en / jp / cpprefjp libstdc++ / libc++ / MSVC <ctime> en / jp / cpprefjp libstdc++ / libc++ / MSVC <cuchar> en / jp / cpprefjp libstdc++ / libc++ / MSVC since C++11 <cwchar> en / jp / cpprefjp libstdc++ / libc++ / MSVC <cwctype> en / jp / cpprefjp libstdc++ / libc++ / MSVC <debugging> en / jp / cpprefjp libstdc++ / libc++ / MSVC since C++26 <deque> en / jp / cpprefjp libstdc++ / libc++ / MSVC <exception> en / jp / cpprefjp libstdc++ / libc++ / MSVC <execution> en / jp / cpprefjp libstdc++ / libc++ / MSVC since C++17 <expected> en / jp / cpprefjp libstdc++ / libc++ / MSVC since C++23 <filesystem> en / jp / cpprefjp libstdc++ / libc++ / MSVC since C++17 <flat_set> en / jp / cpprefjp libstdc++ / libc++ / MSVC since C++23 <flat_map> en / jp / cpprefjp libstdc++ / libc++ / MSVC since C++23 <format> en / jp / cpprefjp libstdc++ / libc++ / MSVC since C++20 <forward_list> en / jp / cpprefjp libstdc++ / libc++ / MSVC since C++11 <fstream> en / jp / cpprefjp libstdc++ / libc++ / MSVC <functional> en / jp / cpprefjp libstdc++ / libc++ / MSVC <future> en / jp / cpprefjp libstdc++ / libc++ / MSVC since C++11 <generator> en / jp / cpprefjp libstdc++ / libc++ / MSVC since C++23 <hazard_pointer> en / jp / cpprefjp libstdc++ / libc++ / MSVC since C++26 <initializer_list> en / jp / cpprefjp libstdc++ / libc++ / MSVC since C++11 <iomanip> en / jp / cpprefjp libstdc++ / libc++ / MSVC <ios> en / jp / cpprefjp libstdc++ / libc++ / MSVC <iosfwd> en / jp / cpprefjp libstdc++ / libc++ / MSVC <iostream> en / jp / cpprefjp libstdc++ / libc++ / MSVC <istream> en / jp / cpprefjp libstdc++ / libc++ / MSVC <iterator> en / jp / cpprefjp libstdc++ / libc++ / MSVC <latch> en / jp / cpprefjp libstdc++ / libc++ / MSVC since C++20 <limits> en / jp / cpprefjp libstdc++ / libc++ / MSVC <linalg> en / jp / cpprefjp libstdc++ / libc++ / MSVC since C++26 <list> en / jp / cpprefjp libstdc++ / libc++ / MSVC <locale> en / jp / cpprefjp libstdc++ / libc++ / MSVC <map> en / jp / cpprefjp libstdc++ / libc++ / MSVC <mdspan> en / jp / cpprefjp libstdc++ / libc++ / MSVC since C++23 <memory> en / jp / cpprefjp libstdc++ / libc++ / MSVC <memory_resource> en / jp / cpprefjp libstdc++ / libc++ / MSVC since C++17 <mutex> en / jp / cpprefjp libstdc++ / libc++ / MSVC since C++11 <new> en / jp / cpprefjp libstdc++ / libc++ / MSVC <numbers> en / jp / cpprefjp libstdc++ / libc++ / MSVC since C++20 <numeric> en / jp / cpprefjp libstdc++ / libc++ / MSVC <optional> en / jp / cpprefjp libstdc++ / libc++ / MSVC since C++17 <ostream> en / jp / cpprefjp libstdc++ / libc++ / MSVC <print> en / jp / cpprefjp libstdc++ / libc++ / MSVC since C++23 <queue> en / jp / cpprefjp libstdc++ / libc++ / MSVC <random> en / jp / cpprefjp libstdc++ / libc++ / MSVC since C++11 <ranges> en / jp / cpprefjp libstdc++ / libc++ / MSVC since C++20 <ratio> en / jp / cpprefjp libstdc++ / libc++ / MSVC since C++11 <rcu> en / jp / cpprefjp libstdc++ / libc++ / MSVC since C++26 <regex> en / jp / cpprefjp libstdc++ / libc++ / MSVC since C++11 <scoped_allocator> en / jp / cpprefjp libstdc++ / libc++ / MSVC since C++11 <semaphore> en / jp / cpprefjp libstdc++ / libc++ / MSVC since C++20 <set> en / jp / cpprefjp libstdc++ / libc++ / MSVC <shared_mutex> en / jp / cpprefjp libstdc++ / libc++ / MSVC since C++14 <source_location> en / jp / cpprefjp libstdc++ / libc++ / MSVC since C++20 <span> en / jp / cpprefjp libstdc++ / libc++ / MSVC since C++20 <spanstream> en / jp / cpprefjp libstdc++ / libc++ / MSVC since C++23 <sstream> en / jp / cpprefjp libstdc++ / libc++ / MSVC <stack> en / jp / cpprefjp libstdc++ / libc++ / MSVC <stacktrace> en / jp / cpprefjp libstdc++ / libc++ / MSVC since C++23 <stdexcept> en / jp / cpprefjp libstdc++ / libc++ / MSVC <stdfloat> en / jp / cpprefjp libstdc++ / libc++ / MSVC since C++23 <stop_token> en / jp / cpprefjp libstdc++ / libc++ / MSVC since C++20 <streambuf> en / jp / cpprefjp libstdc++ / libc++ / MSVC <string> en / jp / cpprefjp libstdc++ / libc++ / MSVC <string_view> en / jp / cpprefjp libstdc++ / libc++ / MSVC since C++17 <syncstream> en / jp / cpprefjp libstdc++ / libc++ / MSVC since C++20 <system_error> en / jp / cpprefjp libstdc++ / libc++ / MSVC since C++11 <text_encoding> en / jp / cpprefjp libstdc++ / libc++ / MSVC since C++26 <thread> en / jp / cpprefjp libstdc++ / libc++ / MSVC since C++11 <tuple> en / jp / cpprefjp libstdc++ / libc++ / MSVC since C++11 <type_traits> en / jp / cpprefjp libstdc++ / libc++ / MSVC since C++11 <typeindex> en / jp / cpprefjp libstdc++ / libc++ / MSVC since C++11 <typeinfo> en / jp / cpprefjp libstdc++ / libc++ / MSVC <unordered_map> en / jp / cpprefjp libstdc++ / libc++ / MSVC since C++11 <unordered_set> en / jp / cpprefjp libstdc++ / libc++ / MSVC since C++11 <utility> en / jp / cpprefjp libstdc++ / libc++ / MSVC <valarray> en / jp / cpprefjp libstdc++ / libc++ / MSVC <variant> en / jp / cpprefjp libstdc++ / libc++ / MSVC since C++17 <vector> en / jp / cpprefjp libstdc++ / libc++ / MSVC <version> en / jp / cpprefjp libstdc++ / libc++ / MSVC since C++20"},{"location":"standardization/header/#_2","title":"\u975e\u63a8\u5968\u307e\u305f\u306f\u524a\u9664","text":"\u30d8\u30c3\u30c0 \u30ea\u30d5\u30a1\u30ec\u30f3\u30b9 \u5b9f\u88c5 \u30d0\u30fc\u30b8\u30e7\u30f3 <ccomplex> en / jp / cpprefjp libstdc++ / libc++ / MSVC since C++11,deprecated in C++17,removed in C++20 <ciso646> en / jp / cpprefjp libstdc++ / libc++ / MSVC removed in C++20 <codecvt> en / jp / cpprefjp libstdc++ / libc++ / MSVC since C++11,deprecated in C++17,removed in C++26 <cstdalign> en / jp / cpprefjp libstdc++ / libc++ / MSVC since C++11,deprecated in C++17,removed in C++20 <cstdbool> en / jp / cpprefjp libstdc++ / libc++ / MSVC since C++11,deprecated in C++17,removed in C++20 <ctgmath> en / jp / cpprefjp libstdc++ / libc++ / MSVC since C++11,deprecated in C++17,removed in C++20 <strstream> en / jp / cpprefjp libstdc++ / libc++ / MSVC deprecated in C++98"},{"location":"standardization/meetings/","title":"\u6a19\u6e96\u5316\u4f1a\u8b70","text":"

    C++ \u3078\u306e\u63d0\u6848\u6587\u66f8\u3092\u8b70\u8ad6\u3057\u3066\u627f\u8a8d\u3059\u308b C++ \u6a19\u6e96\u5316\u59d4\u54e1\u4f1a\u306e\u5168\u4f53\u4f1a\u8b70\u306e\u958b\u50ac\u60c5\u5831\u3067\u3059\u3002

    "},{"location":"standardization/meetings/#2025-kona","title":"2025 Kona","text":""},{"location":"standardization/meetings/#2025-sofia","title":"2025 Sofia","text":""},{"location":"standardization/meetings/#2025-hagenberg","title":"2025 Hagenberg","text":""},{"location":"standardization/meetings/#2024-wrocaw","title":"2024 Wroc\u0142aw","text":""},{"location":"standardization/meetings/#2024-st-louis","title":"2024 St. Louis","text":""},{"location":"standardization/meetings/#2024-tokyo","title":"2024 Tokyo","text":""},{"location":"standardization/meetings/#_2","title":"\u5834\u6240","text":""},{"location":"standardization/meetings/#2023-kona","title":"2023 Kona","text":""},{"location":"standardization/meetings/#_3","title":"\u5834\u6240","text":""},{"location":"standardization/meetings/#2023-varna","title":"2023 Varna","text":""},{"location":"standardization/meetings/#_4","title":"\u5834\u6240","text":""},{"location":"standardization/meetings/#2023-issaquah","title":"2023 Issaquah","text":""},{"location":"standardization/meetings/#_5","title":"\u5834\u6240","text":""},{"location":"standardization/meetings/#2022-kona","title":"2022 Kona","text":""},{"location":"standardization/meetings/#_6","title":"\u5834\u6240","text":""},{"location":"standardization/meetings/#july-2022-virtual","title":"July 2022 Virtual","text":""},{"location":"standardization/meetings/#_7","title":"\u5834\u6240","text":""},{"location":"standardization/meetings/#february-2022-virtual","title":"February 2022 Virtual","text":""},{"location":"standardization/meetings/#_8","title":"\u5834\u6240","text":""},{"location":"standardization/meetings/#october-2021-virtual","title":"October 2021 Virtual","text":""},{"location":"standardization/meetings/#_9","title":"\u5834\u6240","text":""},{"location":"standardization/meetings/#june-2021-virtual","title":"June 2021 Virtual","text":""},{"location":"standardization/meetings/#_10","title":"\u5834\u6240","text":""},{"location":"standardization/meetings/#_11","title":"\u53c2\u52a0\u5831\u544a","text":""},{"location":"standardization/meetings/#2021-varna","title":"2021 Varna","text":""},{"location":"standardization/meetings/#_12","title":"\u5834\u6240","text":""},{"location":"standardization/meetings/#2021-kona","title":"2021 Kona","text":""},{"location":"standardization/meetings/#_13","title":"\u5834\u6240","text":""},{"location":"standardization/meetings/#february-2021-virtual","title":"February 2021 Virtual","text":""},{"location":"standardization/meetings/#_14","title":"\u5834\u6240","text":""},{"location":"standardization/meetings/#_15","title":"\u53c2\u52a0\u5831\u544a","text":""},{"location":"standardization/meetings/#november-2020-virtual","title":"November 2020 Virtual","text":""},{"location":"standardization/meetings/#_16","title":"\u5834\u6240","text":""},{"location":"standardization/meetings/#_17","title":"\u53c2\u52a0\u5831\u544a","text":""},{"location":"standardization/meetings/#2020-new-york","title":"2020 New York","text":""},{"location":"standardization/meetings/#_18","title":"\u5834\u6240","text":""},{"location":"standardization/meetings/#2020-varna","title":"2020 Varna","text":""},{"location":"standardization/meetings/#_19","title":"\u5834\u6240","text":""},{"location":"standardization/meetings/#2020-prague","title":"2020 Prague","text":""},{"location":"standardization/meetings/#_20","title":"\u5834\u6240 / \u63d0\u6848 / \u4f1a\u8b70\u306e\u7d50\u679c","text":""},{"location":"standardization/meetings/#_21","title":"\u53c2\u52a0\u5831\u544a","text":""},{"location":"standardization/meetings/#2019-belfast","title":"2019 Belfast","text":""},{"location":"standardization/meetings/#_22","title":"\u5834\u6240 / \u63d0\u6848 / \u4f1a\u8b70\u306e\u7d50\u679c","text":""},{"location":"standardization/meetings/#_23","title":"\u53c2\u52a0\u5831\u544a","text":""},{"location":"standardization/meetings/#2019-cologne","title":"2019 Cologne","text":""},{"location":"standardization/meetings/#_24","title":"\u5834\u6240 / \u63d0\u6848 / \u4f1a\u8b70\u306e\u7d50\u679c","text":""},{"location":"standardization/meetings/#_25","title":"\u53c2\u52a0\u5831\u544a","text":""},{"location":"standardization/meetings/#_26","title":"\u89e3\u8aac","text":"

    std::format \u3084 constexpr vector, using enum, constinit \u306a\u3069\u3001\u524d\u56de\u306e\u4f1a\u8b70\u307e\u3067\u306b\u304a\u304a\u3088\u305d\u5b8c\u6210\u3057\u3066\u3044\u305f\u591a\u6570\u306e\u63d0\u6848\u304c C++20 \u30c9\u30e9\u30d5\u30c8\u5165\u308a\u3057\u307e\u3057\u305f\u3002\u4e00\u65b9\u3067\u30012018 \u5e74\u306b\u30c9\u30e9\u30d5\u30c8\u5165\u308a\u3057\u3066\u3044\u305f Contracts \u306f\u5927\u5e45\u306a\u8a2d\u8a08\u306e\u898b\u76f4\u3057\u304c\u767a\u751f\u3057\u3001C++20 \u3067\u306e\u5c0e\u5165\u3092\u30ad\u30e3\u30f3\u30bb\u30eb\u3057\u3066 Study Group \u3067\u8b70\u8ad6\u3092\u7d9a\u3051\u308b\u3053\u3068\u304c\u6c7a\u307e\u308a\u307e\u3057\u305f\u3002 \u3053\u306e\u4f1a\u8b70\u3092\u3082\u3063\u3066 C++20 \u898f\u683c\u30c9\u30e9\u30d5\u30c8\u3078\u306e\u65b0\u6a5f\u80fd\u306e\u8ffd\u52a0\u306f\u7de0\u3081\u5207\u308a (Feature Freeze) \u3067\u3059\u3002\u4ee5\u964d\u306f C++20 \u898f\u683c\u5b8c\u6210\u306b\u5411\u3051\u305f\u6587\u9762\u306e\u4fee\u6b63\u3068\u3001C++23 \u4ee5\u964d\u306b\u5411\u3051\u305f\u8b70\u8ad6\u304c\u9032\u3081\u3089\u308c\u307e\u3059\u3002

    "},{"location":"standardization/meetings/#2019-kona","title":"2019 Kona","text":""},{"location":"standardization/meetings/#_27","title":"\u5834\u6240 / \u63d0\u6848 / \u4f1a\u8b70\u306e\u7d50\u679c","text":""},{"location":"standardization/meetings/#_28","title":"\u53c2\u52a0\u5831\u544a","text":""},{"location":"standardization/meetings/#_29","title":"\u89e3\u8aac","text":"

    \u30b3\u30eb\u30fc\u30c1\u30f3\u3068\u3001C++23 \u4ee5\u964d\u3078\u306e\u5148\u9001\u308a\u304c\u898b\u8fbc\u307e\u308c\u3066\u3044\u305f\u30e2\u30b8\u30e5\u30fc\u30eb\u306e C++20 \u5165\u308a\u304c\u627f\u8a8d\u3055\u308c\u3001C++20 \u306f C++11 \u4ee5\u6765\u306e\u5927\u578b\u30a2\u30c3\u30d7\u30c7\u30fc\u30c8\u306b\u306a\u308b\u3053\u3068\u304c\u6c7a\u307e\u308a\u307e\u3057\u305f\u3002 C++20 \u306e\u30b9\u30b1\u30b8\u30e5\u30fc\u30eb\u3067\u306f\u3001\u3053\u306e\u4f1a\u8b70\u3092\u3082\u3063\u3066 Feature Freeze \u306b\u306a\u308a\u307e\u3059\u3002\u4ed5\u69d8\u6587\u8a00\u306e\u30ec\u30d3\u30e5\u30fc\u304c\u672a\u5b8c\u4e86\u306e\u5c0f\u898f\u6a21\u306a\u63d0\u6848\u3092\u6b21\u56de\u306e Colonge \u4f1a\u8b70\u3067\u627f\u8a8d\u3057\u3001C++20 \u306e\u5168\u5bb9\u304c\u8f09\u3063\u305f\u898f\u683c\u30c9\u30e9\u30d5\u30c8\u304c\u3067\u304d\u3042\u304c\u308a\u307e\u3059\u3002

    "},{"location":"standardization/meetings/#2018-san-diego","title":"2018 San Diego","text":""},{"location":"standardization/meetings/#_30","title":"\u5834\u6240 / \u63d0\u6848 / \u4f1a\u8b70\u306e\u7d50\u679c","text":""},{"location":"standardization/meetings/#_31","title":"\u53c2\u52a0\u5831\u544a","text":""},{"location":"standardization/meetings/#_32","title":"\u89e3\u8aac","text":"

    Range \u30e9\u30a4\u30d6\u30e9\u30ea\u306e C++20 \u5165\u308a\u304c\u6c7a\u307e\u3063\u305f\u307b\u304b\u3001\u30b3\u30f3\u30bb\u30d7\u30c8\u306e\u77ed\u7e2e\u69cb\u6587\u3001coneteval \u306e\u8ffd\u52a0\u3084 constexpr \u306e\u5236\u9650\u7de9\u548c\u306a\u3069\u5b9a\u6570\u5f0f\u306e\u5f37\u5316\u3001\u7b26\u53f7\u4ed8\u6574\u6570\u578b\u304c 2 \u306e\u88dc\u6570\u3067\u3042\u308b\u3053\u3068\u306e\u898f\u5b9a\u3001char8_t \u578b\u306e\u8ffd\u52a0\u306a\u3069\u304c\u627f\u8a8d\u3055\u308c\u307e\u3057\u305f\u3002

    "},{"location":"standardization/meetings/#2018-rapperswil","title":"2018 Rapperswil","text":""},{"location":"standardization/meetings/#_33","title":"\u5834\u6240 / \u63d0\u6848 / \u4f1a\u8b70\u306e\u7d50\u679c","text":""},{"location":"standardization/meetings/#_34","title":"\u53c2\u52a0\u5831\u544a","text":""},{"location":"standardization/meetings/#_35","title":"\u89e3\u8aac","text":"

    \u5c5e\u6027\u69cb\u6587\u306b\u3088\u308b Contracts (\u5951\u7d04\u30d7\u30ed\u30b0\u30e9\u30df\u30f3\u30b0) \u306e C++20 \u5165\u308a\u304c\u6c7a\u307e\u3063\u305f\u307b\u304b\u3001STL \u3078\u306e\u30b3\u30f3\u30bb\u30d7\u30c8\u30e9\u30a4\u30d6\u30e9\u30ea\u306e\u8ffd\u52a0\u3001\u4efb\u610f\u306e\u30af\u30e9\u30b9\u578b\u306e\u975e\u578b\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8\u30d1\u30e9\u30e1\u30fc\u30bf\u3068\u3057\u3066\u306e\u5229\u7528\u3001\u5b9a\u6570\u5f0f\u3067\u306e\u4eee\u60f3\u95a2\u6570\u547c\u3073\u51fa\u3057\u306e\u8a31\u53ef\u3001explicit(bool) \u306a\u3069\u304c\u627f\u8a8d\u3055\u308c\u307e\u3057\u305f\u3002

    "},{"location":"standardization/meetings/#2018-jacksonville","title":"2018 Jacksonville","text":""},{"location":"standardization/meetings/#_36","title":"\u5834\u6240 / \u63d0\u6848 / \u4f1a\u8b70\u306e\u7d50\u679c","text":""},{"location":"standardization/meetings/#_37","title":"\u53c2\u52a0\u5831\u544a","text":""},{"location":"standardization/meetings/#_38","title":"\u89e3\u8aac","text":"

    <chrono> \u3078\u306e\u30ab\u30ec\u30f3\u30c0\u30fc\u30e9\u30a4\u30d6\u30e9\u30ea\u306e\u8ffd\u52a0\u3001<span>, no_unique_address \u3084 likely/unlikely \u5c5e\u6027\u69cb\u6587\u306e\u8ffd\u52a0\u306a\u3069\u304c\u627f\u8a8d\u3055\u308c\u307e\u3057\u305f\u3002

    "},{"location":"standardization/meetings/#2017-albuquerque","title":"2017 Albuquerque","text":""},{"location":"standardization/meetings/#_39","title":"\u5834\u6240 / \u63d0\u6848 / \u4f1a\u8b70\u306e\u7d50\u679c","text":""},{"location":"standardization/meetings/#_40","title":"\u53c2\u52a0\u5831\u544a","text":""},{"location":"standardization/meetings/#_41","title":"\u89e3\u8aac","text":"

    \u4e09\u65b9\u6bd4\u8f03\u6f14\u7b97\u5b50 <=> \u3068\u305d\u306e\u30e9\u30a4\u30d6\u30e9\u30ea\u30b5\u30dd\u30fc\u30c8\u3001\u6a19\u6e96\u30e9\u30a4\u30d6\u30e9\u30ea\u95a2\u6570\u306e\u3055\u3089\u306a\u308b constexpr \u5bfe\u5fdc\u3001\u521d\u671f\u5316\u5f0f\u3092\u3068\u3082\u306a\u3046\u7bc4\u56f2 for \u6587\u306a\u3069\u306e C++20 \u5165\u308a\u304c\u627f\u8a8d\u3055\u308c\u307e\u3057\u305f\u3002

    "},{"location":"standardization/meetings/#2017-toronto","title":"2017 Toronto","text":""},{"location":"standardization/meetings/#_42","title":"\u5834\u6240 / \u63d0\u6848 / \u4f1a\u8b70\u306e\u7d50\u679c","text":""},{"location":"standardization/meetings/#_43","title":"\u53c2\u52a0\u5831\u544a","text":""},{"location":"standardization/meetings/#_44","title":"\u89e3\u8aac","text":"

    C++20 \u306b\u95a2\u3059\u308b\u6700\u521d\u306e\u4f1a\u8b70\u3067\u3059\u3002\u30b3\u30f3\u30bb\u30d7\u30c8\u3001Designated Initialization, \u30e9\u30e0\u30c0\u5f0f\u306b\u304a\u3051\u308b this \u306e\u30b3\u30d4\u30fc\u30ad\u30e3\u30d7\u30c1\u30e3\u306e\u8a31\u53ef\u306a\u3069\u304c\u627f\u8a8d\u3055\u308c\u307e\u3057\u305f\u3002

    "},{"location":"standardization/meetings/#2017-kona","title":"2017 Kona","text":""},{"location":"standardization/meetings/#_45","title":"\u5834\u6240 / \u63d0\u6848 / \u4f1a\u8b70\u306e\u7d50\u679c","text":""},{"location":"standardization/meetings/#_46","title":"\u53c2\u52a0\u5831\u544a","text":""},{"location":"standardization/meetings/#_47","title":"\u89e3\u8aac","text":"

    C++17 \u306b\u3064\u3044\u3066\u8b70\u8ad6\u3059\u308b\u6700\u5f8c\u306e\u4f1a\u8b70\u3067\u3001\u3053\u306e\u4f1a\u8b70\u306b\u3088\u3063\u3066 C++17 \u898f\u683c\u304c\u5b8c\u6210\u3057\u307e\u3057\u305f\u3002 std::byte \u578b\u306e\u5c0e\u5165\u304c\u8ffd\u52a0\u3067\u627f\u8a8d\u3055\u308c\u305f\u307b\u304b\u306f\u3001\u5404\u56fd\u59d4\u54e1\u4f1a\u304b\u3089\u306e\u30b3\u30e1\u30f3\u30c8\u3078\u306e\u5bfe\u5fdc\u304c\u4e3b\u3067\u3059\u3002

    "},{"location":"standardization/meetings/#2017","title":"2017 \u5e74\u4ee5\u524d\u306e\u4f1a\u8b70","text":""},{"location":"standardization/meetings/#2016-issaquah","title":"2016 Issaquah","text":""},{"location":"standardization/meetings/#_48","title":"\u5834\u6240 / \u63d0\u6848 / \u4f1a\u8b70\u306e\u7d50\u679c","text":""},{"location":"standardization/meetings/#_49","title":"\u53c2\u52a0\u5831\u544a","text":""},{"location":"standardization/meetings/#_50","title":"\u89e3\u8aac","text":"

    using \u5ba3\u8a00\u3067\u306e\u30d1\u30e9\u30e1\u30fc\u30bf\u30d1\u30c3\u30af\u5c55\u958b\u3001\u53e4\u3044\u4f8b\u5916\u4ed5\u69d8 throw() \u306e\u524a\u9664\u3001<charconv> \u7b49\u304c\u627f\u8a8d\u3055\u308c\u307e\u3057\u305f\u3002 \u3053\u306e\u4f1a\u8b70\u3092\u3082\u3063\u3066 C++17 \u306f Feature Freeze \u306b\u306a\u308a\u307e\u3057\u305f\u3002

    "},{"location":"standardization/meetings/#2016-oulu","title":"2016 Oulu","text":""},{"location":"standardization/meetings/#_51","title":"\u5834\u6240 / \u63d0\u6848 / \u4f1a\u8b70\u306e\u7d50\u679c","text":""},{"location":"standardization/meetings/#_52","title":"\u53c2\u52a0\u5831\u544a","text":""},{"location":"standardization/meetings/#_53","title":"\u89e3\u8aac","text":"

    \u30b3\u30a2\u8a00\u8a9e\u6a5f\u80fd\u3068\u3057\u3066\u3001\u30af\u30e9\u30b9\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8\u306e\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8\u5f15\u6570\u63a8\u8ad6\uff08deduction guide\uff09\u3001\u30a4\u30f3\u30e9\u30a4\u30f3\u5909\u6570\u3001constexpr if, \u69cb\u9020\u5316\u675f\u7e1b\u3001if \u6587\u3084 switch \u6587\u3067\u306e\u521d\u671f\u5316\u5f0f\u3068\u6761\u4ef6\u5f0f\u306e\u5206\u96e2\u3001\u30b3\u30d4\u30fc\u7701\u7565\u4fdd\u8a3c\u3001\u5f0f\u306e\u8a55\u4fa1\u9806\u5e8f\u306e\u53b3\u5bc6\u5316\u3001std::launder \u7b49\u304c\u627f\u8a8d\u3055\u308c\u307e\u3057\u305f\u3002 \u30e9\u30a4\u30d6\u30e9\u30ea\u6a5f\u80fd\u3068\u3057\u3066\u306f\u3001std::variant, variant, optional, any \u30a4\u30f3\u30bf\u30fc\u30d5\u30a7\u30fc\u30b9\u306e\u7d71\u4e00\u3001\u9023\u60f3\u30b3\u30f3\u30c6\u30ca\u306e splice \u7b49\u304c\u627f\u8a8d\u3055\u308c\u307e\u3057\u305f\u3002

    "},{"location":"standardization/meetings/#2016-jacksonville","title":"2016 Jacksonville","text":""},{"location":"standardization/meetings/#_54","title":"\u5834\u6240 / \u63d0\u6848 / \u4f1a\u8b70\u306e\u7d50\u679c","text":""},{"location":"standardization/meetings/#_55","title":"\u53c2\u52a0\u5831\u544a","text":""},{"location":"standardization/meetings/#_56","title":"\u89e3\u8aac","text":"

    16 \u9032\u6d6e\u52d5\u5c0f\u6570\u70b9\u30ea\u30c6\u30e9\u30eb\u3001constexpr \u30e9\u30e0\u30c0\u3001\u5c5e\u6027\u69cb\u6587 [[fallthrough]], [[nodiscard]], [[maybe_unused]] \u306e\u307b\u304b\u3001\u6a19\u6e96\u30e9\u30a4\u30d6\u30e9\u30ea\u306b std::any, std::optional, std::string_view, <filesystem>, <memory_resource>, \u4e26\u5217\u30a2\u30eb\u30b4\u30ea\u30ba\u30e0\u3001\u6570\u5b66\u306e\u7279\u6b8a\u95a2\u6570\u7b49\u3092\u8ffd\u52a0\u3059\u308b\u3053\u3068\u304c\u627f\u8a8d\u3055\u308c\u307e\u3057\u305f\u3002

    "},{"location":"standardization/meetings/#2015-kona","title":"2015 Kona","text":""},{"location":"standardization/meetings/#_57","title":"\u5834\u6240 / \u63d0\u6848 / \u4f1a\u8b70\u306e\u7d50\u679c","text":""},{"location":"standardization/meetings/#_58","title":"\u53c2\u52a0\u5831\u544a","text":""},{"location":"standardization/meetings/#_59","title":"\u89e3\u8aac","text":"

    register \u30ad\u30fc\u30ef\u30fc\u30c9\u306e\u524a\u9664\u3001__has_include() \u30de\u30af\u30ed\u3001std::conunction\u3001std::disjunction\u3001std::negation \u7b49\u304c\u627f\u8a8d\u3055\u308c\u307e\u3057\u305f\u3002

    "},{"location":"standardization/meetings/#2015-lenexa","title":"2015 Lenexa","text":""},{"location":"standardization/meetings/#_60","title":"\u5834\u6240 / \u63d0\u6848 / \u4f1a\u8b70\u306e\u7d50\u679c","text":""},{"location":"standardization/meetings/#_61","title":"\u53c2\u52a0\u5831\u544a","text":""},{"location":"standardization/meetings/#_62","title":"\u89e3\u8aac","text":"

    std::bool_constant, std::vector, std::list, std::forward_list \u306e\u4e0d\u5b8c\u5168\u578b\u30b5\u30dd\u30fc\u30c8\u7b49\u304c\u627f\u8a8d\u3055\u308c\u307e\u3057\u305f\u3002

    "},{"location":"standardization/meetings/#2015-cologne","title":"2015 Cologne","text":""},{"location":"standardization/meetings/#2015-skillman","title":"2015 Skillman","text":""},{"location":"standardization/meetings/#2014-urbana-champaign","title":"2014 Urbana-Champaign","text":""},{"location":"standardization/meetings/#_63","title":"\u5834\u6240 / \u63d0\u6848 / \u4f1a\u8b70\u306e\u7d50\u679c","text":""},{"location":"standardization/meetings/#_64","title":"\u53c2\u52a0\u5831\u544a","text":""},{"location":"standardization/meetings/#_65","title":"\u89e3\u8aac","text":"

    C++14 \u898f\u683c\u5b8c\u6210\u5f8c\u306e\u6700\u521d\u306e\u4f1a\u8b70\u3067\u3059\u3002 \u7573\u307f\u8fbc\u307f\u5f0f\u3001\u5165\u308c\u5b50\u540d\u524d\u7a7a\u9593\u5b9a\u7fa9\u306e\u7c21\u7565\u5316\u3001u8 \u6587\u5b57\u5217\u30ea\u30c6\u30e9\u30eb\u3001\u975e\u578b\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8\u30d1\u30e9\u30e1\u30fc\u30bf\u306e\u30dd\u30a4\u30f3\u30bf\u5236\u9650\u7de9\u548c\u3001void_t, std::uncaught_exceptions \u7b49\u306e C++17 \u5165\u308a\u304c\u627f\u8a8d\u3055\u308c\u307e\u3057\u305f\u3002

    "},{"location":"standardization/meetings/#2014-rapperswil","title":"2014 Rapperswil","text":""},{"location":"standardization/meetings/#_66","title":"\u5834\u6240 / \u63d0\u6848 / \u4f1a\u8b70\u306e\u7d50\u679c","text":""},{"location":"standardization/meetings/#_67","title":"\u53c2\u52a0\u5831\u544a","text":""},{"location":"standardization/meetings/#_68","title":"\u89e3\u8aac","text":"

    C++14 \u306b\u3064\u3044\u3066\u8b70\u8ad6\u3059\u308b\u6700\u5f8c\u306e\u4f1a\u8b70\u3067\u3001\u3053\u306e\u4f1a\u8b70\u306b\u3088\u3063\u3066 C++14 \u898f\u683c\u304c\u5b8c\u6210\u3057\u307e\u3057\u305f\u3002 C++14 \u3078\u306e\u6a5f\u80fd\u8ffd\u52a0\u306f\u306a\u304f\u3001C++17 \u306b\u5bfe\u3057\u3066\u306f\u3001\u30c8\u30e9\u30a4\u30b0\u30e9\u30d5\u306e\u524a\u9664\u3001\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8\u30d1\u30e9\u30e1\u30fc\u30bf\u3067\u306e typename \u4f7f\u7528\u306e\u8a31\u53ef\u3001\u7701\u7565\u7248\u306e static_assert \u7b49\u304c\u627f\u8a8d\u3055\u308c\u307e\u3057\u305f\u3002

    "},{"location":"standardization/meetings/#2014-issaquah","title":"2014 Issaquah","text":""},{"location":"standardization/meetings/#_69","title":"\u5834\u6240 / \u63d0\u6848 / \u4f1a\u8b70\u306e\u7d50\u679c","text":""},{"location":"standardization/meetings/#_70","title":"\u53c2\u52a0\u5831\u544a","text":""},{"location":"standardization/meetings/#_71","title":"\u89e3\u8aac","text":"

    C++14 \u306e\u6700\u7d42\u4f5c\u696d\u3068 C++17 \u306b\u5411\u3051\u305f\u4e00\u90e8\u306e\u4f5c\u696d\u304c\u884c\u308f\u308c\u307e\u3057\u305f\u3002 \u3069\u3061\u3089\u306b\u5bfe\u3057\u3066\u3082\u6a5f\u80fd\u306e\u8ffd\u52a0\u306f\u306a\u304f\u3001C++14 \u306b\u5bfe\u3057\u3066\u306f\u5404\u56fd\u59d4\u54e1\u4f1a\u304b\u3089\u306e\u30b3\u30e1\u30f3\u30c8\u3084\u65e2\u5b58\u306e Issue \u3078\u306e\u5bfe\u5fdc\u304c\u4e3b\u3067\u3059\u3002

    "},{"location":"standardization/meetings/#2013-chicago","title":"2013 Chicago","text":""},{"location":"standardization/meetings/#_72","title":"\u5834\u6240 / \u63d0\u6848 / \u4f1a\u8b70\u306e\u7d50\u679c","text":""},{"location":"standardization/meetings/#_73","title":"\u53c2\u52a0\u5831\u544a","text":""},{"location":"standardization/meetings/#_74","title":"\u89e3\u8aac","text":"

    \u6570\u5024\u30ea\u30c6\u30e9\u30eb\u306e\u533a\u5207\u308a\u6587\u5b57\u3001[[deprecated]] \u5c5e\u6027\u3001\u5f15\u6570\u3068\u3057\u3066\u30b5\u30a4\u30ba\u3092\u3068\u308b\u30b0\u30ed\u30fc\u30d0\u30eb delete \u6f14\u7b97\u5b50\u306e\u30aa\u30fc\u30d0\u30fc\u30ed\u30fc\u30c9\u306e\u8a31\u53ef\u7b49\u304c\u627f\u8a8d\u3055\u308c\u307e\u3057\u305f\u3002 \u307e\u305f\u3001\u524d\u56de\u4f1a\u8b70\u3067\u627f\u8a8d\u3055\u308c\u3066\u3044\u305f\u52d5\u7684\u914d\u5217\u306e\u30b5\u30dd\u30fc\u30c8\u304a\u3088\u3073 std::dynarray<T> \u3068 std::optional<T> \u306f C++14 \u304b\u3089\u53d6\u308a\u9664\u304b\u308c\u308b\u3053\u3068\u306b\u306a\u308a\u307e\u3057\u305f\u3002

    "},{"location":"standardization/meetings/#2013-bristol","title":"2013 Bristol","text":""},{"location":"standardization/meetings/#_75","title":"\u5834\u6240 / \u63d0\u6848 / \u4f1a\u8b70\u306e\u7d50\u679c","text":""},{"location":"standardization/meetings/#_76","title":"\u53c2\u52a0\u5831\u544a","text":""},{"location":"standardization/meetings/#_77","title":"\u89e3\u8aac","text":"

    \u30b3\u30a2\u8a00\u8a9e\u6a5f\u80fd\u3068\u3057\u3066\u3001constexpr \u306e\u5236\u9650\u7de9\u548c\u3001\u30b8\u30a7\u30cd\u30ea\u30c3\u30af\u30e9\u30e0\u30c0\u3001\u30e9\u30e0\u30c0\u5f0f\u306e\u521d\u671f\u5316\u30ad\u30e3\u30d7\u30c1\u30e3\u3001\u5909\u6570\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8\u3001\u95a2\u6570\u306e\u623b\u308a\u5024\u578b\u63a8\u8ad6\u3001\u52d5\u7684\u914d\u5217\u306e\u30b5\u30dd\u30fc\u30c8\u3001\u30e9\u30a4\u30d6\u30e9\u30ea\u6a5f\u80fd\u3068\u3057\u3066\u3001std::make_unique(), \u6a19\u6e96\u30e9\u30a4\u30d6\u30e9\u30ea\u3078\u306e\u30e6\u30fc\u30b6\u30fc\u5b9a\u7fa9\u30ea\u30c6\u30e9\u30eb\u5c0e\u5165\u3001std::optional<T>, std::dynarray<T> \u7b49\u304c\u627f\u8a8d\u3055\u308c\u307e\u3057\u305f\u3002 C++14 \u306e\u307b\u3068\u3093\u3069\u306e\u6a5f\u80fd\u304c\u3053\u306e\u4f1a\u8b70\u3067\u8ffd\u52a0\u3055\u308c\u3066\u3044\u307e\u3059\u3002

    "},{"location":"standardization/meetings/#2012-portland","title":"2012 Portland","text":""},{"location":"standardization/meetings/#_78","title":"\u5834\u6240 / \u63d0\u6848 / \u4f1a\u8b70\u306e\u7d50\u679c","text":""},{"location":"standardization/meetings/#_79","title":"\u89e3\u8aac","text":"

    Issue \u5bfe\u5fdc\u304c\u4e3b\u3067\u5927\u304d\u306a\u6a5f\u80fd\u306e\u8ffd\u52a0\u306f\u3042\u308a\u307e\u305b\u3093\u3067\u3057\u305f\u3002 \u30e9\u30a4\u30d6\u30e9\u30ea\u6a5f\u80fd\u3068\u3057\u3066\u3001std::complex, std::chrono, std::array, std::initilizer_list, std::tuple, std::pair \u7b49\u306e constexpr \u5bfe\u5fdc\u304c\u627f\u8a8d\u3055\u308c\u307e\u3057\u305f\u3002

    "},{"location":"standardization/meetings/#2012-kona","title":"2012 Kona","text":""},{"location":"standardization/meetings/#_80","title":"\u5834\u6240 / \u63d0\u6848 / \u4f1a\u8b70\u306e\u7d50\u679c","text":""},{"location":"standardization/meetings/#_81","title":"\u89e3\u8aac","text":"

    C++14 \u306b\u3064\u3044\u3066\u8b70\u8ad6\u3059\u308b\u6700\u521d\u306e\u4f1a\u8b70\u3067\u3059\u3002 \u6a5f\u80fd\u306e\u8ffd\u52a0\u306f\u7121\u304f\u3001C++11 \u306b\u5bfe\u3059\u308b Issue \u3078\u306e\u5bfe\u5fdc\u304c\u4e3b\u3067\u3059\u3002

    "},{"location":"standardization/meetings/#2011-bloomington","title":"2011 Bloomington","text":""},{"location":"standardization/meetings/#2011-madrid","title":"2011 Madrid","text":""},{"location":"standardization/meetings/#2010-batavia","title":"2010 Batavia","text":""},{"location":"standardization/meetings/#2010-rapperswil","title":"2010 Rapperswil","text":""},{"location":"standardization/meetings/#2010-pittsburgh","title":"2010 Pittsburgh","text":""},{"location":"standardization/meetings/#2009-santa-cruz","title":"2009 Santa Cruz","text":""},{"location":"standardization/meetings/#2009-frankfurt","title":"2009 Frankfurt","text":""},{"location":"standardization/meetings/#2009-summit","title":"2009 Summit","text":""},{"location":"standardization/meetings/#2008-san-francisco","title":"2008 San Francisco","text":""},{"location":"standardization/meetings/#2008-sophia-antipolis","title":"2008 Sophia Antipolis","text":""},{"location":"standardization/meetings/#2008-bellevue","title":"2008 Bellevue","text":""},{"location":"standardization/meetings/#2007-kona","title":"2007 Kona","text":""},{"location":"standardization/meetings/#2007-toronto","title":"2007 Toronto","text":""},{"location":"standardization/meetings/#2007-oxford","title":"2007 Oxford","text":""},{"location":"standardization/meetings/#2006-portland","title":"2006 Portland","text":""},{"location":"standardization/meetings/#2006-berlin","title":"2006 Berlin","text":""},{"location":"standardization/meetings/#2005-mt-tremblant","title":"2005 Mt. Tremblant","text":""},{"location":"standardization/meetings/#2005-lillehammer","title":"2005 Lillehammer","text":""},{"location":"standardization/meetings/#2004-redmond","title":"2004 Redmond","text":""},{"location":"standardization/meetings/#2004-sydney","title":"2004 Sydney","text":""},{"location":"standardization/meetings/#2003-kona","title":"2003 Kona","text":""},{"location":"standardization/meetings/#2003-oxford","title":"2003 Oxford","text":""},{"location":"standardization/meetings/#2002-santa-cruz","title":"2002 Santa Cruz","text":""},{"location":"standardization/meetings/#2002-curacao","title":"2002 Curacao","text":""},{"location":"standardization/meetings/#2001-redmond","title":"2001 Redmond","text":""},{"location":"standardization/meetings/#2001-copenhagen","title":"2001 Copenhagen","text":""},{"location":"standardization/meetings/#2000-toronto","title":"2000 Toronto","text":""},{"location":"standardization/meetings/#2000-tokyo","title":"2000 Tokyo","text":""},{"location":"standardization/meetings/#1999-kona","title":"1999 Kona","text":""},{"location":"standardization/meetings/#1999-dublin","title":"1999 Dublin","text":""},{"location":"standardization/meetings/#1998-santa-cruz","title":"1998 Santa Cruz","text":""},{"location":"standardization/meetings/#1998-sophia-antipolis","title":"1998 Sophia Antipolis","text":""},{"location":"standardization/meetings/#1997-morristown","title":"1997 Morristown","text":""},{"location":"standardization/meetings/#1997-cambridge","title":"1997 Cambridge","text":""},{"location":"standardization/meetings/#1997-nashua","title":"1997 Nashua","text":""},{"location":"standardization/meetings/#1996-kona","title":"1996 Kona","text":""},{"location":"standardization/meetings/#1996-stockholm","title":"1996 Stockholm","text":""},{"location":"standardization/meetings/#1996-santa-cruz","title":"1996 Santa Cruz","text":""},{"location":"standardization/meetings/#1995-tokyo","title":"1995 Tokyo","text":""},{"location":"standardization/meetings/#1995-monterey","title":"1995 Monterey","text":""},{"location":"standardization/meetings/#1995-austin","title":"1995 Austin","text":""},{"location":"standardization/meetings/#1994-valley-forge","title":"1994 Valley Forge","text":""},{"location":"standardization/meetings/#1994-waterloo","title":"1994 Waterloo","text":""},{"location":"standardization/meetings/#1994-san-diego","title":"1994 San Diego","text":""},{"location":"standardization/meetings/#1993-san-jose","title":"1993 San Jose","text":""},{"location":"standardization/meetings/#1993-munich","title":"1993 Munich","text":""},{"location":"standardization/meetings/#1993-portland","title":"1993 Portland","text":""},{"location":"standardization/meetings/#1992-boston","title":"1992 Boston","text":""},{"location":"standardization/meetings/#1992-toronto","title":"1992 Toronto","text":""},{"location":"standardization/meetings/#1992-london","title":"1992 London","text":""},{"location":"standardization/meetings/#1991-dallas","title":"1991 Dallas","text":""},{"location":"standardization/meetings/#1991-lund","title":"1991 Lund","text":""},{"location":"standardization/meetings/#1991-nashua","title":"1991 Nashua","text":""},{"location":"standardization/meetings/#1990-palo-alto","title":"1990 Palo Alto","text":""},{"location":"standardization/meetings/#1990-seattle","title":"1990 Seattle","text":""},{"location":"standardization/meetings/#1990-somerset","title":"1990 Somerset","text":""},{"location":"standardization/meetings/#1989-washington-dc","title":"1989 Washington, DC","text":""},{"location":"standardization/meetings/#_82","title":"\u53c2\u8003\u6587\u732e","text":""},{"location":"standardization/proposals/","title":"\u63d0\u6848\u30ea\u30b9\u30c8","text":"

    C++ \u6a19\u6e96\u5316\u59d4\u54e1\u4f1a\u306e\u63d0\u6848\u6587\u66f8\u3068\u3001\u305d\u306e\u65e5\u672c\u8a9e\u89e3\u8aac\u8a18\u4e8b\u3078\u306e\u30ea\u30f3\u30af\u3067\u3059\u3002

    "},{"location":"standardization/proposals/#2025","title":"2025 \u5e74","text":""},{"location":"standardization/proposals/#2024","title":"2024 \u5e74","text":""},{"location":"standardization/proposals/#2023","title":"2023 \u5e74","text":""},{"location":"standardization/proposals/#2022","title":"2022 \u5e74","text":""},{"location":"standardization/proposals/#2021","title":"2021 \u5e74","text":""},{"location":"standardization/proposals/#2020","title":"2020 \u5e74","text":""},{"location":"standardization/status/","title":"\u51e6\u7406\u7cfb\u306e\u5bfe\u5fdc\u72b6\u6cc1","text":""},{"location":"standardization/status/#_2","title":"\u51e6\u7406\u7cfb\u306e\u6bd4\u8f03\u8868","text":""},{"location":"standardization/status/#c26","title":"C++26","text":""},{"location":"standardization/status/#c23","title":"C++23","text":""},{"location":"standardization/status/#c20","title":"C++20","text":""},{"location":"standardization/status/#c17","title":"C++17","text":""},{"location":"standardization/status/#c14","title":"C++14","text":""},{"location":"standardization/working-drafts/","title":"C++ \u898f\u683c\u66f8","text":""},{"location":"standardization/working-drafts/#_1","title":"\u56fd\u969b\u898f\u683c\u3068\u30ef\u30fc\u30ad\u30f3\u30b0\u30c9\u30e9\u30d5\u30c8","text":"

    C++11 \u4ee5\u964d\u306f\u3001\u898f\u683c\u66f8\u3068\u540c\u7b49\u306e\u5185\u5bb9\u306e\u30ef\u30fc\u30ad\u30f3\u30b0\u30c9\u30e9\u30d5\u30c8\u304c\u7121\u511f\u3067\u516c\u958b\u3055\u308c\u3066\u3044\u307e\u3059\u3002 \u516c\u5f0f\u306e\u56fd\u969b\u898f\u683c\u6587\u66f8\u306f ISO \u306e Web \u30b5\u30a4\u30c8\u304b\u3089\u8cfc\u5165\u3067\u304d\u307e\u3059\u3002

    \u30d0\u30fc\u30b8\u30e7\u30f3 \u30ef\u30fc\u30ad\u30f3\u30b0\u30c9\u30e9\u30d5\u30c8 \u56fd\u969b\u898f\u683c \u30da\u30fc\u30b8\u6570 \u65e5\u4ed8 C++98 ISO/IEC 14882:1998 732 1998-09 C++03 N1577 ISO/IEC 14882:2003 757 2003-10 C++11 N3337 (PDF) / HTML ISO/IEC 14882:2011 1338 2011-09 C++14 N4140 (PDF) / HTML ISO/IEC 14882:2014 1358 2014-12 C++17 N4659 (PDF) / HTML ISO/IEC 14882:2017 1605 2017-12 C++20 N4860 (PDF) / HTML ISO/IEC 14882:2020 1853 2020-12 C++23 N4950 (PDF) / HTML ISO/IEC 14882:2024 2104 2024-10 C++26 N5001 (PDF) / HTML \u203b\u6700\u7d42\u7248\u3067\u306f\u306a\u3044 \uff08\u672a\u767a\u884c\uff09 ? 2026-?? "},{"location":"standardization/working-drafts/#c_1","title":"\u904e\u53bb\u306e C++ \u306e\u6b74\u53f2\u7684\u8cc7\u6599","text":"\u65e5\u4ed8 \u6587\u66f8\u756a\u53f7 \u30bf\u30a4\u30c8\u30eb \u30da\u30fc\u30b8\u6570 1990 \u5e74 2 \u6708 X3J16 90-0004 \u306e\u6539\u7a3f\u7248 The Annotated C++ Reference Manual 160 1994 \u5e74 1 \u6708 X3J16 94-0027 (N0414) Working Paper for Draft Proposed International Standard for Information Systems - Programming Language C++ 454"},{"location":"standardization/working-drafts/#_2","title":"\u53c2\u8003\u6587\u732e","text":""},{"location":"tools/code-formatter/","title":"C++ \u30b3\u30fc\u30c9\u30d5\u30a9\u30fc\u30de\u30c3\u30bf","text":""},{"location":"tools/code-formatter/#clangformat","title":"ClangFormat","text":"

    \u516c\u5f0f\u30b5\u30a4\u30c8 - ClangFormat https://clang.llvm.org/docs/ClangFormat.html

    \u30c0\u30a6\u30f3\u30ed\u30fc\u30c9\u3092\u76f4\u63a5\u884c\u3046\u306a\u3089 LLVM \u306e\u30c0\u30a6\u30f3\u30ed\u30fc\u30c9\u30da\u30fc\u30b8\u304c\u4fbf\u5229\u3067\u3059\u3002 \u30d3\u30eb\u30c9\u6e08\u307f\u30d0\u30a4\u30ca\u30ea\u304c\u63d0\u4f9b\u3055\u308c\u3066\u3044\u307e\u3059\u3002

    "},{"location":"tools/compilers/","title":"C++ \u30b3\u30f3\u30d1\u30a4\u30e9","text":""},{"location":"tools/compilers/#gcc","title":"GCC","text":""},{"location":"tools/compilers/#clang","title":"Clang","text":""},{"location":"tools/compilers/#microsoft-visual-c-msvc","title":"Microsoft Visual C++ (MSVC)","text":"

    Microsoft Visual Studio \u306e C++ \u30b3\u30f3\u30d1\u30a4\u30e9

    "},{"location":"tools/compilers/#apple-clang","title":"Apple Clang","text":"

    Xcode \u306e C++ \u30b3\u30f3\u30d1\u30a4\u30e9

    "},{"location":"tools/compilers/#edg-eccp","title":"EDG eccp","text":""},{"location":"tools/compilers/#intel-c-compiler","title":"Intel C++ Compiler","text":""},{"location":"tools/compilers/#ibm-xl-c","title":"IBM XL C++","text":""},{"location":"tools/compilers/#oracle-developer-studio-c-compiler","title":"Oracle Developer Studio C++ compiler","text":""},{"location":"tools/compilers/#embarcadero-c-builder","title":"Embarcadero C++ Builder","text":""},{"location":"tools/gitignore/","title":"C++ \u7528 .gitignore","text":""},{"location":"tools/linter/","title":"C++ \u30ea\u30f3\u30bf\u30fc","text":""},{"location":"tools/linter/#clang-tidy","title":"Clang-Tidy","text":""},{"location":"tools/linter/#cpplint","title":"cpplint","text":""},{"location":"tools/linter/#cppcheck","title":"Cppcheck","text":""},{"location":"tools/onlinecompilers/","title":"C++ \u30aa\u30f3\u30e9\u30a4\u30f3\u30b3\u30f3\u30d1\u30a4\u30e9","text":""},{"location":"tools/onlinecompilers/#_1","title":"\u4e3b\u8981\u306a\u30aa\u30f3\u30e9\u30a4\u30f3\u30b3\u30f3\u30d1\u30a4\u30e9","text":"

    C++ \u30d7\u30ed\u30b0\u30e9\u30e0\u306e\u30b3\u30f3\u30d1\u30a4\u30eb\u3001\u5b9f\u884c\u3001\u5171\u6709\u304c\u3067\u304d\u308b Web \u30b5\u30a4\u30c8\u3067\u3059\u3002

    \u30b3\u30f3\u30d1\u30a4\u30e9 \u65e5\u672c\u8a9e\u5165\u51fa\u529b \u30a4\u30f3\u30bf\u30e9\u30af\u30c6\u30a3\u30d6 \u8907\u6570\u30d5\u30a1\u30a4\u30eb Wandbox
  • GCC 4.9.4 - 14.0
  • Clang 7.1.0 - 18.0
  • Compiler Explorer(Compiler \u30e2\u30fc\u30c9)
  • GCC 4.1.2 - 13.2
  • Clang 3.0 - 16.0
  • MSVC v19.14 - v19.latest
  • ICC 13.0.1 - 2021.10.0
  • Compiler Explorer(Execution \u30e2\u30fc\u30c9)
  • GCC 4.6.4 - 13.2
  • Clang 3.3 - 16.0
  • ICC 16.0.3 - 2021.10.0
  • repl.it(\u8981\u30a2\u30ab\u30a6\u30f3\u30c8\u767b\u9332)
  • Clang 12.0.1
  • C++ Shell
  • Clang 16.0.0
  • paiza.io
  • Clang 10.0.0
  • GDB Online
  • GCC 9.4.0
  • Ideone
  • GCC 8.3.0
  • "},{"location":"tools/onlinecompilers/#_2","title":"\u305d\u306e\u4ed6\u306e\u30c4\u30fc\u30eb","text":""},{"location":"tools/onlinecompilers/#compiler-explorer","title":"Compiler Explorer","text":"

    Compiler Explorer \u306f\u3001C, C++, Rust, Swift \u306a\u3069\u306e\u30bd\u30fc\u30b9\u30b3\u30fc\u30c9\u3092\u30b3\u30f3\u30d1\u30a4\u30eb\u3057\u3066\u30a2\u30bb\u30f3\u30d6\u30ea\u3092\u8868\u793a\u3059\u308b\u30aa\u30f3\u30e9\u30a4\u30f3\u30b3\u30f3\u30d1\u30a4\u30e9\u3067\u3059\u3002\u8907\u6570\u30bf\u30d6\u3092\u4f7f\u3063\u3066\u3001GCC, Clang, MSVC, ICC \u306a\u3069\u306e\u30b3\u30f3\u30d1\u30a4\u30e9\u3084\u3001\u30b3\u30f3\u30d1\u30a4\u30eb\u30aa\u30d7\u30b7\u30e7\u30f3\u3092\u5909\u3048\u305f\u3068\u304d\u306e\u7d50\u679c\u3092\u6bd4\u8f03\u3067\u304d\u307e\u3059\u3002

    \u5165\u529b\u4f8b

    int square(int num)\n{\n    return num * num;\n}\n

    \u51fa\u529b

    square(int):\n        push    rbp\n        mov     rbp, rsp\n        mov     DWORD PTR [rbp-4], edi\n        mov     eax, DWORD PTR [rbp-4]\n        imul    eax, DWORD PTR [rbp-4]\n        pop     rbp\n        ret\n

    Compiler Explorer \u306b\u306f\u3001Web \u4e0a\u306e\u30d5\u30a1\u30a4\u30eb\u3092 #include \"URL\" \u3067\u30a4\u30f3\u30af\u30eb\u30fc\u30c9\u3067\u304d\u308b\u72ec\u81ea\u62e1\u5f35\u6a5f\u80fd\u304c\u3042\u308a\u307e\u3059\u3002\u3053\u306e\u6a5f\u80fd\u3092\u4f7f\u3046\u3068\u3001GitHub \u306a\u3069\u306b\u516c\u958b\u3055\u308c\u3066\u3044\u308b\u30b7\u30f3\u30b0\u30eb\u30d8\u30c3\u30c0\u30e9\u30a4\u30d6\u30e9\u30ea\u3092\u30d7\u30ed\u30b0\u30e9\u30e0\u306e\u4e2d\u3067\u7c21\u5358\u306b\u4f7f\u3048\u307e\u3059\uff08\u4f8b: https://godbolt.org/z/OV-vGQ\uff09

    "},{"location":"tools/onlinecompilers/#quick-bench","title":"Quick Bench","text":"

    Quick Bench \u306f\u3001google/benchmark \u306b\u3088\u308b C++ \u30d7\u30ed\u30b0\u30e9\u30e0\u306e\u5b9f\u884c\u6642\u9593\u306e\u8a08\u6e2c\u3068\u3001\u305d\u306e\u7d50\u679c\u306e\u30d3\u30b8\u30e5\u30a2\u30e9\u30a4\u30ba\u304c\u3067\u304d\u308b\u30aa\u30f3\u30e9\u30a4\u30f3\u30b3\u30f3\u30d1\u30a4\u30e9\u3067\u3059\u3002\u68d2\u30b0\u30e9\u30d5\u306b\u3088\u308b\u6bd4\u8f03\u3001\u30a2\u30bb\u30f3\u30d6\u30ea\u306e\u8868\u793a\u3001\u30b0\u30e9\u30d5\u753b\u50cf\u306e\u30c0\u30a6\u30f3\u30ed\u30fc\u30c9\u3001URL \u306b\u3088\u308b\u7d50\u679c\u306e\u30b7\u30a7\u30a2\u306a\u3069\u306e\u6a5f\u80fd\u304c\u3042\u308a\u307e\u3059\u3002

    \u4f8b: http://quick-bench.com/O1QdfCc73docKGKjaYBxWG6a9AU

    "},{"location":"tools/onlinecompilers/#build-bench","title":"Build Bench","text":"

    Build Bench \u306f\u3001\u7570\u306a\u308b C++ \u30bd\u30fc\u30b9\u3084\u30d3\u30eb\u30c9\u30aa\u30d7\u30b7\u30e7\u30f3\u3069\u3046\u3057\u306e\u30d3\u30eb\u30c9\u6642\u9593\u3092\u6bd4\u8f03\u3067\u304d\u308b Web \u30b5\u30fc\u30d3\u30b9\u3067\u3059\u3002

    "},{"location":"tools/onlinecompilers/#c-insights","title":"C++ Insights","text":"

    C++ Insights \u306f\u3001\u30e9\u30e0\u30c0\u5f0f\u3001range-based for, \u69cb\u9020\u5316\u675f\u7e1b\u306a\u3069\u3067\u4f55\u304c\u8d77\u3053\u3063\u3066\u3044\u308b\u306e\u304b\u3092\u3001\u30d7\u30ed\u30b0\u30e9\u30e0\u3092\u5358\u7d14\u306a\u30bd\u30fc\u30b9\u30b3\u30fc\u30c9\u306b\u5206\u89e3\u3059\u308b\u3053\u3068\u3067\u53ef\u8996\u5316\u3059\u308b\u30aa\u30f3\u30e9\u30a4\u30f3\u306e\u30c4\u30fc\u30eb\u3067\u3059\u3002

    \u5165\u529b\u4f8b

    #include <cstdio>\n\nint main()\n{\n    const char arr[10]{2,4,6,8};\n\n    for(const char& c : arr)\n    {\n      printf(\"c=%c\\n\", c);\n    }\n}\n
    \u51fa\u529b
    #include <cstdio>\n\nint main()\n{\n  const char arr[10] = {2, 4, 6, 8, '\\0', '\\0', '\\0', '\\0', '\\0', '\\0'};\n  {\n    char const (&__range1)[10] = arr;\n    const char * __begin1 = __range1;\n    const char * __end1 = __range1 + 10l;\n\n    for( ; __begin1 != __end1; ++__begin1 )\n    {\n      const char & c = *__begin1;\n      printf(\"c=%c\\n\", static_cast<int>(c));\n    }\n  }\n}\n

    "},{"location":"tools/onlinecompilers/#ceestudio","title":"cee.studio","text":"

    cee.studio \u306f\u3001C, C++ \u30d7\u30ed\u30b0\u30e9\u30e0\u3092\u5b9f\u884c\u3057\u3066\u3001\u30bb\u30b0\u30e1\u30f3\u30c6\u30fc\u30b7\u30e7\u30f3\u9055\u53cd\u306a\u3069\u30e1\u30e2\u30ea\u306b\u95a2\u3059\u308b\u554f\u984c\u304c\u767a\u751f\u3057\u305f\u3068\u304d\u306b\u3001\u305d\u306e\u7b87\u6240\u3068\u539f\u56e0\u3092\u308f\u304b\u308a\u3084\u3059\u304f\u8868\u793a\u3059\u308b\u6a5f\u80fd\u3092\u6301\u3064\u30aa\u30f3\u30e9\u30a4\u30f3\u30b3\u30f3\u30d1\u30a4\u30e9\u3067\u3059\u3002\u30d0\u30c3\u30d5\u30a1\u30aa\u30fc\u30d0\u30fc\u30e9\u30f3\u3001Null \u30dd\u30a4\u30f3\u30bf\u306e\u53c2\u7167\u5916\u3057\u3001\u672a\u521d\u671f\u5316\u5909\u6570\u306e\u5229\u7528\u306a\u3069\u306e\u554f\u984c\u3092\u660e\u3089\u304b\u306b\u3057\u307e\u3059\u3002\u30aa\u30f3\u30e9\u30a4\u30f3 IDE \u3067\u300cRun in Guarrail\u300d\u30e2\u30fc\u30c9\u3067\u5b9f\u884c\u3059\u308b\u3053\u3068\u3067\u30e1\u30e2\u30ea\u306e\u30c7\u30d0\u30c3\u30b0\u3092\u884c\u3048\u307e\u3059\u3002

    \u5165\u529b\u4f8b

    #include <iostream>\n\nint main()\n{\n    const char s[] = { 'A', 'B', 'C' };\n\n    std::cout << s << '\\n';\n}\n

    \u51fa\u529b\u4f8b

      Memory access error: reading from the outside of a memory space; abort execution.\n  # Reading 4 bytes from 0x981cdd4 will read undefined values.\n  #\n  # The memory-space-to-be-read (start:0x981cdd4, size:3 bytes) is bound to 's' at\n  #    file:/prog.cc::5, 0\n  #\n  #  0x981cdd4               0x981cdd6\n  #  +------------------------------+\n  #  | the memory-space-to-be-read  |......\n  #  +------------------------------+\n  #  ^~~~~~~~~~\n  #  the read starts at the memory-space begin.\n  #\n  # Stack trace (most recent call first) of the read.\n  # [0]  file:/musl-1.1.10/src/string/strlen.c::91, 3\n  # [1]  unknown_location (report this ::244)\n  # [2]  file:/prog.cc::7, 5\n  # [3]  [libc-start-main]\nSegmentation fault\n

    "},{"location":"tools/package-manager/","title":"C++ \u30d1\u30c3\u30b1\u30fc\u30b8\u30de\u30cd\u30fc\u30b8\u30e3","text":""},{"location":"tools/package-manager/#_1","title":"\u30d1\u30c3\u30b1\u30fc\u30b8\u30de\u30cd\u30fc\u30b8\u30e3\u306e\u6bd4\u8f03","text":"\u5bfe\u5fdc\u30d7\u30e9\u30c3\u30c8\u30d5\u30a9\u30fc\u30e0 Vcpkg Windows, macOS, Linux Conan Windows, macOS, Linux Hunter Windows, macOS, Linux Buckaroo Windows, macOS, Linux poac macOS, Linux"},{"location":"tools/project-template/","title":"C++ \u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u30fb\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8","text":""}]} \ No newline at end of file