8
私のメモリアライメントをtypedefしようとしました。次のコンストラクトが出てきました。 GNUバージョン):テンプレートエラー:nontype ".. [T = T]はタイプ名ではありません"
template<typename T>
class tsfo_vector {
private:
sfo_type<T>::aptr32 m_data;
int m_size;
...
が、その後、私は、次のエラーメッセージが出ます::
#if defined(__GNUG__)
template <typename T>
struct sfo_type {
typedef T* restrict __attribute__((aligned(32))) aptr32;
};
#elif defined(__INTEL_COMPILER)
template <typename T>
struct sfo_type {
typedef T* restrict __attribute__((aligned(32))) aptr32;
};
#endif
、その後、私はこのようにそれを使用しよう
/Users/bravegag/code/fastcode_project/code/src/sfo_vector.h(43): error: nontype "sfo_type<T>::aptr32 [with T=T]" is not a type name
sfo_type<T>::aptr32 m_data;
^
を
誰にでもアドバイスがありますか?
ニースをご覧いただきありがとうございます!私は実際にこれに困惑しています...データメンバがコンパイルする前にtypedefマーカーを持っていなければなりませんか?それは奇妙なことのビットです。 –
@ GiovanniAzua、リンクされた答えは、私ができるよりもはるかに優れた 'typename'の使用法を説明しています。 – hmjd
@ GiovanniAzua:データメンバではありませんが、型に接頭辞 'typedef'があります。 – celtschk