第3回 分割コンパイルとテンプレートの「明示的」実体化
2017年10月15日 実践C++応用講座
こんにちは。田原です。 前回、前々回とテンプレートは通常は暗黙的に実体化される話をしました。マクロでクラス・テンプレートっぽいことをする場合は「明示的実体化のようなもの」が必要ですが、テンプレートでは省略できます。しかし …
第2回目 関数テンプレートの基本
2017年10月8日 実践C++応用講座
こんにちは。田原です。 前回クラス・テンプレートの基礎を解説しました。今回はもう一つのテンプレート、関数テンプレートの基本について解説します。クラス・テンプレートも同様ですが基本的な使い方は簡単です。そして、テンプレート …
第1回目 クラス・テンプレートの基本
2017年9月30日 実践C++応用講座
こんにちは。田原です。 今回から応用講座をスタートします。案内にも記載したようにテンプレートを中心に解説していきます。 C++のテンプレートはびっくりするほど様々な機能を持っています。語り始めると長くなりすぎますので早速 …
第37回目 ムーブの使いどころ
2017年9月17日 実践C++入門講座
こんにちは。田原です。 今回は、最後にムーブの使いどころについて解説します。ムーブはC++11前までは無かった機能ですので頻繁に使われるわけではありません。意外に使いどころが難しいです。しかし、実は標準ライブラリで有効に …
第36回目 最後の特殊メンバ関数ムーブ・コンストラクタ
2017年9月10日 実践C++入門講座
こんにちは。田原です。 今回は最後の特殊メンバ関数ムーブ・コンストラクタとその使い方について解説します。また、特殊メンバ関数は常に自動生成されるわけではありません。自動生成されないのはどんな時か、またその理由について説明 …
第35回目 ムーブと右辺値参照と特殊メンバ関数と
2017年9月3日 実践C++入門講座
こんにちは。田原です。 前回、6つの特殊メンバ関数の内の4つを解説しました。今回は残りの2つのうちの一つムーブ代入演算子とそれにまつわるムーブ・セマンティクス、そして、C/C++歴史上4番目のポインタ(的なもの)「右辺値 …
第34回目 6個のスペシャルなメンバ関数
2017年8月27日 実践C++入門講座
こんにちは。暑い日が続いてます。ちょっと夏バテ気味の田原です。 さて、C++のクラスにはスペシャルなメンバ関数が6個あります。このように書くとなんだか特別でC++らしく非常に難しいメンバ関数がありそうですが、実は全くそん …
第33回目 C++の型変換でバグを未然に防ごう
2017年8月20日 実践C++入門講座
こんにちは。田原です。 C言語の明示的な型変換は1つしかありません。問答無用に変換するので使い方を誤りやすくバグの元になり勝ちです。それに比べC++の明示的な型変換は危険なものが別れているためそれを使わないよう避けておけ …
第32回目 ちょっとイライラするconst。でも、実は頼もしい奴です。
2017年8月6日 実践C++入門講座
こんにちは。田原です。 書き換えてはいけない変数を間違って書き換えるバグのデバッグはたいへんです。問題発生時のログを精査するなどいつも苦労します。しかし、そんなこともあろうかとC++にはconstと言う概念が用意されてい …
第31回目 イテレータの仕組みと範囲ベースforの仕組み
2017年7月30日 実践C++入門講座
こんにちは。田原です。 難しい話が続いたので、ちょっと気楽にfor文について解説します。C++ではC言語にはなかった「イテレータ」が追加されました。そして、C++11ではコードがスッキリして可読性が上がる範囲ベースfor …