草庐IT

INVALID_SCOPE

全部标签

c++ - 线程错误 : invalid use of non-static member function

这个问题在这里已经有了答案:Passingmemberfunctionstostd::thread[duplicate](2个答案)关闭5年前。我想了解C++中的线程,但我不知道如何解决这个问题。我想调用两个线程来运行名为“createS”的函数,但出现此错误:error:invaliduseofnon-staticmemberfunction我读过关于这个主题的其他问题,但我真的不明白如何让我的代码工作。有人可以向我解释我做错了什么并尝试帮助我找到解决方案吗?test_class.cppvoidtest_class::generateS(){map1=newmultimap>;map

c++ - 在 C++ 中重载比较运算符导致 "invalid operator<"

目前正在尝试在C++中对对象vector进行排序,每个对象包含一个字符串字符串可以包含字母或数字(由于设计限制,这是必要的,因为比较器可以更改)。此时重载对象的类,这样当比较两个对象时,比较的是它们包含的字符串。这在一定程度上起作用——但是,当我使用排序操作(例如STL排序)对对象进行排序时,它将按顺序对三个字符串(例如“1”、“4”、“12”)进行排序“1”、“12”、“4”。4大于12,但因为它从最左边的数字开始比较,所以会出现这种“不正确”的排序。我最初的react是改变我重载比较操作的方式。我会首先检查我正在比较的字符串的长度——如果字符串的内容更大或更小,这将是一个明显的迹象

c++ - 如何在 valgrind 中跟踪/捕获 "Warning: invalid file descriptor -1 in syscall close"

valgrind显示以下内容:==13880==Warning:invalidfiledescriptor-1insyscallclose()是否有一种简单的方法来调查此错误?我的意思是-例如显示堆栈跟踪?这是一个巨大的项目,我无法手动检查每个关闭。另外,我想这对于每个系统调用错误的文件描述符都是一样的。我运行它是这样的:valgrind--trace-children=yes--track-fds=yes--log-fd=2--error-limit=no\--leak-check=full--show-possibly-lost=yes--track-origins=yes\--s

C++:引用 "out of scope"对象

关于引用文献,有一件事我一直不明白,我希望有人能帮助我。据我所知,引用不能为空。但是如果你有一个函数foo()返回对堆栈对象的引用会发生什么:Object&foo(){Objecto;returno;}Object&ref=foo();理论上ref将引用一个不存在的对象,因为一旦函数返回,o就会超出范围。这里发生了什么? 最佳答案 这会导致未定义的行为。不要这样做。在实现方面,实际上,引用将指向调用foo的堆栈框架所在的堆栈。在许多情况下,该内存仍然有意义,因此错误通常不会立即显现出来。因此,您应该注意永远不要创建这样的悬空引用。

C++ 错误 : Invalid use of incomplete type . ..

本学期我正在为我的软件工程类(class)做一个中小型项目。我选择用C++(gtkmm)来完成。到目前为止,我一切正常,但我遇到了循环引用问题或以下错误:Login_Dialog.cpp:25:error:invaliduseofincompletetype‘structMainWindow’Login_Dialog.h:12:error:forwarddeclarationof‘structMainWindow’make:***[Login_Dialog.o]Error1简而言之,我有大约10个类(class),我知道将来他们都需要互相交谈。到目前为止,我遇到了一个具体案例,我一直在

github报错Key is invalid. You must supply a key in OpenSSH public key format

原因:由于github官方提示普通类型的ssh不安全,所以改成OpenSSH解决办法第一步:打开终端。粘贴下面的文本,替换为您的GitHub电子邮件地址。连续按回车键ssh-keygen-ted25519-C"your_email@example.com"第二步:将SSH密钥添加到ssh-agent在后台启动ssh-agent。eval"$(ssh-agent-s)"在你的~/.ssh/目录创建config文件touchconfig在config中添加内容1#---localhostGenerated---#设置你自己的github账户名称HostzhrgithubHostNamegithub

C++ block scope extern declaration linkage,混淆C++标准解释

标准N3242(C++11草案)和N3797(C++14draft)两者有相同的段落。§3.5Programandlinkage[basic.link]¶6Thenameofafunctiondeclaredinblockscopeandthenameofavariabledeclaredbyablockscopeexterndeclarationhavelinkage.Ifthereisavisibledeclarationofanentitywithlinkagehavingthesamenameandtype,ignoringentitiesdeclaredoutsidethei

c++ - 错误 : uint64_t was not declared in this scope when compiling C++ program

我正在尝试一个简单的程序来打印steady_clock的时间戳值,如下所示:#include#includeusingnamespacestd;intmain(){cout(steady_clock::now().time_since_epoch()).count();cout但是每当我像这样编译时g++-oabcabc.cpp,我总是会遇到错误:Infileincludedfrom/usr/include/c++/4.6/chrono:35:0,fromabc.cpp:2:/usr/include/c++/4.6/bits/c++0x_warning.h:32:2:error:#er

c++ - 非本地 lambda 和捕获变量 - "block scope"是什么意思

我目前正在玩c++11lambda,发现了一个我无法理解的例子。根据标准:Alambda-expressionwhosesmallestenclosingscopeisablockscope(3.3.3)isalocallambdaexpression;anyotherlambda-expressionshallnothaveacapture-listinitslambda-introducer所以,我创建了一个简单的例子:inta=10;autox=[a]{return1;};intmain(){intk=5;autop=[k]{returnk;};return0;}ideone中的

c++ - "Invalid template argument"错误在 Visual Studio 但不是 GCC

假设你有代码templateclassBaseType>classEST16:publicBaseType{public:EST16(doubled){}};templateclassSCEST{Ty;};typedefEST16EST16_SC;classChild:publicEST16_SC{public:Child():EST16_SC(1.0){}};classNotWorkingChild:publicEST16{public:NotWorkingChild():EST16(1.0){}};TEST(TemplateTest,TestInstantiate){Childch