一、C++相关知识简介
来源:互联网 发布:平安证券行情软件下载 编辑:程序博客网 时间:2024/05/15 23:50
一、版本简介
1. C++98:ISO/IEC 14882:1998
命名空间:std
最古老版本的C++标准
2. C++03:ISO/IEC 14882:2003
命名空间:std
3. TR1:C++ Technical Report 1
命名空间:std::tr1
作为C++03的扩展,但是其中一些最终被引入C++11
因为TR1只是C++03的扩展,因此编译器本身不强制要求支持TR1。但是TR1中的大部分内容都在boost::tr1中有体现。
4. Boost:
命名空间:boost
boost是基于C++03实现的一个增强版的C++库,他的很多库已经被引入TR1,TR2,而TR1中大部分的内容已经引入C++11。
5. C++11(C++0x):ISO/IEC 14882:2011
命名空间:std
引入大部分TR1的内容
6. TR2:C++ Technical Report 2
作为C++11的扩展
二、C++编译器
1. 编译器的结构
frontend用于做语法分析,将程序语言转化成中间语言。
backend用于将中间语言转化成机器语言。
2. GCC,LLVM,Clang
GCC4.2的前端和后端都是GCC自己来实现的。
LLVM-GCC的前端是GCC,后端是LLVM
LLVM Compiler,也就是Clang,前端是Clang,后端是LLVM
LLVM本身是一个后端
3. gcc与g++的区别gcc:GNU Compiler Collection,本身是一个工具集
g++:C++ Compiler,因此是gcc的一个子集,g++自动使用libstdc++,实际上g++还是用的gcc
4. libstdc++与libc++
MAC下,前者使用的C++版本是C++03,后者是C++11,使用C++03编译的库与使用C++11的库ABI不兼容
ABI不兼容:
4.1. 如何查看一个二进制使用的lib:
otool -L <file>
4.2. Mac使用C++11编译程序:
./configure CC=clang CXX=clang++ CXXFLAGS='-stdlib=libc++'
- 一、C++相关知识简介
- android相关知识简介
- redis相关知识简介
- RAID相关知识简介
- 蓝牙相关知识简介
- svg相关知识简介
- xml相关知识简介
- JDBC相关知识(一)
- IPU相关知识(一)
- C语言知识简介
- 大数运算相关知识简介
- hbase相关背景知识简介
- rdlc报表相关知识简介
- Android简介及相关知识
- Object-C相关知识
- Object-C 相关知识
- C指针相关知识
- C语言相关知识
- android通过高德地图定位sdk获取当前位置的经纬度(只是经纬度哦)
- WM_KICKIDLE消息
- Java实现有序单向链表
- oracle表分区详解
- EXTJS笔记整理1
- 一、C++相关知识简介
- 巧用浏览器开发人员工具和扩展下载网络视频
- windows核心编程13-16 18
- 华三H3C E5200与E2100组建IPSEC VPN
- sqlite
- 图解:光缆终端盒、尾纤的作用和接法
- Ogre compile error
- Cocos2D-x 2.0以上版本跨Android开发环境的搭建---------------------cocos2d-x 3.0正式版本(7.2)
- 写在《嵌入式Linux驱动模板精讲与项目实践》上市之后