草庐IT

declare_namespace

全部标签

C++ 风格约定 : Parameter Names within Class Declaration

我是一个相当新的C++程序员,我想听听支持和反对在类声明中命名参数的争论。这是一个例子:Student.h#ifndefSTUDENT_H_#defineSTUDENT_H_#includeusingnamespacestd;classStudent{private:stringname;unsignedintage;floatheight,GPA;public:Student(string,unsignedint,float,float);voidsetAge(unsignedint);};#endif/*STUDENT_H_*/对比#ifndefSTUDENT_H_#defineS

c++ - 如果我在 header 中声明 namespace ,是否可以避免在 .cpp 文件中使用类名?

这个问题在这里已经有了答案:C++:"Classnamespaces"?[duplicate](4个答案)关闭9年前。在C++中,我只想在.h文件中声明一个DisplayInfo类,然后在.cpp文件中,不必键入第一个DisplayInfo::DisplayInfo()和每个函数定义。遗憾的是,我已经查看了20多个主题和我的C++书籍两个多小时,但仍无法解决这个问题。我认为这是因为我正在尝试在C++中使用我10年的Java培训。第一次试验://DisplayInfo.hnamespaceDisplayInfoNamespace{ClassDisplayInfo{public:Displ

c++ - 使用数组作为元组成员 : Valid C++11 tuple declaration?

下面的代码可以在G++4.7.2中正常编译:#includestd::tuplex;但是,使用clang++3.2会产生以下错误:错误:数组初始化器必须是一个初始化器列表。如果我从元组声明中删除float类型,错误就会消失。上面的元组声明是否有效?($CXX-std=c++11-c文件.cpp) 最佳答案 我认为标准中没有任何内容禁止您的声明。但是,一旦尝试初始化、复制、移动或分配元组,就会遇到问题,因为对于这些操作,元组的所有成员类型都必须能够用作初始化器、可复制构造、可复制分配和移动分配,分别(§20.4.2.1)。这些都不是数

c++ - 模板类中函数指针的成员给出错误 : must be a class or namespace when followed by '::'

我试图在C++中声明一个模板函数指针。templateclassMyClass{public:typedefconstunsignedchar*(T::*MyTemplatedEvent)(unsignedlong&myParameter);};但出于某种原因,我不断收到此错误:'T':mustbeaclassornamespacewhenfollowedby'::'有人能告诉我哪里做错了吗?编译器应该知道T是一个类。它在MyClass声明上方这样说...... 最佳答案 对于T::*MyTemplatedEvent,您期望T是类类

c++ - 如何填充 'Tree' 结构 'Declaratively'

我想定义一个“节点”类/结构,然后在代码中声明这些节点的树,使代码格式化的方式反射(reflect)树结构,并且没有“太多”样板的方式。请注意,这不是关于数据结构的问题,而是关于我可以使用哪些C++功能来获得与以下示例类似的声明式代码风格的问题。可能使用C++0X这会更容易,因为它在构建对象和集合方面具有更多功能,但我使用的是VisualStudio2008。示例树节点类型:structnode{stringname;node*children;node(constchar*name,node*children);node(constchar*name);};我想做什么:声明一棵树,使

c++ - 将 Q_DECLARE_METATYPE 与可能被多次加载的 DLL 一起使用

将Qt4.8与C++结合使用。我正在使用在运行时加载和卸载的应用程序插件。在应用程序的生命周期中,同一个插件可能会被加载多次。其中一个插件对需要存储在QVariant中的某些类型使用Q_DECLARE_METATYPE。稍后重新加载插件时,旧声明仍指向现在卸载的库的原始内存空间。当Qt尝试从重新声明的元类型创建QVariant时,这会导致访问冲突。我们已经处理了qRegisterMetaType()的类似问题:我们在加载库时注册元类型,并在卸载库之前注销这些类型。不幸的是,在声明而不是注册元类型时,这似乎不是一个选项。我们如何有效处理声明元类型的库被多次加载和卸载的情况?

c++ - 什么时候 namespace::function() 声明有用?

单个文件示例这是一个使用命名空间的简单程序。#includenamespacefoo{voidhello();}voidfoo::hello(){std::cout这个程序可以很好地编译并产生预期的输出。$./a.outhello我想知道什么时候voidfoo::hello();声明有用?在这个程序中,显然这个声明是多余的。但既然存在这种语法,这在其他一些场景中一定有用吗?双文件示例这是一个示例,表明voidfoo::hello();单独声明是无用的。//foo.cpp#includenamespacefoo{voidhello();}voidfoo::hello(){std::cou

c++ - 使用 C+11 和 Newlib 时出现错误 "sigemptyset was not declared in this scope"

在Newlib下的Cygwin上使用sigemptyset时,我们会捕获编译器错误。该错误发生在C++编译器中,但仅在使用-std=XXX时才会发生。如果没有标准选项,测试程序将按预期编译和执行。下面是测试程序,后面是感兴趣的Cygwin头文件。我在Cygwinheader中没有看到任何可疑的内容。我尝试过像#define_GNU_SOURCE和#define_XOPEN_SOURCE700这样的技巧。我还尝试过使用全局和std命名空间等技巧。相关见Whatdoes-D_XOPEN_SOURCEdo/mean?和Namespaceissuesinc++11?.编译失败的原因是什么,我该

c++ - 未定义的 namespace 引用 - gsoap 错误

我在ubuntu工作,c++代码。使用gsoap和wsdl2h-oheader.hhttp://link1http://link2我已经成功地创建了.h,.cpp和.xml文件。当我#includeproxy1.h和#includeproxy2.h和他们的nmsp文件我收到以下错误:redefinitionof"Namespacenamespaces[]',previouslydefineshere.如何解决这个错误?当我使用:stdsoap2-i-C-Iimportheader.h我不能为每个url指定不同的命名空间吗?我想提一下stdsoap.cpp在我编译代码时使用。在stdso

c++ - 依赖于参数的查找在从另一个 namespace 别名的类型上出现意外行为

我刚刚遇到了一些与参数相关的查找的有趣行为,我并不完全理解:#includenamespacea{structFoo{Foo(intv1,intv2):v1(v1),v2(v2){}intv1,v2;};}namespaceb{templatestructBaz:T{usingT::T;};}namespacec{usingFoo=::b::Baz;//(1)NOTFOUNDBYADL//std::ostream&operator我明白了c::Foo实际上是b::Baz,所以当我在namespaceb中定义它时,ADL找到运算符有点有意义.但这似乎违背了在namespacec中定义运算