为什么不编译? (VC 2015,#pragma omp flush)
发布时间:2020-12-16 07:15:37 所属栏目:百科 来源:网络整理
导读:这是一个极小的案例.在Visual C 2015上使用“/ openmp”进行编译. #include vectorvoid main(){ bool foo = false; #pragma omp flush (foo) std::vectorint bar;} 我明白了: C2146 syntax error : missing ';' before identifier 'bar'C2275 'std::vectori
这是一个极小的案例.在Visual C 2015上使用“/ openmp”进行编译.
#include <vector> void main() { bool foo = false; #pragma omp flush (foo) std::vector<int> bar; } 我明白了: C2146 syntax error : missing ';' before identifier 'bar' C2275 'std::vector<int,std::allocator<_Ty>>' : illegal use of this type as an expression C2065 'bar' : undeclared identifier 如果我注释掉#pragma,那么错误就会消失. 如果我用int替换std :: vector,则错误消失. 如果我放一个;在#pragma下面的一行上,错误就消失了. 解决方法
对“为什么不编译?”这一问题的简明回答.是“它是一个编译器错误”.错误报告:
https://connect.microsoft.com/VisualStudio/feedbackdetail/view/2420614 已被关闭为“已修复”….“此项目已在本产品的当前版本或即将发布的版本中修复[Visual Studio 2015]”. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |