草庐IT

bad_name

全部标签

c++ - 在基类中调用 shared_from_this() 时的 bad_weak_ptr

我有一个SuperParent类,一个Parent类(派生自SuperParent)并且都包含一个shared_ptr到一个Child类(它包含一个weak_ptr到一个SuperParent)。不幸的是,我在尝试设置Child的指针时遇到了bad_weak_ptr异常。代码如下:#include#include#include#includeusingnamespaceboost;classSuperParent;classChild{public:voidSetParent(shared_ptrparent){parent_=parent;}private:weak_ptrpare

c++ - C++ 错误 : a expected initializer before [function name]

这个问题不太可能帮助任何future的访问者;它只与一个小的地理区域、一个特定的时间点或一个非常狭窄的情况有关,这些情况并不普遍适用于互联网的全局受众。为了帮助使这个问题更广泛地适用,visitthehelpcenter.关闭9年前。我正在用C++刷新self(自从上学后就没用过),我写了一个简单的程序来凑热闹。我的问题是当我编译它窒息的程序时说“错误:'stringThing'之前的预期初始化程序”这样做是有原因的吗?我知道这可能是一个菜鸟问题,所以我检查了stackoverflow,但找不到任何相关问题可以给我答案。*我正在使用GNUGCC编译器代码:#includeusingna

c++ - 程序以 std::bad_alloc 终止

我正在运行一个C++程序,它在任意点死于std::bad_alloc,这取决于指定的输入。以下是关于该计划的一些观察/要点:对于较短的运行(运行时间取决于输入),程序会正常完成。问题只出现在较大的运行中。该程序没有任何可检测到的内存泄漏。这已通过Valgrind/Memcheck进行了较小的运行检查。此外,我的整个代码没有任何指针(所有动态分配都是由库完成的,例如,在std::vector和std::string中;它是这些库类中的分配失败),因此内存泄漏的可能性极小。几个对象在循环中分配,然后移动到容器中。这些对象中有几个是为了在程序快结束之前一直存在。我怀疑堆碎片可能是个问题(请参

c++ - Cygwin 的 cmake 与 CMAKE_SYSTEM_NAME 不匹配

我在使用cmake的cygwin上有一个奇怪的行为。我尝试检查我的CMakeLists.txt中的操作系统,但似乎这种特殊情况不起作用......这是一个引发我的问题的例子:set(FOO"BAR")message(${CMAKE_SYSTEM_NAME})if(${CMAKE_SYSTEM_NAME}STREQUAL"CYGWIN")message("EQUALSCYGWIN")endif()if(${CMAKE_SYSTEM_NAME}MATCHES"CYGWIN")message("MATCHESCYGWIN")endif()if(${FOO}MATCHES"BAR")messa

c++ - 在 Visual Studio 中调用 std::swap 时的 std::bad_function_call

我正在尝试将我的代码从Linux移植到Windows。但是,对于VisualStudio,我的代码因以下错误而崩溃:MicrosoftC++exception:std::bad_function_callatmemorylocation这是我的代码:#includeclassFoo{public:Foo(int):m_deleter{[](){}}{}Foo(constFoo&)=delete;Foo(Foo&&)=default;Foo&operator=(constFoo&)=delete;Foo&operator=(Foo&&)=default;~Foo(){m_deleter(

c++ - 异常 : bad_weak_ptr while shared_from_this

当我这样做时出现异常:std::bad_weak_ptr->shared_from_this()templateclasspainter_record_t{.......private:std::shared_ptr_owner;}这里我想在构造函数中设置“问题”对象:templateclassstream_record_t:publicpainter_record_t{public:stream_record_t(std::shared_ptrowner):painter_record_t(owner){//...}}我有基类:classi_painter_t{public:virt

c++ - 为什么在抛出 'std::bad_alloc' 实例后调用终止?

每1秒,函数工作一次。我的系统是linux。奔跑突然死亡。-----global-------staticintarrayNum[33000];-------------------function(){unsignedshortint**US_INT;US_INT=newunsignedshortint*[255];for(inti=0;i程序停止。和留言↓在抛出“std::bad_alloc”的实例后终止调用what():std::bad_alloc 最佳答案 bad_alloc异常是由内存分配失败触发的(因此您的new之一)。

c++ - Gtest : Expected Class-Name Before '{'

我正在尝试将Gtest下的测试用例转换为使用测试夹具,以便在添加更多测试时可以使用通用设置。但是,这会导致错误:test_integrate.cc:4:47:error:expectedclass-namebefore'{'tokenclassIntegratorTest:public::testing::test{这种失败是我无法理解的,因为根据我的经验,它通常是由循环导入引起的,并且导入与工作代码相比没有变化。完整代码如下:#include"gtest/gtest.h"#include"utils/integrate.hpp"classIntegratorTest:public::

c++ - 抛出 "bad_alloc"的最常见原因是什么?

是否有更频繁的内存相关错误抛出bad_alloc?我知道这意味着内存分配失败,但在代码中导致这种情况的最常见错误是什么? 最佳答案 编辑:其他评论者指出了一些有趣的场景。为了完整起见,我将它们添加到我的回复中。情况一:内存不足我的理解是,只要运算符new和new[]无法为对象或变量分配内存,就会抛出bad_alloc。如果您新建了一堆对象并忘记在它们超出范围之前删除它们(即,您的代码疯狂地泄漏),就会发生这种情况。案例2:一举分配大量内存分配大块内存(如1000x1000x1000double矩阵的情况)可能会失败,因为它需要一个该

c++ - typedef-name 作为基类 : illegal but widely tolerated

[class.derived]的第一段说的是基类说明符,Ifthenamefoundisnotaclass-name,theprogramisill-formed.但是,一个simple测试表明Comeau和g++-ansi-pedantic都接受typedef-name作为基础。Boostheader上的简单grep-r'[^:]:mpl'表明流行的库通常依赖于这种行为。是否有任何编译器实际上拒绝了基说明符中类的typedef?GCC甚至检查基类类型是否不是const,这改进了非标准功能。有解决办法吗?我唯一能想到的就是用C++11别名模板替换typedef。一个模板化的别名声明声明