テンプレート型配列から整数型を取得する方法

Denomycor

破棄されるとdeleteを呼び出すスコープポインタークラスを書き込もうとしています。ポインタが配列を指しているかどうかを確認する必要があることに気付いたので、正しい削除を呼び出すことができました。std :: unique_ptrからインスピレーションを得て、type_traitsを使用して、型ポインターを保持するテンプレート引数が配列であるかどうかを確認しました。

template <typename type, bool _Dx = std::is_array<type>::value>
    class scoped_ptr {
    private:
        type* m_ptr;
    //...
    };

template <typename type>
    class scoped_ptr<type, true> {};

しかし、テンプレートの引数の型が「int []」の場合、「int [] * m_ptr」を使用できないため、コードが無効になります。この問題を解決するにはどうすればよいですか。int []引数を渡して、「int * m_ptr」を使用するにはどうすればよいですか。

NathanOliver

あなたが欲しいのはstd::remove_extentです。配列を指定すると要素タイプが指定され、それ以外の場合は指定したタイプが指定されます。それは次のようになります

template <typename type, bool _Dx = std::is_array<type>::value>
class scoped_ptr {
private:
    std::remove_extent_t<type>* m_ptr;
//...
};

また、それ_Dxは違法な名前であることに注意してくださいアンダースコアで始まり、大文字が続くすべての名前は、実装用に予約されています。

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

整数型自体で整数型のクラステンプレートを特殊化する方法は?

分類Dev

C ++非型テンプレートパラメーター:整数型のtypedefは整数型ですか?

分類Dev

符号なし整数型を指定するC ++テンプレート特性

分類Dev

CPPテンプレートの実際の型に基づいて整数型を呼び出す方法は?

分類Dev

整数型からリストを作成する際の型エラー

分類Dev

整数型のテンプレート関数でsnprinfマスクを選択するにはどうすればよいですか?

分類Dev

非型テンプレートパラメータでポインタを整数型として扱うことは可能ですか?

分類Dev

T4テンプレートで列挙型を取得する方法

分類Dev

C ++テンプレートの型の優先順位と整数型

分類Dev

C ++:デフォルトではテンプレート関数の整数型を初期化します

分類Dev

配列型によって関数テンプレートを特化する方法はありますか?

分類Dev

整数型配列(NaNを含む)を文字列型配列に変換する方法

分類Dev

C ++で、(整数型の)非型テンプレートパラメーターの型のみが異なる、同じ名前の2つの関数/クラステンプレートが許可されないのはなぜですか?

分類Dev

戻り値の型から型Tを推測するテンプレート

分類Dev

関数テンプレート型から戻り値の型を抽出する

分類Dev

クラステンプレートから型を除外する

分類Dev

サイズがテンプレートパラメータである標準の整数型はありますか?

分類Dev

整数型を使用したテンプレートの特殊化はどのように機能しますか?

分類Dev

c ++テンプレート:(型として)特定の整数から変数を初期化する

分類Dev

Laravelデータベースのクエリ結果から明らかに存在する整数型データにアクセスすると、エラー「stdClass型のオブジェクトを配列として使用できません」

分類Dev

Postgres / SQLAlchemy / Alembicは、データ型を列挙型から整数型に変更し、を使用して値をマップします

分類Dev

バイト配列を整数型(int、long、shortなど)に変換する方法 'エンディアンを安全に'?

分類Dev

整数から列挙型の表示名を取得する方法

分類Dev

C ++テンプレート-浮動型と整数型のさまざまな特殊化

分類Dev

列挙型のテンプレートタイプを作成する方法

分類Dev

「静的アサーションに失敗しました:テンプレート引数が整数型ではありません」エラーを修正する方法は?

分類Dev

C ++-14 enable_if_tを使用して、整数型でテンプレート化されたクラスのメンバー関数を選択します

分類Dev

テンプレート内の変数の型を取得する

分類Dev

Pythonのループで整数型のリストを使用する

Related 関連記事

  1. 1

    整数型自体で整数型のクラステンプレートを特殊化する方法は?

  2. 2

    C ++非型テンプレートパラメーター:整数型のtypedefは整数型ですか?

  3. 3

    符号なし整数型を指定するC ++テンプレート特性

  4. 4

    CPPテンプレートの実際の型に基づいて整数型を呼び出す方法は?

  5. 5

    整数型からリストを作成する際の型エラー

  6. 6

    整数型のテンプレート関数でsnprinfマスクを選択するにはどうすればよいですか?

  7. 7

    非型テンプレートパラメータでポインタを整数型として扱うことは可能ですか?

  8. 8

    T4テンプレートで列挙型を取得する方法

  9. 9

    C ++テンプレートの型の優先順位と整数型

  10. 10

    C ++:デフォルトではテンプレート関数の整数型を初期化します

  11. 11

    配列型によって関数テンプレートを特化する方法はありますか?

  12. 12

    整数型配列(NaNを含む)を文字列型配列に変換する方法

  13. 13

    C ++で、(整数型の)非型テンプレートパラメーターの型のみが異なる、同じ名前の2つの関数/クラステンプレートが許可されないのはなぜですか?

  14. 14

    戻り値の型から型Tを推測するテンプレート

  15. 15

    関数テンプレート型から戻り値の型を抽出する

  16. 16

    クラステンプレートから型を除外する

  17. 17

    サイズがテンプレートパラメータである標準の整数型はありますか?

  18. 18

    整数型を使用したテンプレートの特殊化はどのように機能しますか?

  19. 19

    c ++テンプレート:(型として)特定の整数から変数を初期化する

  20. 20

    Laravelデータベースのクエリ結果から明らかに存在する整数型データにアクセスすると、エラー「stdClass型のオブジェクトを配列として使用できません」

  21. 21

    Postgres / SQLAlchemy / Alembicは、データ型を列挙型から整数型に変更し、を使用して値をマップします

  22. 22

    バイト配列を整数型(int、long、shortなど)に変換する方法 'エンディアンを安全に'?

  23. 23

    整数から列挙型の表示名を取得する方法

  24. 24

    C ++テンプレート-浮動型と整数型のさまざまな特殊化

  25. 25

    列挙型のテンプレートタイプを作成する方法

  26. 26

    「静的アサーションに失敗しました:テンプレート引数が整数型ではありません」エラーを修正する方法は?

  27. 27

    C ++-14 enable_if_tを使用して、整数型でテンプレート化されたクラスのメンバー関数を選択します

  28. 28

    テンプレート内の変数の型を取得する

  29. 29

    Pythonのループで整数型のリストを使用する

ホットタグ

アーカイブ