漫谈:“标准”是一种幻觉 C++语言标准的意义

初级代码游戏的专栏介绍与文章目录-CSDN博客

我的github:codetoys,所有代码都将会位于ctfc库中。已经放入库中我会指出在库中的位置。

这些代码大部分以Linux为目标但部分代码是纯C++的,可以在任何平台上使用。


        “标准”这个词很迷惑,大部分人内心里把“标准”当作“法律”,如果违反了标准,就是犯了错误,就要被惩罚……吓死个人咧。

目录

“标准”压根就不标准

IBM没说自己是标准

贺氏也没说自己是标准

“标准”约等于“主流”

C++标准吗

“标准”的价值

“标准”从哪里来的


“标准”压根就不标准

        其实,“标准”的含义是,“一份公开的文件”,只有很少一部分标准被法律化,称为“国家强制标准”或“行业强制标准”,除此而外,绝大部分“标准”都属于商业行为,属于企业或企业联盟,没有任何法律约束力,甚至,你以为的“标准”压根就不是标准。

IBM没说自己是标准

        IBM-PC一度是个人电脑的标准,80年代到90年代,IBM-PC是“品牌机”,其他厂家全部都是“兼容机”,为什么会这样呢?IBM公开了IBM-PC(这就是第一代产品的名称,后续产品名称为IBM-PC AT、IBM-PC XT等)的技术细节,从而其他厂商可以生产兼容设备,由于IBM的影响力,配件厂商倒向兼容机,原来众多互不兼容的个人电脑品牌迅速没落,包括王安电脑,美国总统亲自颁过奖,破产了。幸存者也有,比如Apple——对,就是现在大家耳熟能详的做手机的Apple,几乎就要破产,但是凭着神一样的乔布斯活了下来并翻身成老大。

贺氏也没说自己是标准

        IBM-PC压根就不是标准。同时代还有个不是标准的标准叫“贺氏”,Modem,调制解调器,“贺氏兼容”。同时代还有个名词取得了类似“标准”的地位:“sound blaster”,翻译为“声霸卡”,其实是Creative的一款声卡,因为太著名,以至于一段时期“声霸卡”几乎成了“声卡”的代名词,很多人以为“声霸卡”就是“声卡”的意思。

“标准”约等于“主流”

        大部分情况下“标准”的意思是“主流”。

        手机无线通讯有没有“标准”?GSM和CDMA哪个算标准?3G的三套体系拿个算标准?4G的两套体系哪个算标准?5G好像好一点啊,起码没有两个联盟各自搞,但是NSA、SA也没什么关系吧?

        任何一个企业和团体都可以发布“标准”,有没有人听就看本事了。

C++标准吗

        C++有没有标准?C++98、C++03、C++11、C++14、C++17、C++20,你看我们有这么多标准呀!

        请你告诉我哪怕只一个完全符合任何一个标准——不增加、不减少的编译器。

        标准是个虚的,程序能不能编译、能不能正确运行才是王道。

“标准”的价值

        标准的存在价值,是为了减少移植成本,而不是强迫你必须这么做(编译器都不支持你怎么做?)。

“标准”从哪里来的

        标准是怎么来的?

        很多人爱说“一流企业卖标准、二流企业做产品”,说这话的人根本不知道标准怎么来的。

        标准从来都不是“先有标准、后有产品”的,而是先有产品或者半成品产品,然后把现有产品作为标准。

        硬件产品比较容易理解,你先定标准,能不能做出来啊?

        软件其实也是,标准都是基于现有产品定义的,比如C++标准怎么来的?根据现有各种编译器的特征,讨论出哪些比较具有价值,然后发布成为标准——这根本不影响编译器已经存在的没有被纳入标准的自定义特征,而且,没有自定义特征根本就不会产生新标准。


(这里是结束)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/799417.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

铸铁平台的单围和双围是什么——北重机械

铸铁平台的单围和双围是指平台的围栏结构。单围指平台只有一面围栏,通常用于平台的三个边界上,另一边是与建筑物相连的。双围指平台两侧围栏都有,即平台四个边界都有围栏。双围结构比单围结构更加安全,可以防止人员和物品从平台四…

CleanmyMac 苹果电脑清理软件,为你的 Mac 提速!

Apple Macbook 已成为当今职场不可或缺的高效助手,尤其在普遍的远程办公场景下,其运行流畅度对工作效率及用户体验至关重要。虽然长期使用会使Mac电脑性能自然衰退,但大部分导致系统变慢的因素其实可经由用户自行调整得到显著改善&#xff0c…

linux 设置命令输入行高亮(与软件无关:xshell等)

在命令执行后输出内容比较多的情况下,很难查看自己的历史命令 这个配置是系统的配置:取消.bashrc文件中force_color_prompt=yes的注释即可 (和连接服务器的软件无关) 具体的操作如下: 执行以下命令,查看配置所在的行数root@hecs-166280:~# cat .bashrc -n | grep force_…

Java Lambda 表达式(详细)

Java Lambda 表达式 Lambda 的发展史 Java Lambda 表达式是在 Java 8 版本中引入的重要特性,它描述了一种更简洁、更灵活的方式来处理函数式编程。 在 Java 8 之前,要实现函数式编程,需要通过匿名类实现接口的方式。这样的代码通常比较冗长…

深入MyBatis的动态SQL:概念、特性与实例解析

MyBatis 是一个优秀的持久层框架,它支持定制化 SQL、存储过程以及高级映射。 MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。它可以使用简单的 XML 或注解来配置和映射原始类型、接口和 Java POJO,即普通的 Java 对象为数据库中的记…

MacOS Docker 部署 Redis 数据库

一、简介 Redis是一个开源的、使用C语言编写的、基于内存亦可持久化的Key-Value数据库,它提供了多种语言的API,并支持网络交互。Redis的数据存储在内存中,因此其读写速度非常快,每秒可以处理超过10万次读写操作,是已知…

milvus search api的数据结构

search api的数据结构 此api的功能是向量相似度搜索(vector similarity search) 一个完整的search例子: 服务端collection是一个hnsw类型的索引。 import random from pymilvus import (connections,Collection, )dim 128if __name__ __main__:connections.connect(alias…

Django检测到会话cookie中缺少HttpOnly属性手工复现

一、漏洞复现 会话cookie中缺少HttpOnly属性会导致攻击者可以通过程序(JS脚本等)获取到用户的cookie信息,造成用户cookie信息泄露,增加攻击者的跨站脚本攻击威胁。 第一步:复制URL:http://192.168.43.219在浏览器打开,…

基于java JSP 实现的固定资产管理系统

开发语言:Java 框架:ssm 技术:JSP JDK版本:JDK1.8 服务器:tomcat7 数据库:mysql 5.7 数据库工具:Navicat11 开发软件:eclipse/myeclipse/idea 系统展示 前台首页功能模块 固…

Spring: 后端状态码如何与http状态码保持一致

文章目录 一、背景二、解决方案 一、背景 今天使用postman在做接口测试的时候发现了一个有趣的问题:响应体的status和http的status一样,出于好奇对该现象进行了总结。 二、解决方案 通过拦截器ResponseBodyAdvice,做到统一拦截 Controll…

day03 51单片机

51单片机学习 1 模块化编程 1.1 什么是模块化编程 随着我们的代码越来越复杂,我们的main.c越来越长,阅读性也越来越差。如果将来开始做项目,我们可能要同时操作好几个模块,这种情况下我们无法再把代码写到同一个文件,而是要分模块管理代码。 具体实现方法,就是将源码…

三防平板定制服务:亿道信息与个性化生产的紧密结合

在当今数字化时代,个性化定制已经成为了市场的一大趋势,而三防平板定制服务作为其中的一部分,展现了数字化技术与个性化需求之间的紧密结合。这种服务是通过亿道信息所提供的技术支持,为用户提供了满足特定需求的定制化三防平板&a…

YOLOV8 + 双目测距

YOLOV8 双目测距 1. 环境配置2. 测距流程和原理2.1 测距流程2.2 测距原理 3. 代码部分解析3.1 相机参数stereoconfig.py3.2 测距部分3.3 主代码yolov8-stereo.py 4. 实验结果4.1 测距4.2 测距跟踪4.3 测距跟踪分割4.4 视频展示 相关文章 1. YOLOv5双目测距(python&…

matlab/simulink仿真全合集---电力电子的simulink仿真

simulink仿真新手大礼包,共整理了9份simulink仿真模型,每一份都是完美运行,适合电气工程专业/电力电子专业的新手学习。 1、Boost电路 simulink 仿真,boost 电路模块搭建和用传递函数进行验证, 电流开环控制 、电流闭…

Jackson(json) 与其他格式数据的转换

目录 第一章、Jackson 介绍1.1)Jackson 依赖导入1.2)转义字符介绍介绍 第二章、Jackson 与其他格式数据的转换2.1)其他数据转为JSON格式数据(生成JSON)①对象转json,比如我有一个user对象②list转json③map…

内存管理机制SLAB

1. 为什么需要内存分配管理?为什么需要SLAB? 在学习c语言时,我们常常会使用到malloc()去申请一块内存空间,用于存放我们的数据,这是代码层面的语言 如果我们想要关心malloc这个命令向系统发出后,系统会做什…

解决 VSCode 编辑器点击【在集成终端中打开】出现新的弹框

1、问题描述 在 VSCode 的项目下,鼠标右键,点击【在集成终端中打开】,出现新的一个弹框。新版的 VSCode 会有这个问题,一般来说我们都希望终端是在 VSCode 的控制台中打开的,那么如何关闭这个弹框呢? 2、解…

室友打团太吵?一条命令让它卡死

「作者主页」:士别三日wyx 「作者简介」:CSDN top100、阿里云博客专家、华为云享专家、网络安全领域优质创作者 「推荐专栏」:更多干货,请关注专栏《网络安全自学教程》 SYN Flood 1、hping3实现SYN Flood1.1、主机探测1.2、扫描端…

文本识别 OCR 解决方案

Capture2Text 便携式 OCR 工具 Capture2Text 能够使用键盘快捷键快速对屏幕的一部分进行 OCR。 默认情况下,生成的文本将保存到剪贴板。支持中文、英文、法文、德文、日文、韩文、俄文、西班牙文等 90 多种语言。 Capture2Text 是便携式工具,不需要安装…

数据库引论:4、使用E-R模型的数据库设计

4.1 设计过程概览 图1 开发数据库应用包含的任务 真实世界 ⇒ \Rightarrow ⇒概念模型 ⇒ \Rightarrow ⇒逻辑模型 ⇒ \Rightarrow ⇒物理模型 数据库设计: 概念设计(Conceptual design): 用一个概念模型描述物理世界的一个主体 逻辑设计(Logical desi…