Skip to Content
Effective Modern C++ ―C++11/14プログラムを進化させる42項目
book

Effective Modern C++ ―C++11/14プログラムを進化させる42項目

by Scott Meyers, 千住 治郎
September 2015
Intermediate to advanced
364 pages
10h 33m
Japanese
O'Reilly Japan, Inc.
Content preview from Effective Modern C++ ―C++11/14プログラムを進化させる42項目
115
4
スマートポインタ
詩人や作詞家は愛について特別な思い入れを持ちます。また、数え方にこだわることもあり、時
にはその両方に大きな意味を見出します。Elizabeth Barrett Browning 1 Paul Simon 2 では愛と
その数え方が異なりますが、これに触発されたので試しに raw ポインタをなかなか愛せない理由を
数えてみましょう。
1. その宣言からでは、単一オブジェクトを指すのか、配列を指すのかを判断できない。
2. その宣言からでは、使用を終えた時に対象オブジェクトを破棄すべきか否か、すなわちポイ
ンタがその指しているオブジェクトを所有しているか否かを判断できない。
3. 対象オブジェクトを破棄すべきと判断したとしても、delete するか、もしくは他の破棄方法
を実行すべきか(そのポインタ専用の破棄関数など)、破棄方法を通知する手段がない。
4. 破棄方法が delete だと分かったとしても、上記の理由 1 のように単一オブジェクトとして
扱うのか(「delete」)、それとも配列として扱うのかを知る術がない(「delete []」)。形態
が一致しない破棄を実行するとその結果は未定義となってしまう。
5. ポインタが対象オブジェクトを所有しており、破棄方法も判明したとしても、コードの全実
行パス中で正確に一度だけ破棄するのは容易ではない(例外処理の実行パスも含め)。実行パ
スをすべて把握できなければリソースの解放もれになり、逆に複数回破棄しては未定義動作
となってしまう。 ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.

Read now

Unlock full access

More than 5,000 organizations count on O’Reilly

AirBnbBlueOriginElectronic ArtsHomeDepotNasdaqRakutenTata Consultancy Services

QuotationMarkO’Reilly covers everything we've got, with content to help us build a world-class technology community, upgrade the capabilities and competencies of our teams, and improve overall team performance as well as their engagement.
Julian F.
Head of Cybersecurity
QuotationMarkI wanted to learn C and C++, but it didn't click for me until I picked up an O'Reilly book. When I went on the O’Reilly platform, I was astonished to find all the books there, plus live events and sandboxes so you could play around with the technology.
Addison B.
Field Engineer
QuotationMarkI’ve been on the O’Reilly platform for more than eight years. I use a couple of learning platforms, but I'm on O'Reilly more than anybody else. When you're there, you start learning. I'm never disappointed.
Amir M.
Data Platform Tech Lead
QuotationMarkI'm always learning. So when I got on to O'Reilly, I was like a kid in a candy store. There are playlists. There are answers. There's on-demand training. It's worth its weight in gold, in terms of what it allows me to do.
Mark W.
Embedded Software Engineer

You might also like

C++ High Performance - Second Edition

C++ High Performance - Second Edition

Björn Andrist, Viktor Sehr

Publisher Resources

ISBN: 9784873117362Other