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() { ... }