博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
c++11的简单尝试记录
阅读量:6359 次
发布时间:2019-06-23

本文共 1121 字,大约阅读时间需要 3 分钟。

  hot3.png

前一段时间尝试了一下C++11,稍微尝试了一下两个特性,做一下简单记录。

一、编译器工具准备

1. 编译了gcc4.7.1和clang3.1,都试了一下。基本上,编译还算顺利。

gcc4.7.1编译,需要mpc gmp mpfr等软件包,这个在运行./configure的时候会有提示。把这几个包下载后,解压源码源码放到gcc4.7.1的源码目录,然后执行一下语句:

mkdir build cd build && srcdir/configure --progrom--suffix --enable-language=c,c++  --disable-mutilib #需要--disable-mutilib,不然编译可能会出现其他问题

2. 编译clang3.1也比较容易,直接看带的说明文件就可以。简单点说,将LLVM加clang都下载下来,解压后,把clang源码放到LLVM文件夹中,执行编译就可以。另外,如果需要使用C++的库的话,还需要编译stdc++的库。

二、试用C++11

如果使用c++进行编译,编译时需要添加特殊的参数,指定需要c++11标准和使用c++11的库,如:clang++ -std=c++11 -stdlib=libc++

1. 编译旧代码

编译旧代码基本上没有什么问题,主要是一些编译器宏定义需要修改,这个可能在使用一些比较老的库的时候会遇到。简单来说,c++11会对之前的标准兼容。

2. 新特性试用

简单的写个程序试用了一下function库,及lambda表达式,auto类型推导等,感觉还不错。不需要引入第三方库就能使用这些类function功能,还是挺方便的。其lambda表达式,auto类型推导也对编码的简化起到了比较大的作用。

三、发现的一些问题

1. auto有些时候还好,有些时候推导错误,不能通过编译。有时候在gcc中编译没问题,在clang中就会有问题,这个如果不出好,会将会导致auto的实用性大大降低。希望后面会改善。

2. lambda表达式,感觉调试起来不太好调试。

3. clang 与 gcc编译的二进制库某些地方是不兼容的,如使用std::base_string等时候,这时候会有link error,需要把使用这些类的库重新编译一下才可以。

4. 据clang自己提供的数据,其编译速度会比gcc快点,但我的实际感觉是有点gcc会快点,不知道为什么。另外,两个编译出来的程序,运行速度差距不大,应该在5%左右,当然,此数据只是估计。

最后,期待编译器对c++11支持的继续完善。

转载于:https://my.oschina.net/wxf/blog/87101

你可能感兴趣的文章
【译】更优秀的GraphQL官方中文文档-客户端如何使用
查看>>
git pull遇到的问题
查看>>
eclipse下maven spring项目环境配置
查看>>
无缝轮播
查看>>
CTS失败项分析(2)android.telephony.cts.VisualVoicemailServiceTest#testFilter_data
查看>>
三分钟,轻松了解Dapp
查看>>
GMQ交易平台满足不同客户群体的多种投资需求
查看>>
大数据开发如何入门你必须知道这些
查看>>
关于js(es5)如何优雅地创建对象
查看>>
阿里云前端周刊 - 第 28 期
查看>>
iOS 主队列同步造成死锁的原因
查看>>
es6 下比较对象是否有修改的简要方法
查看>>
windows安装mysql
查看>>
你还在看《深入理解Java虚拟机》的运行时数据模型吗?
查看>>
RIS,创建 React 应用的新选择
查看>>
线性结构上的动态规划--算法竞赛入门经典笔记
查看>>
面试官:你使用webpack时手写过loader,分离过模块吗?
查看>>
Ubuntu 16.04系统下 对OpenJDK编译好的Hotspot 进行调试
查看>>
00-利用思维导图梳理JavaSE基础知识-持续更新中!
查看>>
java中三种注释及其实际应用的意义
查看>>