我有以下简单的代码:
template <typename T>
struct base
{
std::vector<T> x;
};
template <typename T>
struct derived : base<T>
{
void print()
{
using base<T>::x; // error: base<T> is not a namespace
std::cout << x << std::endl;
}
};
当我编译代码(使用 GCC-4.7.2)时,我得到了您在上面的评论中看到的错误。
我在这里读到: http : //gcc.gnu.org/onlinedocs/gcc-4.7.2/gcc/Name-lookup.html#Name-lookup
using base<T>::x
必须包含在基类的范围内。有什么想法有什么问题吗?先感谢您!