Closed Raclamusi closed 5 months ago
コンストラクタの引数を完全転送するには、コンストラクタがテンプレート引数を取る必要があります。 Resource&& および Deleter&& はユニバーサル参照ではなく、常に右辺値参照です。
Resource&&
Deleter&&
# include <Siv3D.hpp> void Main() { const auto p = new int32{ 42 }; UniqueResource resource{ p, std::default_delete<int32>{} }; // 変更前:エラー! p を int32*&& で受け取れない [Resource = int32*] // 変更後: p はコピーされる [Resource = int32*, R = int32 *const &] }
Merged. Thanks!
コンストラクタの引数を完全転送するには、コンストラクタがテンプレート引数を取る必要があります。
Resource&&
およびDeleter&&
はユニバーサル参照ではなく、常に右辺値参照です。