我在处理一段 C++ 代码时遇到了一些麻烦。
首先,如果我这样做,它会很好地工作:
struct A
{
using my_type1 = double;
using my_type2 = int;
};
struct B
{
using size_type = A::my_type2;
};
但是,我希望能够选择 my_type1,所以我采用了模板方式:
template <typename T>
struct A
{
using my_type1 = T;
using my_type2 = int;
};
template <typename T>
struct B
{
using size_type = A<T>::my_type2;
};
在这里,gcc 失败并显示:“expected type specifier”在线
using size_type = A<T>::my_type2;
我也可以将 my_type2 放入模板中,但这是一个不应该有太大变化的类型。
那么为什么我的方法不起作用呢?谢谢!