TestForSSTREAM¶
此模块检查 C++ 标准头文件 <sstream>
是否存在且功能正常。
在 CMake 项目中加载此模块,使用
include(TestForSSTREAM)
在 C++ 的早期版本(C++98 之前),<sstream>
头文件没有正式标准化,可能不可用。
此模块定义以下缓存变量:
CMAKE_NO_ANSI_STRING_STREAM
一个缓存变量,指示
<sstream>
头文件是否可用。如果<sstream>
可用(C++ 98
及更新版本),则设置为值0
;如果<sstream>
缺失(ANSI C++
),则设置为值1
。CMAKE_HAS_ANSI_STRING_STREAM
一个缓存变量,与
CMAKE_NO_ANSI_STRING_STREAM
相反(如果<sstream>
可用则为 true,如果<sstream>
缺失则为 false)。
注意
<sstream>
头文件正式引入于 C++ 98
标准中,因此对于现代编译器而言,此检查已过时。
示例¶
包含此模块将检查 <sstream>
支持并定义 CMAKE_NO_ANSI_STRING_STREAM
缓存变量
CMakeLists.txt
¶include(TestForSSTREAM)
file(
CONFIGURE
OUTPUT config.h
CONTENT "#cmakedefine CMAKE_NO_ANSI_STRING_STREAM"
)
然后它可以在 C++ 程序中使用
example.cxx
¶#include "config.h"
#ifndef CMAKE_NO_ANSI_STRING_STREAM
# include <sstream>
#endif
int main() { ... }