1
聲明別名模板,我有以下別名模板:如何推進在C++
#include <vector>
template <typename T>
using MyVector = std::vector <T>;
我怎麼能向前聲明MyVector
?
template <typename T>
class MyVector;
對我不起作用。
聲明別名模板,我有以下別名模板:如何推進在C++
#include <vector>
template <typename T>
using MyVector = std::vector <T>;
我怎麼能向前聲明MyVector
?
template <typename T>
class MyVector;
對我不起作用。
您無法轉發聲明使用聲明。
無論如何,你可以宣告着幾分特點因爲它遵循:
#include <type_traits>
#include <vector>
template<typename>
struct MyStuff;
template<typename T>
auto f() { return typename MyStuff<T>::MyVector{}; }
template<typename T>
struct MyStuff {
using MyVector = std::vector<T>;
};
int main() {
static_assert(std::is_same<decltype(f<int>()), std::vector<int>>::value, "!");
}
您也許能使其成爲一個類型,你將能夠前瞻性聲明閃避:
template <typename T>
struct MyVector: std::vector<T> {};
爲什麼要轉發聲明類型別名? – user2296177
你不能。你想如何使用它? –
將typename更改爲class:'template class MyVector' –