草庐IT

block_copy

全部标签

C++ 对象作为返回值 : copy or reference?

我想测试当函数的返回值为对象时C++的行为。我做了这个小例子来观察分配了多少字节,并确定编译器是复制对象(比如当对象作为参数传递时)还是返回某种引用。但是,我无法运行这个非常简单的程序,我也不知道为什么。错误说:“调试断言失败!表达式:BLOCK_TYPE_IS_INVALID”在某些dbgdel.cpp文件中。Project是一个win32控制台应用程序。但我很确定这段代码有问题。classCtest1{public:Ctest1(void);~Ctest1(void);char*classSpace;};Ctest1::Ctest1(void){classSpace=newchar

C++ 对象作为返回值 : copy or reference?

我想测试当函数的返回值为对象时C++的行为。我做了这个小例子来观察分配了多少字节,并确定编译器是复制对象(比如当对象作为参数传递时)还是返回某种引用。但是,我无法运行这个非常简单的程序,我也不知道为什么。错误说:“调试断言失败!表达式:BLOCK_TYPE_IS_INVALID”在某些dbgdel.cpp文件中。Project是一个win32控制台应用程序。但我很确定这段代码有问题。classCtest1{public:Ctest1(void);~Ctest1(void);char*classSpace;};Ctest1::Ctest1(void){classSpace=newchar

c++ - 在 Code::Blocks 中启用 `-std=c++14` 标志

我已经安装了适用于Windows的Code::Blocks,并且想要编译C++14代码,如通用lambda,但我从codeblocks.org安装了Code::Blocks的二进制版本不支持标志-std=c++14。如何更新编译器并为Code::Blocks启用-std=c++14标志? 最佳答案 要在Code::Blocks中使用C++14编译源代码,首先需要下载并安装支持C++14功能的编译器。您可以在Windows上执行以下操作:从here下载MinGW(特定版本)或fromofficialsite至chooseoptions

c++ - 在 Code::Blocks 中启用 `-std=c++14` 标志

我已经安装了适用于Windows的Code::Blocks,并且想要编译C++14代码,如通用lambda,但我从codeblocks.org安装了Code::Blocks的二进制版本不支持标志-std=c++14。如何更新编译器并为Code::Blocks启用-std=c++14标志? 最佳答案 要在Code::Blocks中使用C++14编译源代码,首先需要下载并安装支持C++14功能的编译器。您可以在Windows上执行以下操作:从here下载MinGW(特定版本)或fromofficialsite至chooseoptions

c++ - 写了一些柏林噪音类型的代码,它看起来很 block 状

之前回答的问题似乎没有回答我的问题"Blocky"Perlinnoise我尽量简化以使我的代码易于阅读和理解。我不使用置换表,而是使用mt19937生成器。我使用SFMLusingnamespacestd;usingnamespacesf;typedefVector2fVec2;Spritespr;Texturetx;//dotproductfloatprod(Vec2a,Vec2b){returna.x*b.x+a.y*b.y;}//linearinterpolationfloatinterp(floatstart,floatend,floatcoef){returncoef*(en

c++ - 写了一些柏林噪音类型的代码,它看起来很 block 状

之前回答的问题似乎没有回答我的问题"Blocky"Perlinnoise我尽量简化以使我的代码易于阅读和理解。我不使用置换表,而是使用mt19937生成器。我使用SFMLusingnamespacestd;usingnamespacesf;typedefVector2fVec2;Spritespr;Texturetx;//dotproductfloatprod(Vec2a,Vec2b){returna.x*b.x+a.y*b.y;}//linearinterpolationfloatinterp(floatstart,floatend,floatcoef){returncoef*(en

c++ - 节省内存的 C++ 字符串(interning、ropes、copy-on-write 等)

已结束。此问题不符合StackOverflowguidelines.它目前不接受答案。我们不允许提出有关书籍、工具、软件库等方面的建议的问题。您可以编辑问题,以便用事实和引用来回答它。关闭6年前。Improvethisquestion我的应用程序存在内存问题,包括复制大量字符串、使用与大量哈希表中的键相同的字符串等。我正在为我的字符串寻找一个基类,以使其非常高效。我希望:字符串实习(相同值的多个字符串使用相同的内存),写时复制(我认为这在几乎所有std::string实现中都是免费的),带有绳索的东西将是一个奖励(对于O(1)-ish连接)。我的平台是Linux上的g++(但这不太重要

c++ - 节省内存的 C++ 字符串(interning、ropes、copy-on-write 等)

已结束。此问题不符合StackOverflowguidelines.它目前不接受答案。我们不允许提出有关书籍、工具、软件库等方面的建议的问题。您可以编辑问题,以便用事实和引用来回答它。关闭6年前。Improvethisquestion我的应用程序存在内存问题,包括复制大量字符串、使用与大量哈希表中的键相同的字符串等。我正在为我的字符串寻找一个基类,以使其非常高效。我希望:字符串实习(相同值的多个字符串使用相同的内存),写时复制(我认为这在几乎所有std::string实现中都是免费的),带有绳索的东西将是一个奖励(对于O(1)-ish连接)。我的平台是Linux上的g++(但这不太重要

c++ - C 和 C++ 静态链接 : just a copy?

当有人静态链接一个.lib时,链接器会将lib的全部内容复制到最终的可执行文件中还是只复制目标文件中使用的函数? 最佳答案 整个图书馆?--没有。只是你调用的函数?--没有。还有别的吗?--是的。它肯定不会扔到整个库中。但它也不一定只包括“目标文件中使用的函数”。链接器将创建一个递归构建的列表,列出库中的哪些对象模块满足您的undefinedsymbol。然后,它将包含这些对象模块中的每一个。通常,一个给定的对象模块将包含多个函数,如果其中一些没有被您做调用的函数调用,您将获得一些函数(和数据对象))你不需要的。

c++ - C 和 C++ 静态链接 : just a copy?

当有人静态链接一个.lib时,链接器会将lib的全部内容复制到最终的可执行文件中还是只复制目标文件中使用的函数? 最佳答案 整个图书馆?--没有。只是你调用的函数?--没有。还有别的吗?--是的。它肯定不会扔到整个库中。但它也不一定只包括“目标文件中使用的函数”。链接器将创建一个递归构建的列表,列出库中的哪些对象模块满足您的undefinedsymbol。然后,它将包含这些对象模块中的每一个。通常,一个给定的对象模块将包含多个函数,如果其中一些没有被您做调用的函数调用,您将获得一些函数(和数据对象))你不需要的。