草庐IT

constructed

全部标签

c++ - 使用 : Construction of objects at predetermined location in C++

在C++中在预定位置构造对象有什么用?以下代码说明了在预定位置的构造-void*address=(void*)0xBAADCAFE;MyClass*ptr=new(address)MyClass(/*argumentstoconstructor*/);这最终会在预定的“地址”处创建MyClass的对象。(假设address指向的存储足够大以容纳MyClass对象)。我想知道在内存中的这些预定位置创建对象的用途。 最佳答案 placementnew有用的一个场景是:您可以一次预分配大缓冲区,然后使用许多放置新运算符。这会给你更好的性能

c++ - 为什么模板参数上的 is_copy_constructible 静态断言失败?

我试图对模板参数进行静态断言,以检查/强制Type可复制构造。但是静态断言失败。我不明白为什么,也找不到任何文档为什么它会在静态评估中失败。实例化的类是可复制构造的,但是它使用了我认为被称为奇怪的重复模板参数模式的东西。完整的测试代码如下:#include#includeusingnamespacestd;templateclassFunContainer{//static_assert(is_copy_constructible::value,"Typemustbecopyconstructible!");//::value//::value;};};classFun:publicF

c++ - "except that a default constructed array is not empty"是什么意思?

在N3337中,我正在阅读§23.3.2.1/3,它指出:Anarraysatisfiesalloftherequirementsofacontainerandofareversiblecontainer(23.2),exceptthatadefaultconstructedarrayobjectisnotemptyandthatswapdoesnothaveconstantcomplexity.在§23.2.1,表96容器要求中,它显示了一个默认构造的对象Xu;,其中后置条件是u.empty()。据推测,以下内容:std::arraya;应该导致a.empty()输出1,它确实如此。

c++ - 对象是否在初始化列表的末尾完全构造?

这是invokingthecopyconstructorwithintheconstructor的衍生产品.我相信一个对象是完全形成的,并且可以预期在初始化列表的末尾表现得像这样(编辑:虽然我错了!)。具体来说,成员函数和从构造函数内部访问本地状态的行为与它们从任何其他成员函数中的行为完全相同。虽然这似乎是一个有点争议的观点,但替代方案是只有在构造函数正常返回后,对象才完全形成。以下是对此的快速测试用例,它显示了正在初始化的初始化列表中提到的所有成员字段以及未被默认构造的成员字段。#includestructnoise{noise(){printf("noisedefaultconst

c++ - 这是正确的 : virtual method of Derived called before constructing Base object?

我知道在Base类的构造函数中-当调用虚拟方法时-调用Base方法,而不是派生-参见Callingvirtualfunctionsinsideconstructors.我的问题与这个主题有关。我只是想知道如果我在Derived类构造函数中调用虚拟方法会发生什么-但在构造Base部分之前。我的意思是调用虚方法来评估基类构造函数参数,请参见代码:classBase{public:Base(constchar*name):name(name){cout编译器g++(4.3.x-4.5x版本)输出为:Derived::getName()Base():DerivedDerived():Deriv

c++ - QFileDialog 在重启后只工作一次(否则打印错误)

问题我使用QFileDialog。它运行良好,突然我的问题出现了。重新启动后,下面给出的代码按预期工作。然后,如果我关闭应用程序并重新启动它,模式窗口需要很长时间才能出现并且从不显示文件夹。一段时间后(5-10秒)出现一个弹出窗口,内容如下:“[错误]处理文件协议(protocol)的进程意外停止”(我的是用法语写的)有人遇到过吗?编辑:错误前的最后一行调试当它工作时(重启后)我启动应用程序,当我退出它时,调试读取CancelledFAM(Req2)for"/media/Donnees/Videos_tmp"CancelledFAM(Req1)for"/media/Donnees"我认

c++ - 带有 std::enable_if 和 std::is_default_constructible 的 SFINAE 用于 libc++ 中的不完整类型

我刚刚在使用SFINAE检测模板类型是否默认可构造时观察到libc++的一个奇怪问题。以下是我能够想出的一个最小示例:#include#includetemplatestructDummy;templatestructDummy{};templatestructhas_dummy:std::false_type{};templatestructhas_dummy>::value>>:std::true_type{};intmain(){std::cout{}(){}()它编译并输出预期的行true和false使用libstdc++使用g++或clang++编译时.但是,当我尝试使用li

c++ - std::is_constructible<T, Args> 是如何实现的?

这个问题在这里已经有了答案:C++98/03std::is_constructibleimplementation(4个答案)关闭5年前。到目前为止,我在网上找不到任何ELI5。对于一个学习项目,我想实现我自己的is_constructible。有人可以解释一下它是如何工作的吗?

c++ - 返回值优化 : ho can I avoid copy construction of huge STL containers.

当我想要一个函数返回一个容器时:vectorfunc(){vectorresult;...returnresult;}按以下方式使用:vectorresult=func();为了避免复制我的容器的开销我经常编写函数,以便它只返回接受一个容器的非常量实例。voidfunc(vector&result){result.clear();...result;}按以下方式使用:vectorresult;func(result);难道我的努力没有意义,因为我可以确定编译器总是使用返回值优化? 最佳答案 没有意义。你提到的RVO类型称为命名RVO

c++ - try catch finally construct - 它是在 C++11 中吗?

这个问题在这里已经有了答案:关闭11年前。PossibleDuplicate:DoesC++support'finally'blocks?(Andwhat'sthis'RAII'Ikeephearingabout?)C++11是否支持try/catch/finally构造?我问是因为我找不到任何关于它的信息。谢谢。