草庐IT

scoped_variable

全部标签

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

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

C++ - 错误 : 'list' does not name a type (list object as member variable in class)

关闭。这个问题是notreproducibleorwascausedbytypos.它目前不接受答案。这个问题是由于错别字或无法再重现的问题引起的。虽然类似的问题可能是on-topic在这里,这个问题的解决方式不太可能帮助future的读者。关闭8年前。Improvethisquestion我经常遇到“'xxx'doesnotnameatype”错误,我之前读过的大多数帖子都提到这个错误是由于一些依赖性问题而发生的。但是,我似乎找不到我的。这是我得到的:GameLib.h#ifndefGAMELIB_H_#defineGAMELIB_H_//Structuresstructplayer

c++ - "Nested"scoped_lock

我缩短的简化类如下所示:classA{public://...methodA();methodB();protected:mutableboost::mutexm_mutex;sometype*m_myVar;}A::methodA(intsomeParam){boost::mutex::scoped_lockmyLock(m_mutex);m_myVar->doSomethingElse();}A::methodB(intsomeParam){boost::mutex::scoped_lockmyLock(m_mutex);m_myVar->doSomething();this->m

c++ - eclipse /海湾合作委员会 : Undefined Reference to Extern Variable

抱歉,如果这是一个重复的问题,但我已经搜索了几个小时,我得到的答案相互矛盾……更糟糕的是,它们都不起作用。这很简单。我有很多源文件,我有一些常用参数,我想放在一个文件中,比如“Parameters.h”。我想在运行时设置这些参数(一次),方法是将它们作为参数传递给程序。PS:我知道更好的方法是将所有内容作为参数传递给函数,但这是一段代码,我需要在不进行太多更改的情况下尽快获得结果。这是一个最小的工作示例:参数.h#ifndefPARAMETERS_H_#definePARAMETERS_H_externintAlpha;#endifmain.cpp#include#include"Pa

c++ - Goto before variable initialization 导致编译错误

考虑这段代码(VS2008):voidWordManager::formatWords(std::stringconst&document){document_=document;unsignedintcurrentLineNo=1;size_toldEndOfLine=0;size_tendOfLine=document_.find('\n');while(endOfLine!=std::string::npos){std::stringline=document_.substr(oldEndOfLine,(endOfLine-oldEndOfLine));if(line.size(

c++ - 如何使用 std::scoped_allocator_adapter?

据我了解,std::scoped_allocator_adapter提供一种控制机制,用于指定单独哪个分配器将由容器、其元素、其元素的元素等使用,假设元素本身是容器。也就是说,我无法理解std::scoped_allocator_adapter的语义.BjarneStroustrup在TheC++ProgrammingLanguage,section34.4.4,pg中提供了以下4个示例。1001(在接下来的问题中,我将它们称为Example-1、Example-2等。):Wehavefouralternativesforallocationofvectorsofstrings://v

c++ - 类型特征 : Check if reference member variable is static or not

我想检查一个类的成员变量是否是静态的。使用std::is_member_pointer适用于除引用成员之外的所有类型。#includestructA{intfoo;};structB:A{};structC{staticintfoo;};structD:C{};structE{int&foo;};structF{staticint&foo;};static_assert(std::is_member_pointer::value,"No");static_assert(std::is_member_pointer::value,"No");static_assert(!std::is_

c++ - 氧气/C++ : how to link to anonymous namespace variables

我正在使用Doxygen来记录我的代码。许多代码在定义常量的cpp文件中都有匿名namespace。我已经设置:EXTRACT_ANON_NSPACES=YES在我的Doxygen文件中,所有匿名命名空间都按需要进行了记录。我的问题是我想引用匿名命名空间中的变量。例如,假设其中一个命名空间在我的Doxygen文档中定义在MyClass::anonymous_namespace{MyFile.cpp}::kMyConstant下。我认为另一个注释block(例如,一个函数)可以链接到该常量,例如:@seeMyClass::anonymous_namespace{MyFile.cpp}::

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

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

c++ - 是否可以实现 C++11 互斥锁概念以供 std::condition_variable 使用?

我发现std::mutexVisualStudio2013中的实现速度太慢。它使用一个重量级的互斥锁来确保即使在所有进程之间也可以实现同步,这一切都很好而且花花公子;除非你不与其他进程交谈并且真的可以使用CRITICAL_SECTION的额外速度在Win32上提供自旋锁。我试图实现fast_recursive_mutex遵循C++11互斥概念并根据规范履行所有义务。从任何意义上说,它都是std::mutex的直接替代品只要您不在进程之间进行同步。它与std::lock_guard配合得很好和std::unique_lock.但是我在尝试将它与std::condition_variabl