簡體   English   中英

C ++ typedef和模板

[英]C++ typedef and templates

假設有一小節課

template<class T1>
class c {
    template<class T>
    class Test {
    public:
        typedef std::vector<T> vetor_type;

        vetor_type some_var;
    };

    void f() {
        Test<int>::vetor_type tt; //error
    }
};

我收到一個錯誤:

預期為“;” 表達后。

編輯:我不知道為什么有關類型名稱的答案被刪除,因為它實際上有所幫助。 但是有人可以解釋一下為什么要在另一個類模板中編寫此代碼時使用typename嗎?

Test<T>取決於用於實例化c<T1>的類型,因此您需要在foo()的定義中使用typename

void f() {
    typename Test<int>::vetor_type tt;
}

..因為它對我來說看起來不錯。

可能有錯別字 :也許vetor_type在一個地方,而vector_type在另一個地方?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM