cmake如何在编译时区分-std=c++17和-std=gnu++17?检查宏

如何在编译时区分-std=c++17和-std=gnu++17?检查宏?-腾讯云开发者社区-腾讯云

我正在使用__int128扩展的g++。-std=c++17的问题是,一些C++库不具备对该扩展的全部支持(即std::make_unsigned<>失败)。当使用-std=gnu++17时,它工作得很好。

我添加了一个头文件,允许<limit>在使用-std=c++17时与__int128一起工作,我希望暂时保留它,但是在使用-std=gnu++17时它会中断(因为它已经定义好了)。所以我想增加一个这样的条件:

# -std=gnu++17 
set(CMAKE_CXX_STANDARD 17)
或者
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++17")
相关推荐
汇匠源5 分钟前
零工市场小程序如何提高找兼职的效率?
java·大数据·开发语言·小程序·团队开发
sukalot7 分钟前
windows C++-轻量级任务
开发语言·c++·windows
计算机学姐9 分钟前
基于php的酒店管理系
开发语言·vue.js·vscode·后端·php·phpstorm
蠢蠢的打码22 分钟前
8622 哈希查找
数据结构·c++·算法·链表·图论
dulu~dulu23 分钟前
数据冒险与控制冒险
java·开发语言·计算机组成原理
无职转生真好看26 分钟前
LeetCode236题:二叉树的最近公共祖先
c++
小蜗笔记1 小时前
在Python中实现多目标优化问题(4)
开发语言·python
Yyuan123456781 小时前
OJ题之单链表排序
数据结构·算法
Beautyxxi2 小时前
9.29 LeetCode 3304、3300、3301
算法·leetcode·职场和发展
重生之我在20年代敲代码2 小时前
C语言-动态内存分配讲解
c语言·开发语言·数据结构·c++·经验分享·笔记