c++11相关内容

比率乘法过程中的Timo::DATION_CAST问题

我正在编写一些必须处理NTP时间的代码。我决定用std::chrono::duration来表示它们,我希望这会让我的时间数学更容易做。 NTP时间由无符号64位整数表示,从纪元开始的秒数在高32位,小数秒在低32位。划时代的日期是1900年1月1日,但这是一个与我在这里处理的问题不同的问题,我已经知道如何处理它。对于我正在使用的示例,假设纪元为1970年1月1日,以使计算更简单。 持续时 ..
发布时间:2022-05-16 23:19:44 C/C++开发

为什么我不能创建一个自动变量数组?

在C++0x中(哦!阅读C++11),我们有自动类型推理。有一件事让我很好奇,那就是我不能创建一个自动变量数组。例如: auto A[] = {1, 2, 3, 4}; // Error! 您知道这可能被禁止的原因吗? 推荐答案 auto将每个大括号括起的初始值设定项列表演绎为std::initializer_list。(参见第7.1.6.4.6节,包括示例)。 遗憾的 ..
发布时间:2022-05-08 16:35:07 C/C++开发

函数的右值引用和返回值

我是C++11新手,在阅读C++11 FAQ时有以下问题。 假设我们有一个函数f()返回一个X类型的值,那么我们有以下方法来存储它的返回值: X a = f(); // copy assignment X&& b = f(); // move assignment 根据C++ FAQ,第二个可避免不必要的复制。 我的问题是:第二种方法总是接收函数调用返回值的首选方法吗?此 ..
发布时间:2022-05-08 10:23:47 C/C++开发

C++11 MOVE(X)实际上表示STATIC_CAST<;X&;&;>;(X)?

阅读Stroustrup的C++编程语言第四版,在第7章中他说: move(x)表示static_cast(x),其中X是x的类型 和 由于move(X)不移动x(它只是生成一个右值引用 To x)如果调用了rval()会更好 我的问题是,如果move()只是将变量转换为rval,那么实现对变量的引用(通过更新指针)的实际机制是什么? 我认为move()就像 ..
发布时间:2022-05-08 09:57:56 C/C++开发

单个加载是否与多个存储同步?

以下引用自C++ Standard - Memory Order: 如果线程A中的原子存储被标记为MEMORY_ORDER_RELEASE,而线程B中来自同一变量的原子加载被标记为MEMORY_ORDER_ACCENTE,则从线程A的角度来看,在原子存储之前发生的所有内存写入(非原子和松弛原子)在线程B中都成为可见的副作用。也就是说,一旦原子加载完成,线程B将确保看到线程A写入内存的所有内容 ..
发布时间:2022-04-18 10:06:41 C/C++开发

什么是C++11原子库与Java的原子库等价物?

需要此调用来实现无锁的链表。 ATOMICMarkableReference是一个来自java.util.concurent.atom包的对象,它封装了对类型T的对象的引用和布尔标记。这些字段可以一起更新,也可以单独更新。 谢谢。 推荐答案 假设对象的对齐大于1,则可以将指针的最后一位用作布尔标记: template class MarkableRefer ..
发布时间:2022-04-18 09:58:04 Java开发

什么是与`__ASM__Volatile(&Quot;";:&Quot;Memory&Quot;)`等价的C++11原子API

代码库具有定义为__asm__ volatile("" ::: "memory")的COMPILER_BARRIER宏。宏的目的是防止编译器跨障碍对读写进行重新排序。请注意,这显然是编译器障碍,不是处理器级内存障碍。 实际上,这是相当可移植的,因为在汇编模板中没有实际的汇编指令,只有volatile和memory装配器。因此,只要编译器支持GCCS扩展ASM语法,它就应该工作得很好。不过,如果可 ..
发布时间:2022-04-18 09:54:51 C/C++开发

如何将C++和C变量参数一起使用?

通常,将C++11可变模板功能与函数一起使用时,要求基于可变的函数参数是函数参数列表中的最后一个。有一个例外;如果有C级可变参数,则它们是倒数第二个参数,而C级变量必须是最后一个。 template int super_printf( Something x, Args &&...a, ... ); 我有时会随机地想到C++,我想知道如何实现这 ..

可以内联lambda表达式吗?

我想内联一个lambda表达式,因为出于性能原因,它非常简短。有可能吗? 推荐答案 inline关键字实际上不会导致函数内联。任何最新的编译器都会做出比您更好的内联决策。 如果是较短的lambda,该函数可能会内联。 如果您尝试将inline关键字与lambda一起使用,则答案是否定的,您不能使用该关键字。 ..
发布时间:2022-04-16 17:31:16 C/C++开发

使用C++创建UDP服务器,嵌入到跨平台的iOS和Android应用程序中

我正在开发一款跨平台的手游(iOS和Android),使用的是coCos2d-x。 我的大部分代码都是用C++编写的,而特定于操作系统的代码则使用了桥接在Objective-C/Java/Swift中。 我想知道是否有人在他们的应用中使用过C++库来托管UDP服务器? 编辑:到目前为止,我已经找到了很多特定于平台的解决方案(使用Java for Android,以及Cocoaasync ..
发布时间:2022-04-13 13:21:01 游戏开发