草庐IT

nameSpace

全部标签

c++ - 跨不同命名空间的友元类。那可能吗

我在尝试使用C++的friend功能时遇到问题。我有这些接口(interface):#pragmaonce#include"Mesh3D.h"#includenamespacetools{namespacesysInput{classCGeometryManager3D{public:boolloadFromFile(render::CMesh3D&mesh,std::stringfilename);CGeometryManager3D(void);~CGeometryManager3D(void);};};};和#pragmaonce#include"GeometryManager.

c++ - 跨不同命名空间的友元类。那可能吗

我在尝试使用C++的friend功能时遇到问题。我有这些接口(interface):#pragmaonce#include"Mesh3D.h"#includenamespacetools{namespacesysInput{classCGeometryManager3D{public:boolloadFromFile(render::CMesh3D&mesh,std::stringfilename);CGeometryManager3D(void);~CGeometryManager3D(void);};};};和#pragmaonce#include"GeometryManager.

c++ - 一个类可以共享一个命名空间的名称吗?

以下C++代码有效吗?namespaceFoo{classBar{//Classcodehere.};}namespaceFoo{namespaceBar{voidSomeFunction();{//Functioncodehere.}}}也就是说,可以有一个与类同名的命名空间吗? 最佳答案 你不能有你的问题的安排,因为没有办法消除Bar的歧义。我的编译器说:errorC2757:'Bar':asymbolwiththisnamealreadyexistsandthereforethisnamecannotbeusedasaname

c++ - 一个类可以共享一个命名空间的名称吗?

以下C++代码有效吗?namespaceFoo{classBar{//Classcodehere.};}namespaceFoo{namespaceBar{voidSomeFunction();{//Functioncodehere.}}}也就是说,可以有一个与类同名的命名空间吗? 最佳答案 你不能有你的问题的安排,因为没有办法消除Bar的歧义。我的编译器说:errorC2757:'Bar':asymbolwiththisnamealreadyexistsandthereforethisnamecannotbeusedasaname

c++ - std::literals::.. 作为内联命名空间有什么好处?

在C++标准(例如N4594)中,operator""s有两个定义:一为std::chrono::seconds:namespacestd{...inlinenamespaceliterals{inlinenamespacechrono_literals{//20.15.5.8,suffixesfordurationliteralsconstexprchrono::secondsoperator""s(unsignedlonglong);一个用于std::string:namespacestd{....inlinenamespaceliterals{inlinenamespacestr

c++ - std::literals::.. 作为内联命名空间有什么好处?

在C++标准(例如N4594)中,operator""s有两个定义:一为std::chrono::seconds:namespacestd{...inlinenamespaceliterals{inlinenamespacechrono_literals{//20.15.5.8,suffixesfordurationliteralsconstexprchrono::secondsoperator""s(unsignedlonglong);一个用于std::string:namespacestd{....inlinenamespaceliterals{inlinenamespacestr

c++ - 是否可以给枚举类枚举器起别名?

给定一个C++11枚举类,嵌套在几个长而丑陋的命名空间中:namespacelong_and_ugly{enumclasscolour{red,green,blue};}可以为枚举值制作别名吗?使用clang++3.5,可以执行以下操作:usinglong_and_ugly::colour;//takeallthevaluesintothecurrentnamespaceusinglong_and_ugly::colour::red;//takeonly'red'intothecurrentnamespacefunction_taking_colour_argument(red);//

c++ - 是否可以给枚举类枚举器起别名?

给定一个C++11枚举类,嵌套在几个长而丑陋的命名空间中:namespacelong_and_ugly{enumclasscolour{red,green,blue};}可以为枚举值制作别名吗?使用clang++3.5,可以执行以下操作:usinglong_and_ugly::colour;//takeallthevaluesintothecurrentnamespaceusinglong_and_ugly::colour::red;//takeonly'red'intothecurrentnamespacefunction_taking_colour_argument(red);//

c++ - 为什么这个对 swap() 的调用模棱两可?

下面的程序#include#include#includenamespacemy_namespace{templatevoidswap(T&a,T&b){Ttmp=std::move(a);a=std::move(b);b=std::move(tmp);}template>classfoo{};}intmain(){my_namespace::foo*a,*b;usingmy_namespace::swap;swap(a,b);return0;}导致g++和clang在我的系统上发出以下编译器错误:$clang-std=c++11swap_repro.cpp-I.swap_repro.

c++ - 为什么这个对 swap() 的调用模棱两可?

下面的程序#include#include#includenamespacemy_namespace{templatevoidswap(T&a,T&b){Ttmp=std::move(a);a=std::move(b);b=std::move(tmp);}template>classfoo{};}intmain(){my_namespace::foo*a,*b;usingmy_namespace::swap;swap(a,b);return0;}导致g++和clang在我的系统上发出以下编译器错误:$clang-std=c++11swap_repro.cpp-I.swap_repro.