首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

在ubuntu上将默认的c++库从std=c++14切换到std=c++17

在Ubuntu上将默认的C++库从std=c++14切换到std=c++17,可以按照以下步骤进行操作:

  1. 确认当前系统中是否已安装C++编译器。可以通过在终端中运行以下命令来检查:
  2. 确认当前系统中是否已安装C++编译器。可以通过在终端中运行以下命令来检查:
  3. 如果没有安装,可以使用以下命令安装:
  4. 如果没有安装,可以使用以下命令安装:
  5. 更新系统软件包列表。在终端中运行以下命令:
  6. 更新系统软件包列表。在终端中运行以下命令:
  7. 安装C++17支持的编译器。在终端中运行以下命令:
  8. 安装C++17支持的编译器。在终端中运行以下命令:
  9. 切换默认的C++编译器版本。在终端中运行以下命令:
  10. 切换默认的C++编译器版本。在终端中运行以下命令:
  11. 验证C++编译器版本是否已切换。在终端中运行以下命令:
  12. 验证C++编译器版本是否已切换。在终端中运行以下命令:
  13. 确保输出的版本信息中包含C++17。

切换到C++17的优势是可以使用C++17的新特性和语法,提供更好的性能和功能。C++17适用于各种应用场景,包括桌面应用程序、嵌入式系统、游戏开发等。

腾讯云提供了多种云计算产品和服务,其中与C++开发相关的产品包括云服务器、容器服务、函数计算等。您可以访问腾讯云官方网站(https://cloud.tencent.com/)了解更多关于这些产品的详细信息和使用指南。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Modern C++,学炸了!!

所谓现代 C++(即所谓的 Modern C++)指的是 C++11 及之后的版本,目前最新版本是 C++20,这期间一共有 C++11、C++14、C++17 三个版本。...std::mutex、std::condition_variable 等 原子操作类 智能指针类 std::bind/std::function 四、C++11、C++14、C++17 这三个版本分别对...delete语法); 开始在语法和自带的标准库的层面上增加对操作系统的功能的支持(如线程库、时间库)。...再例如 std::unique_lock 在 C++11 引入,std::shared_lock 在 C++14 才引入。...网络库 uWebSocket 是一款开源的 WebSocket 库,最新版使用了大量 C++17 的语法,美中不足的是这个库代码存在不少 bug,我在项目中使用了它,但修改了其大量的 bug,有兴趣的朋友也可以下载下来看一下

3.3K10
  • C++17, 语言核心层有哪些新的变化?

    在我深入新标准的细节之前, 让我们先来总体浏览一下C++17.(译注:作者的文章写于2017年初,当时C++17标准仍未正式发布) 让我们首先来看下C++标准整体的(特性)时间线.....如果你熟悉C++,那么你一定知道 C++98(第一个C++标准) 和 C++11 是两个非常大的C++标准, 但C++14,特别是C++03则是两个小标准....那么 C++17 是大标准还是小标准呢?从我的观点来看,答案其实挺简单的: C++17 介于 C++14 和 C++11 之间,既不属于大标准也不属于小标准,至于原因,看看下面的说明吧....概览 C++17 在语言核心层和标准库方面都有很多新改动.我们首先来看下语言核心层....0; } 22行和23行代码从C++第一个标准开始(C++98)便是合法的,但是25行及26行代码则只能在C++17中编译通过,因为在C++17之前,你必须使用尖括号()来指定需要实例化的类模板的类型参数

    86020

    C++ 的发展

    从面向过程到面向对象:最初的 C++ 语言只是在 C 语言的基础上增加了类和面向对象的特性,经过多年发展,C++ 在保留 C 语言高效性的同时,也吸收了面向对象、泛型编程和函数式编程的优势,成为了一门多范式的语言...标准化过程:从 C++98 到 C++11,再到 C++14、C++17 和 C++20,C++ 逐渐成为一种具有广泛应用的编程语言,每个版本都带来了一些新的特性和增强,逐步适应现代软件开发的需求。...开发者并未从中获得像 C++11、C++14、C++17 那样的重大进展。 标准库的改进有限:虽然 C++03 修复了一些标准库的问题,但与后来的 C++ 标准相比,它的功能仍显得较为简单。...C++17(也被称为C++ 2017)是C++编程语言的一个重要版本,它在C++11和C++14的基础上进行了许多改进,增强了语言特性、库功能以及编译器支持。C++17的主要亮点包括: 1....C++23(正式名称为 C++23)是C++语言的最新标准,作为C++20和C++17之后的下一代标准,C++23在语言特性、库功能和编译器优化等方面引入了一些重要的改进。

    61710

    C++中auto关键字的用法详解

    1.简介 auto作为一个C语言就存在的关键字,在C语言和C++之间却有很大区别。...在C语言中auto修饰的变量,是具有自动存储器的局部变量,但因为局部变量默认类别默认是auto修饰导致一直没有人去使用它。...4.auto的好处 在C++中因为类,命名空间等语法会出现如std::mapstd::string, std::string>::iterator这样的特别长的类别,若单纯用typedef来简略代码则会出现新的麻如...return 0; } 所以auto无疑是十分不错的选择 5、auto在C++14和C++17的更新 C++的auto关键字最初在C++11中引入,主要用于自动类型推导,使编程更简洁。...在后续的C++14和C++17标准中,对auto的使用进行了一些扩展和更新,进一步提高了其灵活性和功能性。

    38410

    C++雾中风景12:聊聊C++中的Mutex,以及拯救生产力的Boost

    (结果对C++标准库很是绝望....)最终还是通过利用了Boost库的shared_mutex解决了问题。借这个机会来聊聊在C++之中的多线程编程的一些“坑”。...1.C++多线程编程的困扰 C++从11开始在标准库之中引入了线程库来进行多线程编程,在之前的版本需要依托操作系统本身提供的线程库来进行多线程的编程。...共享的互斥量 由上述表格可见,C++是从14之后的版本才正式支持共享互斥量,也就是实现读写锁的结构。...shared_lock C++14 共享互斥量的管理 scope_lock C++17 多互斥量避免死锁的管理 创建互斥量管理对象时,它试图给给定mutex加锁。...pthread_rwlock_t的结构 这里有个事情挺奇怪的,C++14提供了shared_timed_mutex 而在C++17提供了shared_mutex。

    97021

    C++雾中风景12:聊聊C++中的Mutex,以及拯救生产力的Boost

    (结果对C++标准库很是绝望....)最终还是通过利用了Boost库的shared_mutex解决了问题。借这个机会来聊聊在C++之中的多线程编程的一些“坑”。...1.C++多线程编程的困扰 C++从11开始在标准库之中引入了线程库来进行多线程编程,在之前的版本需要依托操作系统本身提供的线程库来进行多线程的编程。...recursive_timed_mutex C++11 结合 2,3 特点的互斥量 shared_timed_mutex C++14 具有超时机制的可共享互斥量 shared_mutex C++17...共享的互斥量 由上述表格可见,C++是从14之后的版本才正式支持共享互斥量,也就是实现读写锁的结构。...shared_lock C++14 共享互斥量的管理 scope_lock C++17 多互斥量避免死锁的管理 创建互斥量管理对象时,它试图给给定mutex加锁。

    1.2K41

    c++17好用的新特性总结

    前言 从C++11开始,标志着c++的复兴和现代C++的开端。尽管有各种新语言层出不穷,但涉及性能和系统层面c++仍然是首选,地位无可撼动。...C++14在11的基础上查缺补漏,并未加入许多新特性,而C++17作为C++11后的第一个大版本,标志着现代C++逐渐走向成熟。......... 1.auto关键字 从c++11开始,auto关键字能够通过初始化器推导出变量的类型。在c++14中,auto关键字的能力进一步提升,能够通过return语句推导出函数的返回类型。...在c++17之前,只能自己通过独占锁和条件变量自己实现读写锁或使用c++14加入的性能较差的std::shared_timed_mutex。...需要注意的是,c++17只提供了一个库级别的variant实现,没有对应的模式匹配(Pattern Matching)机制,而最接近的std::visit又缺少编译器的优化支持,所以在c++17中std

    3.4K10

    安装GCC-8.3.0及其依赖

    C++由Bjarne Stroustrup(被誉为C++之父)于1979年在新泽西州美利山贝尔实验室开始设计开发的,最初命名为带类的C,后来在1983年更名为C++。 2. ...GCC的依赖库 编译之前需先安装好GCC的依赖库:gmp、mpfr和mpc。编译还依赖m4等编译工具,如果没有,则在执行configue时会报相应的错误,这时需要先安装好这些编译工具。...4.1. gmp库 GMP为“GNU MP Bignum Library”的缩写,是一个GNU开源数学运算库。...并且在将来的版本中几乎肯定会以不兼容的方式发生变化). 10. ...cmake前,需设置好下列所环境变量,否则cmake仍将使用默认目录下的gcc和g++,在CMakeFiles.txt文件中设置CMAKE_C_COMPILER和CMAKE_CXX_COMPILER不能解决这个问题

    14.1K72

    C++17 在业务代码中最好用的十个特性

    作者:jinshang,腾讯 WXG 后台开发工程师 自从步入现代 C++时代开始,C++语言标准形成了三年一个版本的惯例:C++11 标志着现代 C++的开端,C++14 在 11 的基础上查缺补漏...语法糖 这里所说的语法糖,并不是严格意义上编程语言级别的语法糖,还包括一些能让代码更简洁更具有可读性的函数和库: 结构化绑定 c++17 最便利的语法糖当属结构化绑定。...在 c++17 之前,只能自己通过独占锁和条件变量自己实现读写锁或使用 c++14 加入的性能较差的std::shared_timed_mutex。...return {ret}; } 需要注意的是,c++17 只提供了一个库级别的 variant 实现,没有对应的模式匹配(Pattern Matching)机制,而最接近的std::visit又缺少编译器的优化支持...,所以在 c++17 中std::variant并不好用,跟 Rust 和函数式语言中出神入化的 Sum Type 还相去甚远,但是已经有许多围绕std::variant的提案被提交给 c++委员会探讨

    2.7K20

    C++ random_shuffle函数:从兴起到被替代

    在C++的发展历程中,random_shuffle函数曾是标准库中用于随机排列序列元素的重要工具。然而,随着C++语言的不断演进,这一函数也经历了从兴起、被弃用到最终被移除的过程。...不满足现代C++对随机性的要求随着C++11标准的引入,C++提供了更加强大和灵活的随机数生成库,包括头文件中定义的各种随机数生成器和分布。...random_shuffle的弃用与替代鉴于random_shuffle存在的问题,C++标准委员会在C++14标准中将其弃用,并在C++17标准中正式移除。...结论random_shuffle函数曾是C++标准库中用于随机排列序列的重要工具,但由于其随机数生成器的局限性和无法满足现代C++对随机性的要求,最终在C++17标准中被移除。...为了编写可移植、现代且高效的C++代码,建议开发者在需要进行随机排列时,优先选择std::shuffle函数,并结合合适的随机数生成器使用。

    9210

    【云+社区年度征文】C++雾中风景16:std::make_index_sequence, 来试一试新的黑魔法吧

    C++14在标准库里添加了一个很有意思的元函数,std::integer_sequence。...在C++14的加持下,它可以帮助我们完成在编译期间获取了一组编译期整数。系好安全带,准备发车,和大家聊聊C++14带来的新黑魔法:std::make_index_sequence。...在C++之中有一个很常见的需求,定义一组编译期间的数组作为常量,并在运行时或者编译时利用这些常量进行计算。现在假如我们需编译期的一组1到4的平方值。你会怎么办呢? 嗯.......(不能使用C++17的std::apply) 这个时候就要再次请出我们今天的主角,使用std::make_index_sequnce和lambda表达式来完成这个工作了。...嗯,标准库表示它也是这样想的,所以C++17利用了std::make_index_sequence实现了std::apply,开启了满屏幕堆满tuple的C++新时代了~~ 4.小结 C++14新提供的

    57300

    C++17常用新特性(五)---强制省略拷贝或传递未实质化的对象

    1 省略临时拷贝缘起 从C++标准产生一直到C++17,C++标准一直在试图减少某些临时变量或者拷贝的操作,虽然经过优化后,可能在实际执行中不需要调用拷贝或者移动构造,但是它必须隐士或者显示存在,如下面的案例...从C++17起,上面的代码就可以编译通过了,因为C++17直接强制在临时对象中强制省略了对象的拷贝。但是,C++17还不都彻底,当代码中包含一个具名的变量并作为返回值时依然会调用拷贝构造函数。...在泛型函数中使用了完美转发,具体可以参考下文: 【C++11】 改成程序性能的方法--完美转发 除此之外,在C++17之后类中禁止移动构造函数的默认生成在实际使用时可以正常编译和运行,但是在C++17之前是编译不过的...为了配合改造,C++值类型体系进行了很多改造。 C++值类型体系可以分为三个阶段,分别是:C++11之前的值类型体系,C++11后到C++17期间的值类型体系以及C++17后的值类型体系。...) C++11的值类型结构如下: 3.3 C++17起的值类型体系 从C++17起,值类型体系被明确了定义,重新明确后的值类型如下图所示: 从广义来说,值类型主要包含两种形式,分如下: glvaue

    1.3K20

    c++的lambda使用注意事项,可能导致的崩溃问题分析

    Lambda介绍 “Lambda表达式是现代C++在C ++ 11和更高版本中的一个新的语法糖 ,在C++11、C++14、C++17和C++20中Lambda表达的内容还在不断更新。...4、注意this陷阱:lambda里避免有全局变量或静态变量或者比当前类生命周期更长的变量。Effective Modern C++ 条款31 对于lambda表达式,避免使用默认捕获模式。...在C++14中,捕获成员变量一种更好的方法是使用广义lambda捕获(generalized lambda capture,即,捕获语句可以是表达式[x= x],条款32)。..._c++ lambda 异常 关于 c++ lambda 函数需要注意的点_风竹夜的博客-CSDN博客 C++ 从Lambda的使用到对C++闭包语法的理解/Lambda的坑_WhiteTian的博客-...CSDN博客_c++闭包 c++14新特性_C++17新特性_杨佶Kulbear的博客-CSDN博客

    4.2K10

    Modern c++快速浅析

    在拓展typedef的同时也让C++的C++味儿更浓了 typedef int Status; using Status = int; 回归主题,在一些十分复杂的名称面前,我们会选择取别名,比如 typedef...的泛用性在每代C++中都得到了提高 在C++11中,constexpr可以用来修饰对象(包括内置类型和自定义类型),以及可以用来修饰函数(构造函数,成员函数,普通函数等等),如果以constexpr修饰构造函数...1 : base * pow(base, exp - 1)); } 在C++14中,对constexpr修饰的函数做了进一步的拓展,C++14中的constexpr函数不再是只能单纯的包含一条return...捕获 *this 默认情况下,使用[=]能够默认捕获this指针,能够在lambda中修改或访问类成员 class MyClass { public: int data = 10; void...std::endl; }; } }; 如果捕获的是*this,那么Lambda会存在这整个类的副本,一切访问和修改都是发生在这个副本上的 struct My_Struct { int data

    20410

    C++ 编程入门指南:深入了解 C++ 语言及其应用领域

    C++ 简介 什么是 C++? C++ 是一种跨平台的编程语言,可用于创建高性能应用程序。 C++ 是由 Bjarne Stroustrup 开发的,作为 C 语言的扩展。...该语言在 2011 年、2014 年、2017 年和 2020 年进行了 4 次重大更新,分别为 C++11、C++14、C++17 和 C++20。 为什么使用 C++?...C++ 具有可移植性,可用于开发可适应多个平台的应用程序。 C++ 学习起来有趣且简单! 由于 C++ 与 C、C# 和 Java 相近,因此程序员可以轻松地转换到 C++,反之亦然。...C 和 C++ 的区别 C++ 是作为 C 的扩展而开发的,两种语言几乎具有相同的语法。 C 和 C++ 的主要区别在于 C++ 支持类和对象,而 C 不支持。...快速入门 让我们创建我们的第一个 C++ 文件 myfirstprogram.cpp #include using namespace std; int main() {

    44800

    C++17,容器的持续改进与统一访问

    目前标准库包含8个关联容器: 所谓的相似容器,其实就是所含元素的数据结构相同并且 数据类型也相同的容器.std::set 和 std::multiset 的元素便拥有相同的数据结构, std::unordered_set...C++ string 中新的内建字面量(literal)了.代码 (3) 中定义的键值对 {1, "a"s} 便是 string 字面量的一个应用: "a"s 是 C++14 引入的 string 字面量定义方式...来改变一个键值对的键:代码 (7) 处的 auto nodeHandle multiMap.extract(2017) 从 std::multimapstd::string> 中抽取了键为...(std::move(nodeHandle)); C++17 中引入了3个全局函数用以统一的访问容器.....使用前提是容器必须支持 data() 方法(标准库中的 std::vector, std::string 和 std::array 支持该方法).

    65510
    领券