Philosophy[edit]

Throughout C++'s life, its development and evolution has been informally governed by a set of rules that its evolution should follow:[9]

  • It must be driven by actual problems and its features should be useful immediately in real world programs. 由现实问题驱动而产生的语言
  • Every feature should be implementable (with a reasonably obvious way to do so). 每种特性都是可以实现的
  • Programmers should be free to pick their own programming style, and that style should be fully supported by C++. 程序员应该自由的使用自己的方式来编程
  • Allowing a useful feature is more important than preventing every possible misuse of C++. 允许使用一个特性比滥用特性更重要
  • It should provide facilities for organising programs into well-defined separate parts, and provide facilities for combining separately developed parts. 可以很好的组织和分发任务进行团队编程
  • No implicit violations of the type system (but allow explicit violations; that is, those explicitly requested by the programmer). 没有隐含的违反系统的类型
  • User-created types need to have the same support and performance as built-in types. 用户创建的类型可以与内建类型有同样等级的支持和性能
  • Unused features should not negatively impact created executables (e.g. in lower performance). 未使用的功能不应对创建的可执行文件产生负面影响
  • There should be no language beneath C++ (except assembly language). There should be no language beneath C++已经是终极语言了,而不是还有语言去扩展它
  • C++ should work alongside other existing programming languages, rather than fostering its own separate and incompatible programming environment. C++应该与其他现有的编程语言一起工作,而不是建立自己独立且不兼容的编程环境
  • If the programmer's intent is unknown, allow the programmer to specify it by providing manual control. 如果程序员的意图未知,则允许程序员通过提供手动控制来指定程序员的意图。

https://en.wikipedia.org/wiki/C%2B%2B

我认为总结为两句话:1. C++来自于现实世界的实际需求,是实践派而不是理论派 2. 允许程序员自由的使用自己的方式编程,而且允许内建各种类型,总之就是很自由、很强大。

Wiki上的C++哲学的更多相关文章

  1. Wiki上的Ue4文件结构以及命名规范

    https://wiki.unrealengine.com/Assets_Naming_Convention

  2. 准备下上机考试,各种排序!!以后再添加和仿真像wiki上那样!

    #include <stdio.h> #include <string.h> #define N 6 typedef struct { ]; int score; }stude ...

  3. k-develop 在ros上面的应用

    sudo apt-get install kdevelop 根据wiki上面的ros 章节中,关于kdevelop的介绍,配置好环境即可. 导入工程时,选中src/src下面的章节,不过,需要注意去掉 ...

  4. 利用JS实现的根据经纬度计算地球上两点之间的距离

      最近用到了根据经纬度计算地球表面两点间距离的公式,然后就用JS实现了一下. 计算地球表面两点间的距离大概有两种办法. 第一种是默认地球是一个光滑的球面,然后计算任意两点间的距离,这个距离叫做大圆距 ...

  5. PHP经验——PHPDoc PHP注释的标准文档(翻译自Wiki)

    文档注释,无非“//”和“/**/”两种 ,自己写代码,就那么点,适当写几句就好了:但是一个人总有融入团队的一天,团队的交流不是那几句注释和一张嘴能解决的,还需要通用的注释标准. PHPDoc是PHP ...

  6. Solr学习笔记-在Tomcat上部署执行Solr

    上一篇我们初识了Solr而且学习了Jetty的启动方式.查看了Solr的管理界面,这一篇我们来实如今Tomcat上部署执行Solr. 部署环境: window7 jdk1.6.0_14 Solr-4. ...

  7. Archlinux在Btrfs分区上的安装(bios篇)

    其实本文所有的内容在Archwiki上都可以找到,并且更新更全面(只是比较零散),我所做的只是对安装流程做一个小小的总结,每一步我都会稍微解释一下,但不会说的特别详细,毕竟这只是一篇安装引导文,而不是 ...

  8. Android上成功实现了蓝牙的一些Profile

    前段时间做蓝牙方面的开发,Google的Android只实现了Handset/Handfree和A2DP/AVRCP等Profile,而其 它常用的Profile如HID/DUN/SPP/OPP/FT ...

  9. AngularJS是为了克服HTML在构建应用上的不足而设计的

    AngularJS中文网:http://www.apjs.net/ 简介   AngularJS是为了克服HTML在构建应用上的不足而设计的.HTML是一门很好的为静态文本展示设计的声明式语言,但要构 ...

随机推荐

  1. java-线程-基础

    线程状态及转化 借用网上的一幅图: 说明: 线程一共分为5种状态 新建状态(new) 线程对象被创建后,就进入了新建状态,例如:Thread t = new Thread(); 就绪状态(Runnab ...

  2. sparksql 动态设置schema将rdd转换成dataset/dataframe

    java public class DynamicDemo { private static SparkConf conf = new SparkConf().setAppName("dyn ...

  3. 移动应用拉起微信小程序

    APP支持打开微信小程序了 最新微信文档 如何实现APP打开小程序 通过文档打开微信开放平台添加移动应用,然后关联小程序,这些步骤按照文档描述走. IOS开发示例参考 android开发示例参考 开发 ...

  4. selenium 爬取空间说说

    package cn.hb.util; import java.io.File; import java.io.FileWriter; import java.io.IOException; impo ...

  5. SecureCRT 向多个终端发送相同命令

    选中view,选择command windows 在下方出现的窗口中右键,接下来在窗口中输入命令即可,可以一定程度上代替分发脚本,具体请参考https://www.cnblogs.com/tele-s ...

  6. Codeforces 39J Spelling Check hash

    主题链接:点击打开链接 意甲冠军: 特定2弦 选择中删除一个字符串的第一个字母,得2个字符串全然同样 问哪些位置能够选 思路: hash求前缀后缀.然后枚举位置 #include <cstdio ...

  7. 关于J2SE/Jsp/Sping/Hibernate/Struts2的视频下载

    我是一名程序猿,从大学就開始学计算机.后来參加了编程工作.如今我认为若要做一名程序猿须要具备三个条件,这三个条件也是衡量一个人能否够成为程序猿的条件. 1.对计算机拥有浓厚的兴趣. 2.良好的逻辑思维 ...

  8. 数学概念 —— 奇异性(Singularity,Vertical tangent)

    0. 基本定义 Singularity (mathematics) 数学上的奇异性一般是指,函数在该点未定义(not defined,比如取值为无穷),或者不可微(fails to be well-b ...

  9. 解决:insert Vodafone sim card,open the mms read report,when receive the read report,cann&#39;t download..

    insert Vodafone sim card,open the mms read report,when receive the read report,cann't download the m ...

  10. 微信公众平台自定义菜单接口API指南

    微信公众平台开发模式自定义菜单接口API指南 简介 开发者获取使用凭证(如何获取凭证)后,可以使用该凭证对公众账号的自定义菜单进行创建.查询和删除等操作. 自定义菜单接口可实现以下类型按钮: clic ...