别名模板专用化问题
Alias template specialization issue?
考虑以下代码:
#include <iostream>
#include <ratio>
template <class R1, class R2, class... RN>
using ratio_sum = ratio_sum<ratio_sum<R1, R2>, RN...>;
template <class R1, class R2>
using ratio_sum<R1, R2> = std::ratio_add<R1, R2>;
int main()
{
std::cout<<ratio_sum<std::ratio<3>, std::ratio<2>>::num<<std::endl;
}
它因以下错误而崩溃:
main.cpp:5:23: error: expected type-specifier before 'ratio_sum'
using ratio_sum = ratio_sum<ratio_sum<R1, R2>, RN...>;
如何解决这个问题?(因为它说明了一个一般性问题,所以我不想要在可变版本中使用std::ratio_add
的解决方法)。
您的代码中有两个错误。第一个问题是,当你尝试使用ratio_sum<R1, R2>
时,它没有被定义。解决方案很简单:切换两个定义的位置。
第二个问题是,在ration_sum<R1, R2>
的情况下,定义类型别名时不能使用模板。
相关文章:
- 警告处理为错误这里有什么问题
- .cpp和.h文件中的模板专用化声明
- 最小硬币更换问题(自上而下方法)
- 为"adjacent"变量赋值时出现问题
- 我的神经网络不起作用 [XOR 问题]
- 在Ubuntu 16.04上安装Cilk时出现问题
- C++我的数学有什么问题,为什么我的代码不能正确循环
- C++部分模板专用化问题
- C++隐式/显式模板方法专用化问题
- C++ GCC 的部分模板专用化问题
- 专用纯虚拟模板函数(未定义引用)的另一个问题
- 嵌套类模板专用化问题
- 显式模板专用化和依赖名称查找问题
- 模板专用化和enable_if问题
- 别名模板专用化问题
- 模板专用化问题
- 部分模板专用化有什么问题
- g++中的显式模板专用化导致问题
- C++结构成员模板函数的显式专用化 - 这是一个Visual Studio问题吗?
- 解决函数模板部分专用化问题