为什么在这个简单的模板代码中出现错误
Why the error in this simple template code?
为什么会出现以下错误?
#include <type_traits>
template<typename FooType>
struct bar {
using bar_type = typename FooType::foo_type;
};
template<typename T>
struct foo {
using foo_type = T;
//Error: No type named 'bar_type' in 'bar<foo<int> >'
static_assert(std::is_same<foo_type,typename bar<foo<T>>::bar_type>::value,"");
};
int main(int argc, char **argv)
{
bar<foo<int>> b;
return 0;
}
在static_assert
的点上,foo
还不是一个完整的类型(您仍然在它的定义中),所以当bar
试图访问时,编译器会给您一个错误。它给你的特别错误很糟糕;请使用其他编译器进行尝试。
相关文章:
- 将鼠标悬停在问题上时与预期">"相关的代码错误
- VI工作室代码错误无法打开输出文件主.exe
- 引入参数化构造函数后显示 LNK 2019 未解析外部符号的代码错误
- 有关矩阵的代码错误导致分段错误(内核转储)
- C++ Schannel POST 400 错误代码错误请求
- Java 本机访问代码错误:"Invalid memory access"
- 代码错误修改
- C++代码错误分配
- "_FCbuild"不能用作函数 - C/C++ 代码错误
- 我的代码错误类型警告 1 警告 C4018 和更多错误
- 代码错误(从 1 到 100 找到质数)
- OpenCV VisualStudio,C 代码错误尝试访问像素
- 当我使用的教程完全没有错误时,为什么我的代码错误
- 简单的NOOB C 输入/输出问题:代码错误
- 为什么enumProcessModules返回false值和299代码错误
- WinhttpSetoption()失败设置TLSV1.2,带有错误代码错误_internet_incorrect_ha
- 苹果安全传输代码错误
- C++ - 国际象棋主教移动代码错误
- 导入Python库时,嵌入了Python代码错误
- 编译提升C 代码错误