Google
ブログ(iiyu.asablo.jpの検索)
ホットコーナー内の検索
 でもASAHIネット(asahi-net.or.jp)全体の検索です。
 検索したい言葉のあとに、空白で区切ってki4s-nkmrを入れるといいかも。
 例 中村(show) ki4s-nkmr

ウェブ全体の検索

Modern C++チャレンジ、独習C++ 新版2019年12月28日 23時26分56秒

ASAHIネット(http://asahi-net.jp )のブログサービス、アサブロ(https://asahi-net.jp/asablo/ )を使っています。
---
■Modern C++チャレンジ
 C++を勉強中の新人君から、いい問題集みたいなものはないですかと質問されたので、「Modern C++チャレンジ」を薦めます。
 彼ははまだ、「C++の教科書」(*1)で、C++をコアな言語機能をざっと一巡りし、「ポケットリファレンス」(*2)の標準コンテナと標準アルゴリズムをしっかりやっておくようにいわれてやったレベルなので、「Modern C++チャレンジ」は、かなり難しいかもしれませんが、やりがいはあると思います。
 問題が解けなくても、一度、自分なりに書いてみて、解答をみて勉強すればいいと思います。おそらく、なぜ、そんな書き方ができるのか、わからないことが多いと思うけれど、そのときは、また教科書とポケットリファレンスを読めばいいわけです。
 とにかく手を動かして、実際にコードを書いてみて、いっぱい失敗しながら、身体に感覚を覚えさせるのが大切です。座学で頭で理解したつもりでは、いいソフトは書けません。ソフトに限らず、どんな分野でも言えることですが。
 C++をよく知っている人でも、そもそも問題自体が難しいものも多いので、やりがいはあると思います。

 本書のコードは、Visual Studio 2019のVisual C++ 2019なら問題なくコンパイルできるはずです。Visual C++がないときは、オンラインコンパイラの
https://wandbox.org
で試してください。
 ここは、C++17まで、C++20の一部まで、コンパイルできます。しかも、GCCとCLangが使え、しかもしかも、boostライブラリまで使えます。しかもしかもしかも、C++だけではなく、いろんな言語もコンパイルできます。
 ちょっとしたコードを試すには、とても便利。

 C++をずっと書いてきた人でも、実は、頭がCやOld C++のままで、Modern C++は書いてないという人にも有用です。Modern C++になると、こんな書き方をするんだという発見、びっくりがいろいろあるはずです。
 主としてJavaで書いていた人にも有用です。実は、JavaもJava 8以降は、Modern Javaと言っていいくらい、コンテナ関係をはじめ、あちこち進化していますが、それを知らない、古いJavaの頭の人は、Modern C++にびっくりするでしょう。
 Modern C++に慣れてない人は(ぼくも慣れているとは言えないけれど)、コードの中には、おしゃれすぎて、ついていけないものがあるでしょう。なぜなら、テンプレートプログラミングやテンプレートメタプログラミング(TMP)の知識がないと理解不能なコードも、平気で出てくるからです。
 STLのコンテナやアルゴリズムも当たり前のように使われているから、ループを自分で回していたような人は、たった1行でなんでそうなるの?と驚くでしょう。とはいえ、STLの全貌からすれば、本書では少ししか触れてないわけですが。
 STLだけで足りないところは、手間と時間の節約になる有用なライブラリも使っています。そういう有用なライブラリをかじることもできます。

 本書を読んで、わからない構文やキーワードが出てきたら、何よりまず、
https://cpprefjp.github.io
cpprefjp - C++日本語リファレンス
に行って、検索してみてください。STLの全貌を知るにもいい場所です。
 ここは、ほんとに素晴らしい。維持・管理・運営している高橋晶さんたちの、熱意と努力には、ほんとに頭が下がります。感謝です。なお、高橋晶さんたちは、「C++ポケットリファレンス」の著者です。
 たとえば、std::transformやstd::ostream_iteratorが何かわからないときは、上記に行って、右上の検索窓に入力して検索してください。

 もう1つ、行くべきは、
https://ja.cppreference.com/w/
C++リファレンス
です。ここも、STLの全貌を知るにもいい場所です。ここは、C言語のリファレンスもあります。
 ここも、ほんとに素晴らしい。維持・管理・運営している人たちの、熱意と努力には、ほんとに頭が下がります。感謝です。

https://www.amazon.co.jp/exec/obidos/ASIN/4873118697/showshotcorne-22/
Modern C++チャレンジ ―C++17プログラミング力を鍛える100問 (日本語) 単行本(ソフトカバー) 2019/2/14
Marius Bancila (著), 島 敏博 (監修), 黒川 利明 (翻訳)

 オライリー・ジャパンにある紹介。詳しい目次などもあります。
 日本語版の電子書籍もここから買えます。PDF, EPUB, Kindle版をまとめて買えます。ぼくは、ここで、日本語版の電子書籍を買いました。
https://www.oreilly.co.jp/books/9784873118697/
Modern C++チャレンジ ――C++17プログラミング力を鍛える100問
Marius Bancila 著、黒川 利明 訳、島 敏博 技術監修
2019年02月 発行
332ページ
ISBN978-4-87311-869-7

 日本語版は、原書に比べ、変更があります。原著者の日本語版への序文から。
--- ここから ---
高信頼性ソフトウェアへの要望が強いことから、オライリー・ジャパンは日本語版においてISO/IEC C++標準だけでなく、独立行政法人情報処理推進機構ソフトウェア高信頼化センター(IPA/SEC)が発行した「組込みソフトウェア開発向けコーディング作法ガイド」(ESCR)も反映することを決定しました。その結果、翻訳者の黒川利明、技術監修者の島敏博両氏は、本文と解答のコードを私と連絡を取りながら細かくチェックして修正してくれました。頻繁に行われた有用な連絡から見ても、この翻訳版が元の英語版よりも優れているのは間違いないと確信しています。
--- ここまで ---

■「組込みソフトウェア開発向けコーディング作法ガイド」(ESCR)
 序文に出てくる、IPAが出している「組込みソフトウェア開発向けコーディング作法ガイド」(ESCR)のPDFは、IPAに行けば、無料でダウンロードできます。
 ダウンロードして読んでみたら、いいことが、いっぱい書いてあります。しかし、組み込み系のコーディングのガイドだから、再帰は使わないとか、アンテナハウスのように、そこまでメモリやCPUといった資源の少なさを気にしなくていいプログラミングにとっては、ちょっと理不尽な項目もあります。

https://www.ipa.go.jp/sec/publish/tn16-007.html
【改訂版】組込みソフトウェア開発向けコーディング作法ガイド[C++言語版] Ver. 2.0 (ESCR C++ Ver. 2.0)
書籍名 【改訂版】組込みソフトウェア開発向けコーディング作法ガイド[C++言語版] Ver. 2.0 (ESCR C++ Ver. 2.0)
編集・発行元 独立行政法人情報処理推進機構(IPA)
技術本部 ソフトウェア高信頼化センター(SEC)
発行日 2016年10月1日
サイズ B5変形判
ページ数 208ページ
ISBN 978-4-905318-47-7
定 価 1,389円(税抜)

 アマゾンにある紙書籍。
https://www.amazon.co.jp/exec/obidos/ASIN/4905318475/showshotcorne-22/
SEC BOOKS 【改訂版】組込みソフトウェア開発向けコーディング作法ガイド[C++言語版]Ver. 2.0(ESCR C++ Ver. 2.0) (日本語) 単行本(ソフトカバー) 2016/10/18
独立行政法人情報処理推進機構 (著, 編集)

 C言語版もあります。
https://www.ipa.go.jp/sec/publish/tn18-004.html
【改訂版】組込みソフトウェア開発向け コーディング作法ガイド[C言語版]ESCR Ver.3.0
書籍名 【改訂版】組込みソフトウェア開発向け コーディング作法ガイド[C言語版]ESCR Ver.3.0
編集・発行元 独立行政法人情報処理推進機構(IPA)
技術本部 ソフトウェア高信頼化センター(SEC)
発行日 2018年6月29日
サイズ B5変形判
ページ数 202ページ
ISBN 978-4-905318-62-0
定 価 本体1,389円(税抜)

 アマゾンにある紙書籍。
https://www.amazon.co.jp/exec/obidos/ASIN/4905318629/showshotcorne-22/
SECBOOKS ESCR Ver. 3.0:【改訂版】組込みソフトウェア開発向け コーディング作法ガイド[C言語版]ESCR Ver.3.0

■The Modern C++ Challenge
 「Modern C++チャレンジ」の原書は、Packt Publishingから出ている、次です。
 去年(2018)に出てから、Packtでは、ずっとC++カテゴリーのベストセラー1位でした。
https://www.packtpub.com/application-development/modern-c-challenge
The Modern C++ Challenge
Marius Bancila
May 22, 2018
328 pages

http://iiyu.asablo.jp/blog/2019/12/19/9191163
Packtの電子書籍5ドルセールが始まりました\(^O^)/ C++のお薦め本を少し
で書いたように、Packtは、いま、クリスマスセール中で、電子書籍は、どれでも1冊5ドルという大バーゲン中です。英語でいい人は、Packtに行ってみてください。
 PDF, EPUB, Kindleの3フォーマットが手に入ります。しかも、DRMフリー。
 ぼくは毎年のように、この時期、まとめ買いします。
 「The Modern C++ Challenge」は、去年のクリスマスセールで買ったと思うけれど、意外に早く日本語版が出て、ちょっとへこみました。(>_<)
 調べたら、2019年2月だから、買ってたった2か月で日本語版が出たのね。定価の27.99ドルだったら、ショックだったかもしれませんが、ま、5ドルだからいいです。

■独習C++ 新版
 「C++の教科書」は、C++14までの対応だし、コア言語部分を中心に、かなりさらっとした解説。
 逆引き辞典的な「ポケットリファレンス」は、STLのこともたくさん出ているが、「C++の教科書」とのギャップがだいぶあって、間を埋める本がないかと思っていたら、「独習C++ 新版」が、かなり埋めてくれそうな気がします。
 コア言語の解説が主で、STLはほとんど触れてないが、個々の解説は、「C++の教科書」より踏み込んだ解説。C++17まで対応。
 「C++の教科書」が物足りない人に、お薦め。

https://www.amazon.co.jp/exec/obidos/ASIN/4798150231/showshotcorne-22/
独習C++ 新版 (日本語) 単行本(ソフトカバー) 2019/11/11
高橋 航平 (著), επιστημη(エピステーメー) (監修)

https://www.amazon.co.jp/exec/obidos/ASIN/B07XQ5TWY2/showshotcorne-22/
独習C++ 新版 Kindle版
高橋 航平 (著), επιστημη(エピステーメー) (監修)

 翔泳社にある紹介。正誤表もあるし、電子書籍も買える。ぼくは、ここで、PDFを買いました。
https://www.shoeisha.co.jp/book/detail/9784798150239
独習C++ 新版
高橋航平 著
επιστημη(エピステーメー) 監修

*1
 本文で「C++の教科書」と呼んでいるのは、これ。
https://www.amazon.co.jp/exec/obidos/ASIN/4822298930/showshotcorne-22/
基礎からしっかり学ぶC++の教科書 C++14対応 (日本語) 単行本 2017/2/16
矢吹 太朗 (著), WINGSプロジェクト 山田 祥寛 (監修)

https://www.amazon.co.jp/exec/obidos/ASIN/B074FQS3D1/showshotcorne-22/
基礎からしっかり学ぶC++の教科書 C++14対応 マイクロソフト関連書 Kindle版
矢吹 太朗 (著)

*2
 本文で「ポケットリファレンス」と呼んでいるのは、これ。
https://www.amazon.co.jp/exec/obidos/ASIN/4774195677/showshotcorne-22/
[改訂第3版]C++ポケットリファレンス (POCKET REFERENCE) (日本語) 単行本(ソフトカバー) 2018/2/15
高橋 晶 (著), 安藤 敏彦 (著), 一戸 優介 (著), 楠田 真矢 (著), 湯朝 剛介 (著)

https://www.amazon.co.jp/exec/obidos/ASIN/B07B45V3C2/showshotcorne-22/
[改訂第3版]C++ポケットリファレンス Kindle版
高橋 晶 (著), 安藤 敏彦 (著), 一戸 優介 (著), 楠田 真矢 (著), 湯朝 剛介 (著)

関連:
http://iiyu.asablo.jp/blog/2019/12/19/9191163
Packtの電子書籍5ドルセールが始まりました\(^O^)/ C++のお薦め本を少し
http://iiyu.asablo.jp/blog/2019/12/04/9184938
日経SYSTEMなどのアンケート。CとC++を一緒にしちゃ、だめだってば。「独習C++ 新版」のことも少し。ネットの筋の悪いSTL解説に引っかかっちゃだめ。
http://iiyu.asablo.jp/blog/2019/03/10/9045812
C++は、C++20で、また劇的に変わりそうなのね。ますます関数型、ますますコンパイル時計算島倉千代子\(^O^)/
http://iiyu.asablo.jp/blog/2019/02/27/9041626
C++17まで対応の「C++ポケットリファレンス」の改訂第3版が出ていたことに、やっと気づいた\(^O^)/
http://iiyu.asablo.jp/blog/2018/10/16/8975329
C++テンプレートプログラミングの定番本の第2版、C++ Templates The Complete Guide Second Edition
http://iiyu.asablo.jp/blog/2018/08/15/8942252
モダンC++(Modern C++):江添亮の詳説C++17
http://iiyu.asablo.jp/blog/2018/08/14/8941408
C++の劇的な進化に圧倒されるModern C++
http://iiyu.asablo.jp/blog/2018/06/05/8875815
Exceptional C++―47のクイズ形式によるプログラム問題と解法。この本は古いので、C++11以降のモダンなC++の本をあれこれ。
http://iiyu.asablo.jp/blog/2017/06/20/8600969
C++の実装状況、言語機能、リファレンス。Effective Modern C++――C++11/14プログラムを進化させる42項目
http://iiyu.asablo.jp/blog/2017/06/03/8584002
基礎からしっかり学ぶC++の教科書 C++14対応、Optimized C++、C++ ポケットリファレンス、改訂新版 C++ポケットリファレンス
http://iiyu.asablo.jp/blog/2017/05/23/8572667
型推論。C++の型推論なら「Effective Modern C++ ―C++11/14プログラムを進化させる42項目」が必読。オライリー・ジャパンで買った、この本の電子書籍のことも
http://iiyu.asablo.jp/blog/2016/04/08/8067423
C++の解説本、STL, Effectvieシリーズ、ゲームプログラマのためのコーディング技術、リーダブルコード、Code Complete, コーディングを支える技術
http://iiyu.asablo.jp/blog/2015/09/25/7812131
マーティン・レディ著「C++のためのAPIデザイン」
http://iiyu.asablo.jp/blog/2015/09/25/7812140
Effective Modern C++ ―C++11/14プログラムを進化させる42項目、C++11/14コア言語
http://iiyu.asablo.jp/blog/2014/09/26/7443432
Effective Modern C++, C++11, C++14。C++ Multithreading Cookbook。ICT業界の技術者が、若いときにやっておくべきこと。

ネタ:
http://iiyu.asablo.jp/blog/2017/02/14/8360963
C++ std::stringが、こうやったら、最強やのぉ。