15/11/28 20:31:40.61 JroX99O/.net
ものすごい下らないことですが質問です。
こんな感じのクラスがあって
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;
とした方がいいでしょうか。
宗教上の問題になるのでしょうか。