スレを勃てるまでもないC/C++の質問はここで 24 [転載禁止]©5ch.io
■ このスレッドは過去ログ倉庫に格納されています
0004デフォルトの名無しさん
2015/11/28(土) 20:31:40.61ID:JroX99O/こんな感じのクラスがあって
class A {
public:
std::unique_ptr<int[]> xxx = nullptr;
private:
void reset_xxx(size_t n) /* noexcept */ // <- このコメントを外したい
{
xxx.reset(new(std::nothrow) int[n]);
/* new が失敗したときはここでどうにかする */
}
};
(1)
reset_xxx に noexcept 指定子をつけたいのですが、
int のような基本型、あるいはその配列に対する delete は
例外を投げないことが保証されているんでしょうか。
あるいは POD ではどうでしょうか。
POD でなくても、デフォルト定義のデストラクタを持っているなら?
(2)
上記のクラスで xxx を読み取り専用として扱うとき、
std::unique_ptr<int[]> xxx = nullptr;
の代わりに
std::unique_ptr<const int[]> xxx = nullptr;
とした方がいいでしょうか。
宗教上の問題になるのでしょうか。
■ このスレッドは過去ログ倉庫に格納されています