草庐IT

c++ - Soft (not : weak) references in C++ - Is it possible? 有实现吗?

在C++中,我使用boost::shared_ptr和boost::weak_ptr自动删除不再需要的对象。我知道这些与引用计数一起工作。在Java中,内存由垃圾收集器管理,垃圾收集器将内置对象引用视为strong,将WeakReference视为weak并且SoftReference作为介于两者之间的东西(可能被GC收集,但也可能在GC中幸存下来),这对于缓存对象一段时间非常方便,但一旦可用内存变低就将它们丢弃。所以现在我又回到了C++中,我想念软引用带来的舒适感。我想知道软引用是否完全适用于引用计数。当对象的最后一个strong引用被清除,并且还剩下一个soft引用时,到底什么时候

c++ - 如何在 Eclipse 中指定预处理器指令?

如何在eclipse中为不同的配置指定预处理器指令?例如,如果我有多个主电源应该以不同的配置运行并指定#ifdefProblem1//mainfunc#endif/*Problem1*/请注意,这是托管makefile 最佳答案 documentation指向“C/C++项目属性”→“路径和符号”→“符号”。但是,通常最好为不同的配置/架构/...使用不同的源文件,而不是大量使用预处理器。 关于c++-如何在Eclipse中指定预处理器指令?,我们在StackOverflow上找到一个类

c++ - C++ 中的内联 throw() 方法

我正在尝试定义一个非常简单的异常类。因为它太简单了,所以我只想将它保留在.h文件中,但编译器不喜欢throw()。代码:#include#includeclassPricingException:publicvirtualstd::exception{private:std::stringmsg;public:PricingException(std::stringmessage):msg(message){}constchar*what()constthrow(){returnmsg.c_str();}~PricingException()throw(){}};GCC给出以下错误:/

c++ - 在哪里可以找到 C++11 类型前缀/后缀的列表?

有人可以指点我一份完整的语言类型前缀/后缀列表吗?前缀示例:autos1(u8"I'maUTF-8string.");autos2(u"ThisisaUTF-16string.");autos3(U"ThisisaUTF-32string.");autos4(R"(RAW\STRING")");autos5(L"widestring");//etc..//*I'veonlyseenprefixeslikethisforstrings.后缀示例:auton1=7.2f;auton2=7.2d;auton3=100L;auton4=10000LL;//etc..我所有的搜索尝试都将我转到“

c++ - 丢包纠错码 (UDP)

我真的不知道要查找什么,因为我从“错误更正代码”中得到的只是与您不知道错误位置的情况相关的内容。因此,这些代码比我需要的要复杂和低效得多。在下文中,请注意位等于数据包(因为只能丢失整个数据包,因此位类比非常合适)。是否有ECC考虑到您已经知道丢失了哪些k位,并且只为您提供了一种在那些k位置重建数据流的方法?此外,ECC添加的位应该是独立的(最好)。这样,如果数据的ECC部分发生丢包,它仍然可以重建一些原始数据(并不总是会有k个错误,大多数情况下不会。所以ECC对自己的容错很重要添加了ECC位)。在我看来,这是一个很大的不同。对于缺少一位很简单,我可以只使用一个XOR位。但我还不够聪明,

c++ - 理解 std::future::then 的延续

谁能用C++中的示例解释async([](){x();y();})和async([]()之间的区别{x();}).then([](){y();})?我的理解是,在后一种情况下,x、y中的每一个都可能会立即在不同的线程中启动,并且只会在get时阻塞(在它们各自的线程中)()在未来作为输入传递时被调用。 最佳答案 ...whatisthedifferencebetweenasync([](){x();y();})andasync([](){x();}).then([](){y();})?真的不多-那么为什么要有呢?一言以蔽之可组合性。它

c++ - 在 OpenGL 中每帧绘制新的全屏图像的最快方法是什么?

每一帧,我的程序都会从​​USB摄像机接收一张新图像。该图像最初位于CPU内存中。OpenGL中将此图像绘制到屏幕上以填满整个屏幕的最快方法是什么?目前,我正在将图像数据上传到纹理,然后渲染全屏四边形。但是,这在我试过的另一台机器上运行得不是很快。 最佳答案 Currently,I'muploadingtheimagedatatoatextureandthenrenderingafullscreenquad.However,thisdoesn'trunveryquicklyonadifferentmachinethattried.A

c++ - Braced-init-lists 和函数模板类型推导顺序

我有一个关于函数模板参数类型推导过程的问题。举个例子:#include#include#include#include#includeintmain(){std::ifstreamfile("path/to/file");std::vectorvec(std::istream_iterator{file},{});//如果我理解正确,第二个参数被推断为std::istream_iterator类型其中调用了默认构造函数。适当std::vector构造函数声明为:templatevector(InputIteratorfirst,InputIteratorlast,constalloca

c++ - 通过 using-directive 在 using-declaration 中查找名称

根据c++标准,下面的程序是良构还是病构的?namespaceN{inti;}usingnamespaceN;using::i;intmain(){}我用不同的编译器得到不同的结果:Clang(http://melpon.org/wandbox/permlink/c8vl7XbumyyS6vsw):没有错误。GCC(http://melpon.org/wandbox/permlink/immhNeWFCMcCA800):错误:'i'未声明。根据c++标准,这个程序是良构还是病构的?需要对c++标准的引用。我想弄清楚我应该为哪个编译器提交错误。 最佳答案

c++ - 字符串是否到处都包含空子字符串?

这个问题来自于thisanswer上的讨论。.简而言之:答案(0x499602D2)的作者声称(我现在知道是正确的)如果不跳过空格,但下一个字符是空格,则除字符外的所有提取都将失败。我对此提出质疑,因为我认为提取string应该不会失败,因为流包含一个由开头的空白字符分隔的空字符串。这发展成为一般性讨论是否在字符串中的任何位置存在空字符串,例如在字符串"ab"的a和b之间(我说是,0x499602D2说不是)。0x499602D2建议我把它放在一个问题中,所以我在这里。我从该线程(包括聊天部分)复制我的立场的主要论点:Let'sfirstlookattheconstantforanem