草庐IT

namespace-scoped

全部标签

c++ - 我应该将 "using namespace"放在 C++ 中的命名空间内部还是外部

我的导师在代码审查中这样修改了我的代码:usingnamespaceA;//definedinotherfilesnamespaceB{//dosomething}而不是像这样:namespaceB{usingnamespaceA;//dosomething}将using命名空间放在命名空间之外是否有任何技术原因? 最佳答案 在头文件中,您不应该在全局范围内使用usingnamespaceN;指令。它将在所有客户端代码上强制使用来自N的大量标识符。但是将它放在命名空间X中也可以。请记住,执行usingnamespaceX;的客户端代

c++ - 匿名 namespace 内部/外部的 Typedef?

在.cpp文件中,这两种方式有什么区别/偏好吗?//filescopeoutsideanynamespaceusingX::SomeClass;typedefSomeClass::BufferMyBuf;速度/速度namespace{//anonymoususingX::SomeClass;typedefSomeClass::BufferMyBuf;} 最佳答案 我会说第二种用法相当不常见,至少在我目前看到的代码中是这样(而且我已经看到相当多的C++代码)。您能解释一下第二种技术背后的原因吗?您通常会在C++实现文件中使用匿名命名空

c++ - 非本地 C++11 lambda 是否存在于匿名 namespace 中?

GCC4.8的最新版本在头文件中提供了以下代码:autoL=[](){};structS{decltype(L)m;};以下警告:test.hpp:3:8:warning:'S'hasafield'S::m'whosetypeusestheanonymousnamespace[enabledbydefault]structS^为什么编译器会考虑使用匿名命名空间的lambda类型?我将lambda设为全局,我没有在任何地方使用匿名命名空间。更新:即使我将lambda放在显式命名空间中,编译也会给出相同的警告,如下所示:namespaceN{autoL=[](){};}structS{de

c++ - 这个私有(private)变量 "not declared in this scope"怎么样?

我目前正在尝试学习更多有关C++面向对象设计的知识(熟悉Java),但遇到了一些困难。我试图将这个项目放在一起,以在使用SFML构建图形和音频的游戏中学习这些原则。我有以下两个文件。WorldObject.h#ifndefWORLDOBJECT_H#defineWORLDOBJECT_H#include#include#include"ImageManager.h"classWorldObject{private:sf::Sprite_sprite;voidSetImagePath(std::stringpath);sf::SpriteGetGraphic();};#endif世界对象

scope / 作用域(C变量的作用域)

scope/作用域(C变量的作用域)参考:CPrimerPlus第6版第12章存储类别、链接和内存管理目录scope/作用域(C变量的作用域)1.定义2.分类2.1.blockscope/块作用域2.1.1.定义2.1.2.函数的形式参数2.1.3.没有花括号的块2.2.functionscope/函数作用域2.3.functionprototypescope/函数原型作用域2.4.filescope/文件作用域3.总结1.定义描述程序中可以访问identifier(标识符)的区域2.分类scope可以分为四类:2.1.blockscope/块作用域2.1.1.定义block/块是用一块花括号

c++ - 在 scoped_ptr 出现异常时不调用析构函数

我刚刚开始使用C++boost库。我在很多地方读到,当使用scoped_ptr时,即使出现异常,对象也总是被销毁。Theybehavemuchlikebuilt-inC++pointersexceptthattheyautomaticallydeletetheobjectpointedtoattheappropriatetime.Smartpointersareparticularlyusefulinthefaceofexceptionsastheyensureproperdestructionofdynamicallyallocatedobjects.我尝试了以下代码。#includ

C++ 编译器错误 "was not declared in this scope"

我在尝试编译C++UDP客户端程序时遇到奇怪的编译器错误。g++-oclientUdp.cppClientMain.c-I.-lpthreadInfileincludedfromClientMain.c:1:0:Udp.h:Indestructor‘CUdpMsg::~CUdpMsg()’:Udp.h:103:43:error:‘free’wasnotdeclaredinthisscopeUdp.h:Inmemberfunction‘voidCUdpMsg::Add(in_addr_t,constvoid*,size_t)’:Udp.h:109:34:error:‘malloc’was

c++ - 我应该在实现文件中使用未命名的 namespace 吗?

我在一个外部*.cpp文件中定义了一些函数(这里不涉及类),当然还有一个合适的*.h文件。*.cpp文件中的某些函数仅在该*.cpp文件中无处使用。*.h文件中甚至没有提及它们。我应该将这些函数放入一个未命名的命名空间中,还是它们可以紧挨着其他函数存在?如果是这样,为什么我需要为它们使用一个未命名的命名空间?我看不出有什么问题,因为无论如何都无法从外部访问这些功能。 最佳答案 如果您希望它们对那个编译单元真正私有(private),请将它们放在一个匿名命名空间中。如果您不这样做,那么其他人可以在别处声明这些函数并显式使用它们。举个例

c++ - 为什么 ADL 优先于 'std namespace' 中的函数,但等于用户定义的命名空间中的函数?

我有两个ADL片段用于演示目的。这两个片段都已由VC10、gcc和comeauC++编译器编译,结果对于所有三个都是相同的。针对用户定义命名空间的using指令的ADL:#includenamespaceN{structT{};voidswap(T,T){}}namespaceM{voidswap(N::T,N::T){}}intmain(){usingM::swap;N::To1,o2;swap(o1,o2);}编译结果:errorC2668:'M::swap':ambiguouscalltooverloadedfunctioncouldbe'voidM::swap(N::T,N::

vue中的 slot-scope,row-click,rules校验数据,forceUpdate更刷新页面,$nextTick,setattribute

1.vue中slot-scopeslot-scope="scope"相当于把表单的这一行赋值给scope,然后在后面写的过程中直接用scope调用表单里的内容,常用于对表单的操作。修改2.vue中row-click当表格某一行被点击时会触发该事件,参数:row,column,eventrow-click通常用于处理表格或列表中行的点击事件。当用户点击表格或列表中的某一行时,row-click事件会被触发,开发者可以在事件处理函数中编写相应的逻辑来处理这个点击事件。0":total="total":page.sync="queryParams.pageNum":limit.sync="query