C++11/14 ã³ã¢è¨èª
3,344å (3,040å+ç¨)
é¢é£ãµã¤ã
æ¬æ¸ã®é¢é£ãã¼ã¸ãç¨æããã¦ãã¾ãã
å 容紹ä»
æ¬æ¸ã¯ãC++æ¨æºåå§å¡ä¼ã®ã¡ã³ãã¼ã§ãããèè ãC++11 ã®ã³ã¢è¨èªã®ææ³ã¨æ©è½ãæ¨æºè¦æ ¼æ¸ã«å¾ã£ã¦è§£èª¬ãããã®ã§ããC++ããã°ã©ãã¼ã®ããã«ãæ°å¤ãã®ãµã³ãã«ã³ã¼ãã示ããªãããåé·ãªã»ã©ã®è§£èª¬ãå ãã¦ãã¾ãã å·»æ«ã®ä»é²ã§ã¯ãC++14ã«ã¤ãã¦ãè¨åãã¦ãããææ°ã®C++ã«ã¤ãã¦å¦ã¼ãã¨ããããã°ã©ãã¼ã«ã¨ã£ã¦æé©ã®æ¸ç±ã¨ãªã£ã¦ãã¾ãã
æ¬æ¸ã¯C++11 ã®ã³ã¢è¨èªã®ææ³ã¨æ©è½ãæ¨æºè¦æ ¼æ¸ã«å¾ã£ã¦è§£èª¬ãããã®ã§ãããæ£å¼ãªC++ è¦æ ¼æ¸ã¨ãã¦çºè¡ãããå¾ã®ã1 ã¤å¾ã®ãã©ããè¦æ ¼[N3337]ï¼http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2012/n3337.pdfï¼ãåèã«ãã¦ããããã©ããè¦æ ¼ãåèã«ããçç±ã¯ãæ£å¼ãªC++ è¦æ ¼æ¸ã¯å人ã§ã®å ¥æãç ©ãããããã§ãããèªè ã«å ¥æãå°é£ãªè³æãå ã«è¨è¿°ãããåèæ¸ã¯ä¾¡å¤ããªãããã®ãããèªè ã容æã«å ¥æã§ãããã©ããè¦æ ¼ã®ãã¡ãæ£å¼ãªC++ è¦æ ¼æ¸ã¨ã»ã¨ãã©ããããªãN3337 ãåèã«ããã
æ¬æ¸ã®å¯¾è±¡èªè ã¯ãC++ ã®å©ç¨è ã§ãã£ã¦ãC++ ã³ã³ãã¤ã©ã¼ã®å®è£ è ã§ã¯ãªãããã®ããããµã³ãã«ã³ã¼ããå¢ãããåé·ãªè§£èª¬ãå¢ãããC++ ã³ã³ãã¤ã©ã¼ãå®è£ ããããã®è©³ç´°ãªå®ç¾©ã¯çãããããããæ¬æ¸ã¯C++ è¦æ ¼ã®ç¿»è¨³ã§ã¯ãªããããC++ è¦æ ¼ã®æ¤è¨¼ã«ä½¿ããã¨ã¯ã§ããªãã
æ¬æ¸ã¯ã¾ã C++11/14 ã®è¦æ ¼ãæ£å¼ã«å¶å®ããã¦ããªãã£ã2010 å¹´ãããå½æã®ãã©ããè¦æ ¼ãå ã«æ¸ããã¦ããããã®ãããæ£å¼ãªè¦æ ¼ããç¹ã«C++14 ã«ãããäºç´°ãªå¤æ´ã¯æ¼ããã¦ããå¯è½æ§ããããã¾ããè¿ãå°æ¥ã«å¶å®ãããäºå®ã®C++17 ã®ãã©ããæé¢ã«å ããããå¤æ´ãåæ ãã¦ããªãã
ï¼ãã¯ããã«ãããï¼
æ¸èªæ å ±
- èè : æ±æ·»äº®
- çºè¡æ¥: 2015-09-25 (ç´æ¸ç±ççºè¡æ¥: 2015-09-25)
- æçµæ´æ°æ¥: 2015-09-25
- ãã¼ã¸ã§ã³: 1.0.0
- ãã¼ã¸æ°: 656ãã¼ã¸(PDFçæç®)
- 対å¿ãã©ã¼ããã: PDF
- åºç社: ã¢ã¹ãã¼ãã¯ã³ã´
対象èªè
èè ã«ã¤ãã¦
æ±æ·»äº®
Blog : http://cpplover.blogspot.jp/
GitHub: https://github.com/EzoeRyou/cpp-book
2010 å¹´C++ æ¨æºåå§å¡ä¼ã¨ãã¹ãã¼ãã¡ã³ãã¼
2014 å¹´æ ªå¼ä¼ç¤¾ãã¯ã³ã´å
¥ç¤¾
2015 å¹´C++ æ¨æºåå§å¡ä¼å§å¡
ç®æ¬¡
ã¯ããã«
çè ã«ã¤ãã¦
ã©ã¤ã»ã³ã¹
第1ç« æ¦è¦ï¼Generalï¼
- 1.1 C++ ã¨ã¯
- 1.2 ç¨èªï¼Definitionï¼
- 1.3 ææ³è¨æ³ï¼Syntax notationï¼
- 1.4 C++ ã¡ã¢ãªã¼ã¢ãã«ï¼The C++ memory modelï¼
- 1.5 C++ ãªãã¸ã§ã¯ãã¢ãã«ï¼The C++ object modelï¼
- 1.6 ããã°ã©ã ã®å®è¡ï¼Program executionï¼
第2ç« åå¥è¦ç´ï¼Lexical conventionï¼
- 2.1 翻訳åä½ï¼Separate translationï¼
- 2.2 ã½ã¼ã¹ãã¡ã¤ã«ã®å¤æï¼Phase of translationï¼
- 2.3 æåã»ããï¼Character setï¼
- 2.4 ãã¼ã¯ã³ï¼Tokenï¼
- 2.5 ã³ã¡ã³ãï¼Commentï¼
- 2.6 èå¥åï¼Identifierï¼
- 2.7 ãã¼ã¯ã¼ãï¼Keywordï¼
- 2.8 ãªãã©ã«ï¼Literalï¼
第3ç« åºæ¬äºé ï¼Basic conceptï¼
- 3.1 宣è¨ã¨å®ç¾©ï¼Declaration and definitionï¼
- 3.2 ODRï¼One definition ruleï¼
- 3.3 ã¹ã³ã¼ãï¼Scopeï¼
- 3.4 ååæ¢ç´¢ï¼Name lookupï¼
- 3.5 ããã°ã©ã ã¨ãªã³ã±ã¼ã¸ï¼Program and linkageï¼
- 3.6 ããã°ã©ã ã®éå§ã¨çµäºï¼Start and terminationï¼
- 3.7 ã¹ãã¬ã¼ã¸ï¼storage durationï¼
- 3.8 ãªãã¸ã§ã¯ãã®å¯¿å½ï¼Object lifetimeï¼
- 3.9 åï¼Typeï¼
第4ç« æ¨æºåå¤æï¼Standard conversionï¼
- 4.1 lvalue ããrvalue ã¸ã®åå¤æï¼Lvalue-to-rvalue conversionï¼
- 4.2 é åãããã¤ã³ã¿ã¼ã¸ã®åå¤æï¼Array-to-pointer conversionï¼
- 4.3 é¢æ°ãããã¤ã³ã¿ã¼ã¸ã®åå¤æï¼Function-to-pointer conversionï¼
- 4.4 CV 修飾åã®åå¤æï¼Qualification conversionï¼
- 4.5 æ´æ°ã®å¤æé ä½ï¼Integer conversion rankï¼
- 4.6 æ´æ°ã®ããã¢ã¼ã·ã§ã³ï¼Integral promotionï¼
- 4.7 æ´æ°ã®åå¤æï¼Integral conversionï¼
- 4.8 æµ®åå°æ°ç¹æ°ã®ããã¢ã¼ã·ã§ã³ï¼Floating point promotionï¼
- 4.9 æµ®åå°æ°ç¹æ°ã®åå¤æï¼Floating point conversionï¼
- 4.10 æµ®åå°æ°ç¹æ°ã¨æ´æ°ã®éã®åå¤æï¼Floating-integral conversionï¼
- 4.11 ãã¤ã³ã¿ã¼ã®åå¤æï¼Pointer conversionï¼
- 4.12 ã¡ã³ãã¼ã¸ã®ãã¤ã³ã¿ã¼ã®åå¤æï¼Pointer to member conversionï¼
- 4.13 bool ã®åå¤æï¼Boolean conversionï¼
第5ç« å¼ï¼Expressionï¼
- 5.1 åªå é ä½ã¨è©ä¾¡é åº.
- 5.2 æªè©ä¾¡ãªãã©ã³ãï¼unevaluated operandï¼
- 5.3 ä¸æ¬¡å¼ï¼Primary expressionï¼
- 5.4 ã©ã ãå¼ï¼Lambda expressionï¼
- 5.5 å¾ç½®å¼ï¼Postfix expressionï¼
- 5.6 åé å¼ï¼Unary expressionï¼
- 5.7 ãã£ã¹ãå½¢å¼ã«ããæ示çåå¤æï¼Explicit type conversion (cast notation)ï¼
- 5.8 ã¡ã³ãã¼ã¸ã®ãã¤ã³ã¿ã¼æ¼ç®åï¼Pointer-to-member operatorï¼
- 5.9 ä¹é¤ç®ã®æ¼ç®åï¼Multiplicative operatorï¼
- 5.10 å æ¸ç®ã®æ¼ç®åï¼Additive operatorï¼
- 5.11 ã·ããæ¼ç®åï¼Shift operatorï¼
- 5.12 é¢ä¿æ¼ç®åï¼Relational operatorï¼
- 5.13 ç価æ¼ç®åï¼Equality operatorï¼
- 5.14 ãããåè«çç©æ¼ç®åï¼Bitwise AND operatorï¼
- 5.15 ãããåæä»çè«çåæ¼ç®åï¼Bitwise exclusive OR operatorï¼
- 5.16 ãããåè«çåæ¼ç®åï¼Bitwise inclusive OR operatorï¼
- 5.17 è«çç©æ¼ç®åï¼Logical AND operatorï¼
- 5.18 è«çåæ¼ç®åï¼Logical OR operatorï¼
- 5.19 æ¡ä»¶æ¼ç®åï¼Conditional operatorï¼
- 5.20 ä»£å ¥ã¨è¤åä»£å ¥æ¼ç®åï¼Assignment and compound assignment operatorï¼
- 5.21 ã³ã³ãæ¼ç®åï¼Comma operatorï¼
- 5.22 å®æ°å¼ï¼Constant expressionï¼
第6ç« æï¼Statementï¼
- 6.1 ã©ãã«æï¼Labeled statementï¼
- 6.2 å¼æï¼Expression statementï¼
- 6.3 è¤åæããããã¯ï¼Compound statement or blockï¼
- 6.4 é¸ææï¼Selection statementï¼
- 6.5 ç¹°ãè¿ãæï¼Iteration statementï¼
- 6.6 宣è¨æï¼Declaration statementï¼
- 6.7 ææ§è§£æ±ºï¼Ambiguity resolutionï¼
第7ç« å®£è¨ï¼Declarationï¼
- 7.1 åç´å®£è¨ï¼simple-declarationï¼
- 7.2 static_assert 宣è¨ï¼static_assert-declarationï¼
- 7.3 æå®åï¼Specifierï¼
- 7.4 enum ã®å®£è¨ï¼Enumeration declarationï¼
- 7.5 åå空éï¼Namespaceï¼
- 7.6 ãªã³ã±ã¼ã¸æå®ï¼Linkage specificationï¼
- 7.7 ã¢ããªãã¥ã¼ãï¼Attributeï¼
第8ç« å®£è¨åï¼Declaratorï¼
- 8.1 ååï¼Type nameï¼
- 8.2 ææ§è§£æ±ºï¼Ambiguity resolutionï¼
- 8.3 宣è¨åã®æå³ï¼Meaning of declaratorï¼
- 8.4 é¢æ°ã®å®ç¾©ï¼Function definitionï¼
- 8.5 åæååï¼Initializerï¼
第9ç« ã¯ã©ã¹ï¼Classï¼
- 9.1 ããªãã¢ã«ã«ã³ãã¼å¯è½ãªã¯ã©ã¹ï¼trivially copyable classï¼
- 9.2 ããªãã¢ã«ã¯ã©ã¹ï¼trivial classï¼
- 9.3 æ¨æºã¬ã¤ã¢ã¦ãã¯ã©ã¹ï¼standard-layout classï¼
- 9.4 POD æ§é ä½ï¼POD structï¼
- 9.5 ã¯ã©ã¹åï¼Class nameï¼
- 9.6 ã¯ã©ã¹ã®ã¡ã³ãã¼ï¼Class memberï¼
- 9.7 ã¡ã³ãã¼é¢æ°ï¼Member functionï¼
- 9.8 static ã¡ã³ãã¼ï¼Static memberï¼
- 9.9 union
- 9.10 ããããã£ã¼ã«ãï¼Bit-fieldï¼
- 9.11 ã¯ã©ã¹å®£è¨ã®ãã¹ãï¼Nested class declarationï¼
- 9.12 ãã¼ã«ã«ã¯ã©ã¹å®£è¨ï¼Local class declarationï¼
- 9.13 ååã®ãã¹ãï¼Nested type nameï¼
第10ç« æ´¾çã¯ã©ã¹ï¼Derived classï¼
- 10.1 è¤æ°ã®åºæ¬ã¯ã©ã¹ï¼Multiple base classï¼
- 10.2 ã¡ã³ãã¼ã®ååæ¢ç´¢ï¼Member name lookupï¼
- 10.3 virtual é¢æ°ï¼Virtual functionï¼
- 10.4 ã¢ãã¹ãã©ã¯ãã¯ã©ã¹ï¼Abstract classï¼
第11ç« ã¡ã³ãã¼ã®ã¢ã¯ã»ã¹æå®ï¼Member access controlï¼
- 11.1 ã¢ã¯ã»ã¹æå®åï¼Access specifierï¼
- 11.2 åºæ¬ã¯ã©ã¹ã¨ãåºæ¬ã¯ã©ã¹ã®ã¡ã³ãã¼ã¸ã®ã¢ã¯ã»ã¹æå®ï¼Accessibility of base class and base class memberï¼
- 11.3 friend
- 11.4 protected ã¡ã³ãã¼ã¢ã¯ã»ã¹ï¼Protected member accessï¼
- 11.5 virtual é¢æ°ã¸ã®ã¢ã¯ã»ã¹ï¼Access to virtual functionï¼
- 11.6 è¤æ°ã®ã¢ã¯ã»ã¹ï¼Multiple accessï¼
- 11.7 ãã¹ããããã¯ã©ã¹ï¼Nested classï¼
第12ç« ç¹å¥ãªã¡ã³ãã¼é¢æ°ï¼Special member functionï¼
- 12.1 ã³ã³ã¹ãã©ã¯ã¿ã¼ï¼Constructorï¼
- 12.2 ä¸æãªãã¸ã§ã¯ãï¼Temporary objectï¼
- 12.3 åå¤æï¼Conversionï¼
- 12.4 ãã¹ãã©ã¯ã¿ã¼ï¼Destructorï¼
- 12.5 ããªã¼ã¹ãã¢ï¼Free storeï¼
- 12.6 åæåï¼Initializationï¼
- 12.7 çæã¨ç ´æ£ï¼Construction and destructionï¼
- 12.8 ã¯ã©ã¹ã®ã³ãã¼ã¨ã ã¼ã.
- 12.9 ã³ã³ã¹ãã©ã¯ã¿ã¼ç¶æ¿ï¼Inheriting constructorï¼
第13ç« ãªã¼ãã¼ãã¼ãï¼Overloadingï¼
- 13.1 ãªã¼ãã¼ãã¼ãå¯è½ãªå®£è¨ï¼Overloadable declarationï¼
- 13.2 ãªã¼ãã¼ãã¼ãã®ãã®ä»ã®æ³¨æäºé .
- 13.3 ãªã¼ãã¼ãã¼ã解決ï¼Overload resolutionï¼
- 13.4 é©åé¢æ°ï¼Viable functionï¼
- 13.5 æé©é¢æ°ï¼Best viable functionï¼
- 13.6 ãªã¼ãã¼ãã¼ãé¢æ°ã®ã¢ãã¬ã¹ï¼Address of overloaded functionï¼
- 13.7 ãªã¼ãã¼ãã¼ãæ¼ç®åï¼Overloaded operatorï¼
第14ç« ãã³ãã¬ã¼ãï¼Templateï¼
- 14.1 ãã³ãã¬ã¼ãä»®å¼æ°/å®å¼æ°ï¼Template parameter/argumentï¼
- 14.2 ãã³ãã¬ã¼ãç¹æ®åã®ååï¼Name of template specializationï¼
- 14.3 åã®åä¸æ§ï¼Type equivalenceï¼
- 14.4 ãã³ãã¬ã¼ã宣è¨ï¼Template declarationï¼
- 14.5 åå解決ï¼Name Resolutionï¼
- 14.6 ãã³ãã¬ã¼ãã®å®ä½åã¨ç¹æ®åï¼Template instantiation and specializationï¼
- 14.7 é¢æ°ãã³ãã¬ã¼ãã®ç¹æ®åï¼Function template specializationï¼
第15ç« ä¾å¤ï¼Exception handlingï¼
- 15.1 ä¾å¤ãæããï¼Throwing an exceptionï¼
- 15.2 ã³ã³ã¹ãã©ã¯ã¿ã¼ã¨ãã¹ãã©ã¯ã¿ã¼ï¼Constructor and destructorï¼
- 15.3 ä¾å¤ã®ææï¼Handling an exceptionï¼
- 15.4 ä¾å¤æå®ï¼Exception specificationï¼
ä»é²A C++14 ã®æ°æ©è½
- A.1 2 é²æ°ãªãã©ã«ï¼binary literalï¼
- A.2 æ¡åºåãï¼digit separatorï¼
- A.3 æ±ç¨lambda ãã£ããã£ã¼ï¼Generalized Lambda-captureï¼
- A.4 ã¸ã§ããªãã¯lambda
- A.5 ãµã¤ãºã¤ã解æ¾é¢æ°
- A.6 constexpr é¢æ°ã®å¶éç·©å
- A.7 constexpr ã¡ã³ãã¼é¢æ°ã®æé»ã®const å»æ¢
- A.8 decltype(auto)
- A.9 æ»ãå¤ã®åæ¨å®
- A.10 [[deprecated]]
- A.11 ã¡ã³ãã¼åæååã¨ã¢ã°ãªã²ã¼ãåæåã®ä½µç¨
- A.12 å¤æ°ãã³ãã¬ã¼ãï¼variable templateï¼