LoginSignup
8

posted at

updated 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++

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

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
What you can do with signing up
8