是否可以将派生模板类型作为参数传递给接受基类型的模板? 为什么我会得到这个不完整的类型 - 嵌套名称说明符错误?
#include <iostream>
#include <tuple>
#include <typeinfo>
#include <cxxabi.h>
using namespace std;
template<typename ...Types> struct derivedTuple : public std::tuple<Types...> {};
int main() {
int status;
cout << abi::__cxa_demangle(typeid(
tuple_element<0,
std::tuple<int, char, const char *> // works
>::type
).name(),0,0,&status) << endl;
cout << abi::__cxa_demangle(typeid(
tuple_element<0,
derivedTuple<int, char, const char *> // error: incomplete type 'std::tuple_element<0u, derivedTuple<int, char, const char*> >' used in nested name specifier
>::type
).name(),0,0,&status) << endl;
return 0;
}
帮助表示赞赏。