当前位置: 首页 > news >正文

漫谈:“标准”是一种幻觉 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++标准怎么来的?根据现有各种编译器的特征,讨论出哪些比较具有价值,然后发布成为标准——这根本不影响编译器已经存在的没有被纳入标准的自定义特征,而且,没有自定义特征根本就不会产生新标准。


(这里是结束)

相关文章:

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

初级代码游戏的专栏介绍与文章目录-CSDN博客 我的github:codetoys,所有代码都将会位于ctfc库中。已经放入库中我会指出在库中的位置。 这些代码大部分以Linux为目标但部分代码是纯C的,可以在任何平台上使用。 “标准”这个词很迷惑&#xf…...

【Wbpack原理】基础流程解析,实现 mini-webpack

【Wbpack原理】基础流程解析,实现 mini-webpack ⛄:webpack 对前端同学来说并不陌生,它是我们学习前端工程化的第一站,在最开始的 vue-cli 中我们就可以发现它的身影。我们的 vue/react 项目是如何打包成 js 文件并在浏览器中运行…...

Debian 安装 python 3.9.6

安装相关依赖 sudo apt update sudo apt install build-essential zlib1g-dev libncurses5-dev libgdbm-dev libnss3-dev libssl-dev libsqlite3-dev libreadline-dev libffi-dev curl libbz2-dev 下载Python 源码 wget https://mirrors.aliyun.com/python-release/source/Py…...

搜索二维矩阵2 合并两个有序链表

240. 搜索二维矩阵 II - 力扣&#xff08;LeetCode&#xff09; class Solution { public:bool searchMatrix(vector<vector<int>>& matrix, int target) {int i matrix.size() - 1, j 0;while(i > 0 && j < matrix[0].size()){if(matrix[i][j…...

深入Tauri开发——从环境搭建到项目构建

深入Tauri开发——从环境搭建到项目构建 开启你的Tauri桌面应用开发之旅&#xff08;续&#xff09; 经过上一篇文章的基础介绍&#xff0c;现在让我们更进一步&#xff0c;详细阐述如何在Windows和macOS平台上顺利搭建Tauri应用所需的开发环境&#xff0c;并指导您从创建项目…...

Redis 和 Mysql 数据库数据如何保持一致性

Redis 和 Mysql 数据库数据如何保持一致性 保持Redis和MySQL数据库数据一致性是一个常见且重要的问题&#xff0c;特别是在使用Redis作为MySQL数据库的缓存层时。以下是几种常用的保证二者数据一致性的策略和方法&#xff1a; 双写一致性&#xff08;同步更新&#xff09;&…...

探索7个MAMP本地开发环境的高效替代软件

什么是本地开发环境 本地开发环境是Web开发环境中的一种类型&#xff0c;它是指开发者自己的计算机上配置的一套用于开发和测试网站或应用程序的软件集合。这套环境使得开发者可以在本地计算机上构建和测试网站&#xff0c;而无需实时部署到服务器。 创建本地开发环境有两种方…...

靡语IT:Bootstrap 简介

1.1 Bootstrap 简介&#xff1a;什么是 Bootstrap? Bootstrap 是一个用于快速开发 Web 应用程序和网站的前端框架。Bootstrap是前端开发中比较受欢迎的框架&#xff0c;简洁且灵活。它基于HTML、CSS和JavaScript&#xff0c;HTML定义页面元素&#xff0c;CSS定义页面布局&…...

亚马逊店铺引流:海外云手机的利用方法

在电商业务蓬勃发展的当下&#xff0c;亚马逊已经成为全球最大的电商平台之一&#xff0c;拥有庞大的用户群和交易量。在激烈的市场竞争中&#xff0c;如何有效地吸引流量成为亚马逊店铺经营者所关注的重点。海外云手机作为一项新兴技术工具&#xff0c;为亚马逊店铺的流量引导…...

10 Python进阶:MongoDB

MongoDb介绍 MongoDB是一个基于分布式架构的文档数据库&#xff0c;它使用JSON样式的数据存储&#xff0c;支持动态查询&#xff0c;完全索引。MongoDB是NoSQL数据库的一种&#xff0c;主要用于处理大型、半结构化或无结构化的数据。以下是MongoDB数据库的一些关键特点和优势&a…...

Leetcode 142. 环形链表 II和Leetcode 242. 有效的字母异位词

文章目录 Leetcode 142. 环形链表 II题目描述C语言题解解题思路 Leetcode 242. 有效的字母异位词题目描述C语言题解和思路解题思路 Leetcode 142. 环形链表 II 题目描述 给定一个链表的头节点 head &#xff0c;返回链表开始入环的第一个节点。 如果链表无环&#xff0c;则返…...

【嵌入式DIY实例】-MODBUS串行通信

MODBUS串行通信 文章目录 MODBUS串行通信1、什么是RS-4852、MAX485 TTL转RS485转换器3、硬件准备4、代码实现4.1 主机和从机之间简单通信4.2 主/从机之间LED控制在本文中,我们将介绍如何使用 MAX485 MODBUS 在Arduino之间进行串行通信。 我们将使用 Arduino nano 板和 MODBUS …...

入门用Hive构建数据仓库

在当今数据爆炸的时代&#xff0c;构建高效的数据仓库是企业实现数据驱动决策的关键。Apache Hive 是一个基于 Hadoop 的数据仓库工具&#xff0c;可以轻松地进行数据存储、查询和分析。本文将介绍什么是 Hive、为什么选择 Hive 构建数据仓库、如何搭建 Hive 环境以及如何在 Hi…...

【计算机网络】会话层

负责维护两个会话主机之间链接的建立、管理和终止&#xff0c;以及数据的交换。 会话控制&#xff1a;决策该由谁来传递数据 令牌管理&#xff1a;禁止双方同时执行一个关键动作 同步功能&#xff1a;在一个长的传输过程中设置一些断点&#xff0c;以便系统崩溃后能恢复至崩…...

springboot实现七牛云的文件上传下载

一&#xff1a;依赖包 <dependency><groupId>com.qiniu</groupId><artifactId>qiniu-java-sdk</artifactId><qiniu-java-sdk.version>7.7.0</qiniu-java-sdk.version></dependency>二:具体实现 RestController RequestMapping…...

【RISC-V 指令集】RISC-V 向量V扩展指令集介绍(六)- 向量内存一致性模型

1. 引言 以下是《riscv-v-spec-1.0.pdf》文档的关键内容&#xff1a; 这是一份关于向量扩展的详细技术文档&#xff0c;内容覆盖了向量指令集的多个关键方面&#xff0c;如向量寄存器状态映射、向量指令格式、向量加载和存储操作、向量内存对齐约束、向量内存一致性模型、向量…...

Lvgl9 WindowsSimulator Visual Studio2017

因为在操作过程中遇到了一些错误&#xff0c;所以将操作及解决问题的过程记录下来。 一、下载lv_port_pc_visual_studio github链接:GitHub - lvgl/lv_port_pc_visual_studio: Visual Studio projects for LVGL embedded graphics library. Recommended on Windows. Linux su…...

【STL】链表(list)

链表是一种物理存储单元上非连续、非顺序的存储结构&#xff0c;数据元素的逻辑顺序是通过链表中的指针链接次序实现的。 链表由一系列结点&#xff08;链表中每一个元素称为结点&#xff09;组成&#xff0c;结点可以在运行时动态生成。每个结点包括两个部分&#xff1a;一个…...

node.js常用指令

1、node&#xff1a;启动 Node.js REPL&#xff08;交互式解释器&#xff09;。 node 2、node [文件名]&#xff1a;执行指定的 JavaScript 文件。 node app.js 3、npm init&#xff1a;初始化一个新的 Node.js 项目&#xff0c;生成 package.json 文件。 此命令会创建一个…...

Flutter第六弹 基础列表ListView

目标&#xff1a; 1&#xff09;Flutter有哪些常用的列表组建 2&#xff09;怎么定制列表项Item&#xff1f; 一、ListView简介 使用标准的 ListView 构造方法非常适合只有少量数据的列表。我们还将使用内置的 ListTile widget 来给我们的条目提供可视化结构。ListView支持…...

Rdkit实战:从2D到3D,解锁分子构象生成与优化的全流程

1. 从2D到3D&#xff1a;分子构象生成的基础概念 第一次接触分子构象生成时&#xff0c;我完全被各种术语搞晕了——距离几何、ETKDG、MMFF这些名词听起来就像天书。直到用RDKit实际操作了几次&#xff0c;才发现这个过程其实就像搭积木&#xff1a;先有个平面设计图&#xff…...

Haneke与AFNetworking集成实战:构建强大的iOS图片加载系统

Haneke与AFNetworking集成实战&#xff1a;构建强大的iOS图片加载系统 【免费下载链接】Haneke A lightweight zero-config image cache for iOS, in Objective-C. 项目地址: https://gitcode.com/gh_mirrors/ha/Haneke 在iOS应用开发中&#xff0c;图片加载与缓存是影响…...

英雄联盟个人信息修改终极指南:3分钟学会LeaguePrank完整使用教程

英雄联盟个人信息修改终极指南&#xff1a;3分钟学会LeaguePrank完整使用教程 【免费下载链接】LeaguePrank 项目地址: https://gitcode.com/gh_mirrors/le/LeaguePrank 你是否厌倦了英雄联盟中千篇一律的个人资料显示&#xff1f;想向好友展示一个与众不同的游戏身份吗…...

WordPress Playground部署实战:从开发到生产的完整流程指南

WordPress Playground部署实战&#xff1a;从开发到生产的完整流程指南 【免费下载链接】wordpress-playground Run WordPress in the browser via WebAssembly PHP 项目地址: https://gitcode.com/gh_mirrors/wo/wordpress-playground WordPress Playground 是一个革命…...

思源宋体TTF字体包:为什么专业设计师都选择它?7大应用场景深度解析

思源宋体TTF字体包&#xff1a;为什么专业设计师都选择它&#xff1f;7大应用场景深度解析 【免费下载链接】source-han-serif-ttf Source Han Serif TTF 项目地址: https://gitcode.com/gh_mirrors/so/source-han-serif-ttf 还在为中文排版烦恼吗&#xff1f;字体选择困…...

领域负载物技能制作器技能domain-payload-generator

Domain Payload Generator&#xff08;SkillHub&#xff09; Domain Payload Generator&#xff08;ClawHub&#xff09; name: domain-payload-generator author: 王教成 Wang Jiaocheng (波动几何) description: 领域负载物技能制作器&#xff08;Meta-Skill&#xff09;——…...

Spark算子分类与特性解析

转换算子转换算子是Spark中最基础的算子类型&#xff0c;它们负责定义数据处理的逻辑&#xff0c;但不会立即执行计算。转换算子具有惰性求值特性&#xff0c;这意味着它们只是记录下数据转换的规则&#xff0c;而不会立即触发计算。常见的转换算子包括&#xff1a;map&#xf…...

【NS-3实战指南】NetAnim可视化调试与网络拓扑分析

1. NetAnim入门&#xff1a;从安装到第一个动画 第一次接触NS-3仿真的人往往会被命令行输出的数字搞得头晕眼花。记得我刚开始做无线网络仿真时&#xff0c;盯着终端里不断跳动的数据包统计数字&#xff0c;完全想象不出节点之间到底是怎么通信的。直到发现了NetAnim这个神器&a…...

441GB香港OSGB数据实战:从ContextCapture目录到Smart3D加载的完整指南

1. 441GB香港OSGB数据背景解析 第一次拿到441GB的香港OSGB数据时&#xff0c;我的硬盘指示灯疯狂闪烁了整整一晚上。这种规模的倾斜摄影数据在业内确实罕见&#xff0c;特别是覆盖香港565平方公里区域的完整数据集。实测发现&#xff0c;这套数据采用ContextCapture标准目录结构…...

办公Agent从0到1落地指南,5个步骤 + 6个避坑

大家好&#xff0c;我是小悟。 一、核心逻辑&#xff1a;Agent不是“对话机器人”&#xff0c;而是“数字执行者” 很多团队误以为采购了某个AI助手&#xff08;如会议纪要工具、代码生成插件&#xff09;就是引进了Agent。真正的办公Agent具备“感知-决策-执行”闭环&#xff…...