Edited at

「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


20歳の時に神経性胃炎でコーヒーにはミルクを入れろと言われました。

30歳の時に肥満性脂肪肝で1週間入院したことがあります。20歳の時より20Kg体重が増えていました。

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

コーヒーにはミルクを入れるなと言われました。

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

2018年夏には、麦茶を常備しました。


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、バージョンなどの制約も見えてくるのが経験則です。コンパイルエラーが出るのも時代の一つと理解する。

C++, JAVA, Pythonなど大切な言語は10冊やってから講師を勤めてます。

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


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デバッグを併用することをお勧めしたい。


6CとC++


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)を極める

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

今ココ

C++N3242, 2011 sample code compile list on clang++ and g++

https://qiita.com/kaizen_nagoya/items/685b5c1a2c17c1bf1318

N4606 Working Draft 2016, ISO/IEC 14882, C++ standard(1) coding list

https://qiita.com/kaizen_nagoya/items/df5d62c35bd6ed1c3d43

C++N4741, 2018 Standard Working Draft on ISO/IEC 14882 sample code compile list

https://qiita.com/kaizen_nagoya/items/3294c014044550896010


同意

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


僕がC++を使う理由

速いコードを生成するから

ハードウェアリソースやシステム関数に直接アクセスできる

これがC++をやめられない理由。

C++の現代的なイディオムを知るごとに、C++はずっとフレンドリーに感じられ

C++の規格書を理解するごとに、エラーメッセージはずっとフレンドリーに感じられる

昔話をしよう。

僕の卒業研究は『区間解析を用いた大域的最適化手法の改良』だった。


僕の卒業研究は「連立微分方程式のPade近似」でした。ごめんなさい。FORTRANで描いてます。C++まだ存在していなかった。


文書履歴

ver. 0.10 上位7 20180417

ver. 0.11 上位10 20180418

ver. 0.12 表現を推敲 20180418

ver. 0.13 引用を補強, C++N4741, C++N3242追記 20190301

このエントリーをはてなブックマークに追加

http://b.hatena.ne.jp/guide/bbutton