OpenMP规范在“执行模型”部分说明了以下内容:
"... it is possible and permitted to develop a program that executes correctlyas a parallel program but not as a sequential program ..."那么这种程序的一个例子是什么呢?
OpenMP标准只考虑ISO98( C++ 14882:1998)。这意味着在C++03甚至C++11下没有支持OpenMP用法的标准。因此,任何使用C++ >98和OpenMP的程序都在标准之外运行,这意味着即使它在某些条件下工作,它也不太可能是可移植的,但绝对不能保证。对于具有自己的多线程支持的C++11,情况甚至更糟,这很可能会在某些实现中与OpenMP发生冲突。
那么,在C++03和<