Siv3D / siv8

Siv3D v0.8 の開発リポジトリ | Development repository for Siv3D v0.8
9 stars 3 forks source link

UniqueResource のコンストラクタを修正 #14

Closed Raclamusi closed 5 months ago

Raclamusi commented 5 months ago

コンストラクタの引数を完全転送するには、コンストラクタがテンプレート引数を取る必要があります。 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 &]
}
Reputeless commented 5 months ago

Merged. Thanks!