zoukankan      html  css  js  c++  java
  • C++的发展方向是对的嘛?

         C++越来越复杂,C++11添加了很多新特性,这是往正确的方向发展吗?添加新的内容给程序员带来了什么?对于我自己来说,用过lua, JavaScript, ActionScript的人,非常羡慕其它语言里的foreach, 匿名函数,等等特性。这次C++里添加了这些新特性,不仅实用,并且效率不减,对于我来说对这次的升级非常欢迎。但是事情总是有两面性的,下面分析一下带来的坏处和好处。

     坏处:

    1. 增加了学习成本,无论是新手还是有经验的程序员都需要重新学习
    2. 要使用c++ 新特性需要升级编译器
    3. 在编译程序的时候需要加参数
    4. 对于智能提示软件也需要更新版本来支持智能提示
    好处:
    1. 新加的特性很多是程序员很需要的功能
    2. c++ 是一门不需要你全部了解的语言,给程序员更多的选择
    3. 对于性能方面有所提升
    4. 修改了以前的bug

    各大厂商对C++11 持什么态度呢?来看下各大厂商对C++11基本特性支持情况:

    1. vs2012 nov ctp
    2. g++ 4.8
    3. clang 3.3
    4. intel 13.0

    这些编译器版本支持C++11基本特性,说明各大厂商基本在C++11标准出来后,很快对编译器进行了升级。详细请见这里
    编译:
    在Linux 下将编译器升级到4.8以上,使用 g++  的时候添加参数-std=c++11 即可, 或者在.bashrc里添加:

    alias g++=“g++ -std=c++11”

    简单例子:

    // test.cc
    #include <iostream>
    int main() {
         auto arr = {1, 2, 3};
         for(auto i : arr) {
              std::cout << i;
         }
    }

    编译运行结果:

    g++ -o test test.cc
    ./test
    输出结果为:123


    学习c++11的渠道:
    1、c++ primer 5th
    2、http://www.cplusplus.com/
    3、stackoverflow
    4、github

         博客后续会陆续介绍一些C++11的新特性,争取每篇文章简单明了,让已经有C++经验的人快速入门。

  • 相关阅读:
    linux下清空文件的几种方式以及对比
    远程桌面连接无法验证您希望连接的计算机的身份-mac连接远程桌面
    Linux配置临时IP和网关命令
    linux(centos、ubuntu)网卡配置文件不生效
    负载均衡
    Zookeeper基础使用机制原理
    高性能RPC框架选型
    事务隔离机制
    一致性协议Raft
    机器学习入门
  • 原文地址:https://www.cnblogs.com/fengju/p/6174301.html
Copyright © 2011-2022 走看看