Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationEventAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
9
Help us understand the problem. What are the problem?
@kaizen_nagoya

「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
このエントリーをはてなブックマークに追加
http://b.hatena.ne.jp/guide/bbutton

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
9
Help us understand the problem. What are the problem?