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++
6 More Effective C++
7 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/ckormanyos/real-time-cpp
13 C++ High Performance: Boost and optimize the performance of your C++17 code
5 printfデバッグ
「5.9 デバッグ方法
5.9.1 printf デバッグ
printfデバッグ最強
バグ付近で変数をprintfしまくって引数をいろいろ変えて実行するだけ。
最も効果的である」
デバッガのデバッグほど難しいものはない。
高価なデバッガや、高度なデバッガを使いこなせるまでの間、printfデバッグを併用することをお勧めしたい。
6 Cと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
同意
同意できる事項も他にいろいろあります。
僕が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
ver. 0.14 表現補足 20201226
ver. 0.15 AdventCalendar2021追記 20220115
最後までおよみいただきありがとうございました。
いいね 💚、フォローをお願いします。
Thank you very much for reading to the last sentence.
Please press the like icon 💚 and follow me for your happy life.
http://b.hatena.ne.jp/guide/bbutton