
58
|
3 章 現代の C++ への移行
ん。0 と NULL が影響を受けやすく予想外のオーバロード解決になるのに対し、nullptr にはそのよ
うな問題がないという点を併せると、次の鉄則が生まれます。ヌルポインタを表現したい場合は、0
や NULL ではなく、nullptr を使用すること。
重要ポイント
•
0 や NULL よりも nullptr を優先する。
•
汎整数型とポインタ型のオーバロードは避ける。
項目 9:typedef よりもエイリアス宣言を優先する
読者も STL コンテナの使用は良いことだという考えに異論はないでしょう。著者もそう確信
しています。また、項目 18 を読んでも std::unique_ptr の使用は良いことなのだと納得できる
でしょう。しかし著者も読者も「std::unique_ptr<std::unordered_map<std::string, std::
string>>」のような型を何度も記述したくはないだろうとも思います。手根管症候群3 を発症する
恐れが高まります。
そんな病気を予防するには、typedef を活用するのが良いでしょう。
typedef
std::unique_ptr<std::unordered_map<std::string, std::string>>
UPtrMapSS;
しかし、typedef はとてもとても C++98 らしいものです(soooo C++98)。C++11 でも間違いなく
動作しますが、C++11 ではエイリアス宣言 ...