1

私はC++にかなり慣れていないので、何が間違っているのかわかりません。

これは私の構成です:

構造体

template<size_t N> struct Offsets 
{ 
    static const int length = N;
    DWORD offsets[N]; 
};

そしてプロパティ:

template <size_t N>
std::map<std::string, std::map<DWORD, Offsets<N>>> pointers;

これにより、

コンパイラ エラー C1001。

それの何がいけないの?

4

2 に答える 2

3

変数はテンプレート化できず、完全に指定する必要があります。pointersしたがって、変数を宣言するには、 N.

于 2013-05-20T12:05:25.717 に答える
1

変数でテンプレートを使用することはできません。ポインターを柔軟に保ちたい場合は、テンプレート クラスまたは構造体にカプセル化します。

template< size_t N >
class PointerOffsetMap
{
...
public:
    std::map<std::string, std::map<DWORD, Offsets<N>>> pointers;
}

非常に単純な例ですが、おそらくポインタを非公開にし、いくつかのアクセス関数を追加して、適切なインターフェイスを取得する必要があります。

于 2013-05-20T12:18:50.307 に答える