1. ホーム
  2. c++

C++のテンプレート変数を使った構造体

2023-10-18 16:29:46

質問

私はテンプレートで遊んでいます。std::vectorを再発明しようとしているわけではなく、C++のテンプレートについて把握しようとしているのです。

次のようなことは可能でしょうか?

template <typename T>
typedef struct{
  size_t x;
  T *ary;
}array;

私がやろうとしているのは、基本的なテンプレのようなものです。

typedef struct{
  size_t x;
  int *ary;
}iArray;

structの代わりにclassを使うとうまくいくようなのですが、typedef structでは無理なのでしょうか?

どのように解決すればよいのでしょうか?

型定義はテンプレート化できないこと、またC++では構造体を型定義する必要がないことが問題です。

以下はあなたが必要とすることを行うでしょう。

template <typename T> 
struct array { 
  size_t x; 
  T *ary; 
};