C++

「C++完全理解ガイド」の同意できること上位10

C++完全理解ガイド Rev1.3.00
https://qiita.com/_EnumHack/items/b5672ac9be86584a6629

よかったこと7 20180417現在
よいと思うこと10 20180418現在(7,8,9追加)

1 「良いキーボードを使う」

20代後半で、色々な場所で、色々な機材を使わざるを得ないことがありました。腱鞘炎らしい現象に悩まされました。

自分の指、肘、肩に合ったキーボードを探しましょう。
ノートPCを使うときも、USBキーボードでもいいじゃないか。

2 「いい椅子に座る」

腱鞘炎の防止は、机に肘をつけてなんとかなっている。
腰痛の防止は、1時間に1回は100歩以上歩くことと、
「いい椅子に座る」ことで防いでいる。

3 「お気に入りのドリンクを用意する

個人的に重要なポイント。
紅茶かなーやっぱりww」

30歳の時に肥満性脂肪肝で1週間入院したことがあります。

それまで、コーラとキャラメルコーンを食べながらプログラム組んでいました。

20歳の時より13Kg体重が増えていました。

糖分を控え目にするのに、紅茶、烏龍茶、緑茶を取り揃えています。

4 10冊以上本のサンプルを入れてみる

「4.2 僕が読んだ本(抜粋)
1 C++ Primer
2 Programing Language C++
3 C++ Templates: The Complete Guide
4 C++ テンプレートテクニック
5 Effective C++
6 More Effective C++
7 Effective STL
8 C++11/14 コア言語
9 Effective Modern C++
10 Optimized C++
11 C++ ポケットリファレンス」
並んだ本11冊は、実際に取り組むと良さそうな本が並んでいます。

10冊試してみると、時代、OS、バージョンなどの制約も見えてくるのが経験則です。コンパイルエラーが出るのも時代の一つと理解する。

初版の年月、改定の年月を記録しておくとよい。

1 C++ Primer

2 Programing Language C++

3 C++ Templates: The Complete Guide

C++ Templates The Complete Guide(2nd Edition)をclang++とg++でコンパイルしてみた
https://qiita.com/kaizen_nagoya/items/a7065ea839cb33793bdf

4 C++ テンプレートテクニック

5 Effective C++

https://github.com/BartVandewoestyne/Effective-Cpp/tree/master/Second_Edition

6 More Effective C++

https://github.com/suz-yang/MoreEffectiveCpp

7 Effective STL

https://github.com/Yuzhen11/Effective_STL

8 C++11/14 コア言語

9 Effective Modern C++

Effective ModernC++をclang++, g++でコンパイルしてみる
https://qiita.com/kaizen_nagoya/items/2fafaf28782d192e237e

10 Optimized C++

11 C++ ポケットリファレンス

上記以外に候補を探している。

12 Real-Time C++: Efficient Object-Oriented and Template Microcontroller Programming

https://github.com/ranzhaocgu/Books-and-Papers/blob/master/Books/Programming/Real-Time%20C%2B%2B%20Efficient%20Object-Oriented%20and%20Template.pdf

コードは一部のみ。
https://github.com/ckormanyos/real-time-cpp

13C++ High Performance: Boost and optimize the performance of your C++17 code

https://github.com/PacktPublishing/Cpp-High-Performance/tree/master/Chapter01

5 printfデバッグ

「5.9 デバッグ方法
5.9.1 printf デバッグ
printfデバッグ最強
バグ付近で変数をprintfしまくって引数をいろいろ変えて実行するだけ。
最も効果的である」

デバッガのデバッグほど難しいものはない。
高価なデバッガや、高度なデバッガを使いこなせるまでの間、printfデバッグを併用することをお勧めしたい。

6「4.3 C++を学ぶ前にC言語を学ぶべきか?

結論から言うと間違っていると僕は考える。」

C++でコンパイラやOSを書いてみれば、Cをやる必要はないはずというのが今の仮説です。

7「5.5 エラーメッセージの読み方を極める」

読み方は知らなくても、エラーメッセージを保存しよう。
エラーメッセージを保存せずに質問する人、何様?

「関係ないエラーメッセージは消しました。」
関係ないとわかるのに、なぜ質問してることわからないの?。おかしくね?

8「コンパイラを変えてエラーメッセージを見るのも有効。」

見事に違う方向から出てくると嬉しい。

Clang/Clang++(LLVM) gcc/g++(GNU) コンパイラ警告等比較
https://qiita.com/kaizen_nagoya/items/9a82b958cc3aeef0403f

9「音楽を聴きながら」

昔は音楽を聴きながらが効率が良かった。
最近は音楽が聴ける状況にない。泣)

10 「5.10 規格書(Draft)を極める」

極める必要はない。新たな規格への意見を述べるには、サンプルはコンパイルできるようにしておきたい。

今ココ
N4606 Working Draft 2016, ISO/IEC 14882, C++ standard(1) coding list
https://qiita.com/kaizen_nagoya/items/df5d62c35bd6ed1c3d43/

同意できる事項も他にいろいろあります。

文書履歴

ver 0.10 上位7 20180417
ver 0.11 上位10 20180418
ver 0.12 表現を推敲 20180418