草庐IT

my_enum_e

全部标签

c++ - Boost Enum 256 元素限制

我正在使用BoostVault中的枚举v4.6库(提到here[stackoverflow.com]),但遇到了256的元素限制(即每个枚举的最大元素数=256)。我知道这与boost预处理器库有关,一些调查使我找到了boost/preprocessor/config/limits.hpp,但更改这些值没有任何效果,因为它们纯粹是“信息”(link[groups.google.com])有什么办法可以增加这个限制吗? 最佳答案 遗憾的是,无法增加可与Boost预处理器库一起使用的元素/参数的上限。因此,由于枚举库依赖于Boost.P

c++ - Typedef C++ 中的位域/掩码

我在C++中遇到这个问题:我可以typedef一个值来自枚举的位域吗?代码将更具解释性:typedef{AUDIO=0x01,VIDEO=0x02,SUBTITLE=0x04,DATA=0x08,GUARD,ALL=0xFF}my_enum_e;//I'dliketoreplace'unsignedint'by'my_enum_e'orsimilarintmyFunction(unsignedintmask){//code}//calledlikethis:myFunction(AUDIO|VIDEO|DATA);在函数的原型(prototype)中,我想使用my_enum_e作为输入

c++ - 为什么我收到错误 : initializing argument 1 of 'Item::Item(int)' [-fpermissive] in Eclipse when I try to compile my C++ code?

我是C++的新手,在盯着它看了太久之后终于放弃了尝试编译它。编译器似乎出于某种原因拒绝了头文件中的构造函数原型(prototype)......我无法弄清楚它有什么问题。项目.h:#ifndefITEM_H_#defineITEM_H_classItem{public:Item(int);//ThislineiswhatEclipsekeepsflaggingupwiththeerrorinthetitlevirtual~Item();Item*getNextPtr();intgetValue();voidsetNextPtr(Item*);};#endif/*ITEM_H_*/在我的

c++ - 前向声明 : incomplete type 'enums::Category' used in nested name specifier 有问题

我想要一个围绕枚举的包装器,这将使我有机会将其转换为字符串,反之亦然。基类如下:templateclassStringConvertedEnum{public:staticstd::stringtoString(TEnume);staticTEnumtoEnum(std::string&str);protected:staticconststd::map_stringMapping;staticconststd::map_enumMapping;};然后我想要这样的东西:classCategory:publicStringConvertedEnum{public:enumEnum{Ca

c++ - "How to impress interviewers with my coding? What practices can I adopt in the code I' 已经为给面试官留下深刻印象的问题而写了吗?

假设有一个整数vector。现在我们想要合并,我们选择2个相邻元素v[I]和v[I+1](对于每个有效的I)并执行v[I]=v[I+1]+v[I]。并删除v[I+1]。继续这样做,直到vector中只剩下一个元素。(注意I=0&I=v.size()-1也被认为是相邻的)。所以我们需要尝试所有这些可能的组合(即我们首先采用哪一对并合并问题,如果需要进一步说明,请在评论中告诉我)每次我们合并时,我们都会做成本+=v[I]+v[I+1]。目标是最小化成本。举个例子说vector是123。合并[123]->[3,3]&cost=3->[6]&cost=9另一种方式[123]->[1,5]&co

c++ - 在 C : Will alignment break my neck? 中伪造继承

我有一个C结构,用于各种C和C++代码(通过extern"C")。#ifdef__cplusplusextern"C"{#endiftypedefstructAA;structA{/*somemembers*/};#ifdef__cplusplus}#endif分配、初始化和释放是由我控制的独立成员函数完成的,但我不控制对成员的访问,因为它们可以在任何地方访问。问题是,我无法更改整个系统中大量使用的header中struct的定义,但我仍然想扩展类型并添加一些成员。由于这必须编译为C++和C,我不能简单地创建派生类型structB:publicA。所以我的想法是将这种类型添加到cpp文

c++ - 在 switch 语句中从 int 到 enum 类的隐式转换

enumclasspid{Alpha,Beta,Gamma};intmain(){intpropId=2;switch(propId){casepid::Alpha:casepid::Beta:casepid::Gamma:break;}}以上片段在msvc2012中编译良好(并且有效)但在clang-3.4和g++-4.8中失败。这些需要static_cast(propId)在switch子句中使用。顺便说一下,没有显式转换的简单赋值,例如pida=propId;在每个编译器中给出错误。谁做对了? 最佳答案 标准第4条,“标准转换

c++ - `enable_if` 与 `enum` 模板特化问题

我在GCC编译时遇到问题enable_ifs应用于模板类方法的返回值。使用Clang,我可以在enable_if中使用表达式在enum上模板参数,而GCC拒绝编译此代码。这里是问题描述、初始代码及其后续修改,试图让我和编译器满意(不幸的是,不是同时)。我有一个非模板类Logic包含模板化类方法computeThings()它有一个enumStrategy作为其模板参数的之一。computeThings()中的逻辑取决于编译时间Strategy,所以ifconstexpr是一种合理的实现方式。变体1#includeclassLogic{public:enumStrategy{strat_

c++ - doxygen:如何记录\enum 值外线?

准确地说:我知道如何在声明时对枚举进行dox,我想改为不在线地对它们进行dox。我想让头文件没有doxygen注释;它们都在.cpp文件中。这对函数、类、typedef等来说不是问题。我还可以像这样记录enum本身:/*!\enumMyClass::MyEnumFooBarBaz\valueFirstEnumValue但是我如何记录enum的值呢?谢谢! 最佳答案 您需要根据docs使用\var 关于c++-doxygen:如何记录\enum值外线?,我们在StackOverflow上找

C++ NetBeans : How to link my . o 文件到我的项目?

我买了一个类。我有header(.h)和目标文件(.o)。如何在我的NetBeansIDE中链接.o文件?谢谢! 最佳答案 您需要将您的.o文件添加为外部库。我能够使用以下步骤完成此操作:转到项目属性在Build->Linker选项下,将库添加到Libraries部分点击“添加库文件”导航到您的.o文件并选择绝对路径选项重建希望这对你也有用。 关于C++NetBeans:Howtolinkmy.o文件到我的项目?,我们在StackOverflow上找到一个类似的问题: