#c++

2021-2-25 2:14
在有关十二种过滤元素的博客文章中,我只提到了代码的串行版本。但是如何利用并发呢?也许我们可以抛出更多线程和异步任务并更快地完成复制? 例如,我的机器上有6个内核,因此很高兴看到,例如顺序复制速度提高了5倍? 在C ++ 17中,我们有并行算法,因此让我们尝试使用std :: execution :: par调用s......
2021-2-21 7:50
我最近偶然发现了这个收藏,但值得分享。 当时我是Watcom C / C ++ 10.0的超级粉丝,因为它不仅包含许多目标,而且还包含主机设置,使其成为当天针对16位MS-DOS,32位扩展DOS的出色编译器 ,OS / 2 16位& 32位,Win16,Win32,自定义的32位Windows扩展程序,32......
2021-2-21 7:45
感谢KDE FreeBSD CI,它在libc ++之上运行我们的代码,我们发现libstdc ++和libc ++的unique_ptr实现之间存在有趣的区别。这是完全出乎意料的,并且用户的实际结果甚至更出乎意料:在特定情况下可能导致崩溃。当小部件(使用d指针作为其d指针,这是当今的惯例)安装事件过滤器时,就会发生......
2021-2-6 20:23
Warning: Can only detect less than 5000 characters 非递归元组实现背后的基本思想是,元组元素存储在TupleLeaf基类中,但是递归实现使用深层次的类层次结构,而我们将使用多重继承。用伪代码: 模板< typename T0,typename T1,...,t......
2021-1-30 8:14
Joern是屡获殊荣的开源平台,用于基于C / C ++的基于查询的强大分析。它使用基于Scala的特定于域的查询语言来为漏洞挖掘大型代码库,并为代码属性图提供参考实现。凭借其模糊的解析方法,它特别适合于机器学习应用程序。 Joern是ShiftLeft上商业SAST和代码探索产品的基础。 代码属性图(CPG)是设......
C++ Anti-Patterns(martin-ueding.de)
2021-1-22 13:2
预处理程序常数应始终使用大写字母。否则,您将得到最奇怪的错误,需要花费数小时至数天才能找到。假设您要在编译时打开/关闭某些功能。一种使用#ifdef的方法是这样的: int make_query(Query const& q){//在此处进行一些查询。 #ifdef VERIFY_RESULT //执行一些......
2021-1-20 19:33
早在2018年,我们就低级调用约定从经验上比较了Goand C ++的性能开销:传递参数,返回多个值以及传播异常时。 这些结果是使用Go 1.10和Clang 6.0获得的。从那时起,编译器不断发展,我们现在使用Go 1.15和Clang11.0运行。从那以后发现有变化吗? 什么是便宜的:通过err:= .........
2021-1-16 17:17
对于斯坦福大学的2020年秋季课程,我构建了一个小游戏项目,主要使用C ++和虚幻引擎中的一些蓝图混合而成。对于那些感兴趣的人,整个计算机科学课程(CS193U)通过Zoom讲座提供并已记录。我正在努力出版此书,与此同时,该项目已经通过GitHub开放源代码,任何人都可以拆解! 该游戏具有多种功能,可涵盖对学......
2021-1-16 7:0
如果Zig代码看起来像是跳了起来就无法调用函数,则不是。这意味着您可以确保以下代码仅调用foo()然后再调用bar(),并且可以确保无需知道任何类型的代码: D具有@property函数,这些函数可以通过类似于字段访问的方式来调用,因此在上面的示例中,c.d可能会调用一个函数。 C ++,D和Rust具有运算......
2021-1-15 19:57
我最近遇到了一个我不知道的CMake功能。它是FetchContent。我敢肯定,这对大多数人来说不是什么新闻,因为它是在CMake 3.14 1中添加的,并且自2019年2月以来一直存在,所以已经有两年了,但这是一个启示。 它可以……不,应该……不,它必须成为C和C ++包管理器未来的垫脚石。 …问题解决后,我......
C++ for Swift Developers(whackylabs.com)
2021-1-4 20:3
从某种意义上讲,Swift非常类似于C ++,当我说C ++时,我的意思是C ++ 11及更高版本。也可能会说Swift是更干净的C ++,或者说C ++没有80年代的向后兼容能力。为了给出一个想法,这里是一个最小的现代C ++代码: #include< iostream> // 1使用命名空间std;......
2021-1-2 8:21
concurrencpp是C ++的任务库,允许开发人员通过使用任务,执行程序和协程轻松安全地编写高度并发的应用程序。使用concurrencpp应用程序可以将需要异步处理的大型过程分解为可并行运行并可以在内部运行的较小任务。合作的方式来达到所需的结果。concurrencpp还允许应用程序使用并行协程轻松编写并行算......
2021-1-1 9:3
2020年几乎是可怕的。其中包括C ++委员会和我们的许多社区,就在本月,我们失去了Beman Dawes。 Beman是世界上最重要和最有影响力的C ++专家之一,他的许多贡献大部分是在幕后进行的。我和其他曾经从任何标准化STL,Boost,C ++ Now,std :: filesystem,C ++ 98/11......
2020-12-29 5:5
Warning: Can only detect less than 5000 characters
2020-12-28 22:47
Lisp是人们真正习惯于使用的那些利基,优美的语言之一 答案很简单:我对隔离感到无聊。如果您想找出为什么这种特殊的口吻特别特别,那么您将一无是处。 像其他所有lisp一样,该语言将s表达式用于代码语法和数据语法。因此,例如,s表达式(打印5)既是有效的代码段,又是包含列表print和5的有效列表。 ......
Orthodox C++(gist.github.com)
2020-12-28 5:47
正统C ++(有时称为C +)是C ++的最小子集,可改进C,但避免了所谓的Modern C ++中的所有不必要的事情。它与现代C ++的假设完全相反。 早在1990年代末,我们还是当时的C ++潮人,我们使用了最新功能。我们还告诉所有人,他们也应该使用这些功能。随着时间的流逝,我们了解到不必仅仅因为存在某些语言......
2020-12-26 10:33
Embarcadero Dev-C ++是Bloodshed Dev-C ++和Orwell Dev-C ++的新改进版(由Embarcadero赞助)。 它是功能齐全的集成开发环境(IDE)和C / C ++编程语言的代码编辑器。 它使用TDM-GCC 9.2.0中GCC的Mingw端口(GNU编译器集合)作为具有......
2020-12-25 18:40
C ++标准库包含丰富的容器,迭代器和算法的集合,这些容器,迭代器和算法可以组合起来以产生复杂问题的优雅解决方案。最重要的是,它们速度很快,使C ++成为编写高性能代码的诱人选择。 NVIDIA最近推出了stdpar:一种使用nvc ++编译器在GPU上自动加速C ++标准库算法执行的方法。这意味着使用标准库容器和......
2020-12-24 21:40
在我们以前的博客文章“ Interactive C ++ with Cling”中,我们提到了探索性编程是减少问题复杂性的有效方法。这篇文章将讨论为支持数据科学研究人员而开发的Cling的一些应用程序。特别是,交互式探测数据和接口使复杂的库和复杂的数据更易于访问。我们旨在大规模展示Cling的某些功能; Cling的......
How do C++ using-directives work?(quuxplusone.github.io)
2020-12-24 21:18
使用声明在语义上类似于声明;它在当前范围内引入了名称的新含义。如果该名称已经具有来自外部作用域的一个或多个含义,则这些现有的含义将被新声明隐藏或遮盖。 Godbolt: 命名空间AnimalUtils {int foo(Zoo :: Animal);}命名空间Outer {int foo(Zoo :: Lion);......
Writing a custom iterator in modern C++(www.internalpointers.com)
2020-12-21 9:55
迭代器是指向容器内元素的对象。像指针一样,迭代器可用于访问其指向的元素,并可在容器的内容中移动。 C ++标准库中的每个容器都提供了自己的迭代器以及一些检索它的方法。使用迭代器非常简单:从容器中获取实例,将其移动到需要的地方,然后获取指向的元素。 具体而言,迭代器是一个简单的类,提供了许多运算符:增量++,解引用*......
2020-12-20 16:52
热图显示,PHP的缺陷最多,其次是C ++,其次是Veracode的年度安全报告中的Java,.Net,JavaScript和Python。 Veracode已发布其年度软件安全状况报告的第11卷,其调查结果表明存在缺陷的应用程序已成为常态,开放源代码库越来越不可信,并且花费很长时间来解决问题。 该报告发......
2020-12-19 4:57
Ganja.js是JavaScript的几何代数代码生成器。它生成任何签名的Clifford代数和子代数,并实现运算符重载和代数常数。 @misc {https://doi.org/10.5281/zenodo.3635774,doi = {10.5281 / ZENODO.3635774},url = {htt......
On Design Patterns in C++(www.fluentcpp.com)
2020-12-19 1:56
我知道的对“设计模式”的第一个参考是著名的GoF书: 这本书是编程的经典著作,它位于世界各地许多程序员的桌上。 本书描述的设计模式是多种结构化代码以解决特定问题的方法。这些模式已标记有“策略”,“访问者”,“适配器”,“命令链”等名称。 设计模式不是特定于语言的:它们可以以C ++,Java,C#和许多其他语言......
2020-12-16 14:4
ISO / IEC 14882:2020本文档规定了C ++编程语言的实现要求。 第一个这样的要求是它们必须实现语言,因此本文档还定义了C ++。 其他需求 C ++是基于C编程语言的通用编程语言,如所述。 ISO / IEC 9899:2018编程语言-C(以下称为C标准)。 C ++提供
Bit Manipulation with C++20(www.modernescpp.com)
2020-12-13 17:22
这篇文章总结了我对C ++ 20库功能的介绍。今天,我写关于类std :: source_location和一些用于位操作的函数的文章。 std :: source_location表示有关源代码的信息。该信息包括文件名,行号和函数名。当您需要有关呼叫站点的信息(例如用于调试,记录或测试目的)时,此信息非常宝......
2020-12-6 20:46
Skybolt是一种实时行星环境渲染引擎,旨在用于飞行模拟器,航空航天研发和地理空间应用。 Skybolt用C ++编写,基于OpenSceneGraph,并支持CIGI与主机应用程序进行通信。 Skybolt还具有Python API,可轻松与科学和工程研究工具集成。 Skybolt存储库包括Sprocket,这......
2020-12-6 20:21
它是必须与C ++一起使用的原始文本替换工具。但是“必须”确实如此吗?由于新的和更好的C ++语言功能,大多数用法已经过时了。模块之类的更多功能很快就会出现™那么我们能摆脱预处理器吗?如果是的话,我们该怎么办呢? 预处理器的大部分使用已经是不好的做法:不要将其用于符号常量,请勿将其用于内联函数等。 因为这引起了......
2020-12-6 3:54
C和C ++作为语言有一些东西使它们彼此分开,主要是在它们的详细信息上,偶尔还有较大的功能集,例如指定的初始化程序。但是,令人烦恼的是,大量的C ++可以简单地完成C的工作,远胜于C,包括解决C和C ++的发展面临的一些最大问题时。 让我们来解决一个同时困扰C和C ++的当代问题,它影响了从标准库维护人员到项目开发......
2020-12-5 22:9
一个求和类型,也称为区分联合,可以容纳几种类型的事物中的一种(并且只有一种),例如,考虑类似INI的配置文件中的某些设置,假设每个设置必须是一个字符串,一个整数或布尔值。如果要在C ++中推出自己的解决方案,我们可能会写类似以下内容: 结构设置{union {字符串str;整数;布尔b; };枚举类型{Str,In......