草庐IT

androidx冲突

全部标签

c++ - 枚举值与枚举名称冲突

让我们采用我最近在项目中某处找到的代码构造:namespaceTest{enumEName{CoolEnum,NiceEnum};enumCoolEnum{CoolVal1,CoolVal2};enumNiceEnum{NiceVal1,NiceVal2};}我的问题是为什么编译器允许这样的事情。让我们在这里看一个代码示例:Test::CoolEnumcEnum=Test::NiceVal1;//INVALID,ascompilerreferstoTest::CoolEnumvalueofTest::Enameenum为什么允许这样的混淆?我明白为什么我必须在enum关键字前面加上,所

c++ - 使用 alloca 时发生访问冲突

我的stackAlloc函数如下所示:void*stackAlloc(size_tsize){if(size>maxStackAllocation)returnmalloc(size);elsereturn_alloca(size);}voidstackAllocFree(void*ptr,size_tsize){if(size>maxStackAllocation){free(ptr);}}如果我改变stackAlloc函数总是使用malloc而不是alloca一切正常。我将函数更改为宏,现在它按预期工作:#definemaxStackAllocation1024#definesta

c++ - 使用预处理器指令来定义美元符号代表什么会导致任何冲突吗?

我可以在C++中使用以下代码吗?:#define$coutintmain(){$我想知道它是否会引起任何冲突。 最佳答案 它不是绝对合法的,但您的实现允许接受它。考虑:[C++11:2.5/1]:Eachpreprocessingtokenthatisconvertedtoatoken(2.7)shallhavethelexicalformofakeyword,anidentifier,aliteral,anoperator,orapunctuator.在这里,你的$显然不是关键字、运算符或标点符号(因为这些在标准中被枚举),而且它

c++ - 推断出参数 'T' 的冲突类型以供通用引用

我正在使用以下代码测试通用引用,templatevectorattach_(vectorxs,T&&x){xs.push_back(std::forward(x));returnxs;}intmain(){intk=2;attach_(std::move(vector{1,2,3}),k);//notOKattach_(std::move(vector{1,2,3}),(int&)k);//notOKattach_(std::move(vector{1,2,3}),(int)k);//OKattach_(std::move(vector{1,2,3}),2);//OK}出现错误:nom

c++ 命名空间与 gtest 和 boost 的冲突

如果我同时包含gtest/gtest.h和boost/math/distributions/poisson.hpp我会得到/opt/local/include/boost/tr1/tuple.hpp:63:error:‘tuple’isalreadydeclaredinthisscope/opt/local/include/boost/tr1/tuple.hpp:67:error:‘make_tuple’isalreadydeclaredinthisscope/opt/local/include/boost/tr1/tuple.hpp:68:error:‘tie’isalreadyde

C++:访问冲突写入位置

使用:MSVS2012代码elemalg.h#include#include#includeclassElemAlg{private:std::stringdifficultlyLevel,question,answerToRead;std::vectorquestions,answers;std::vectorGetQuiz(int);};elemalg.cpp#include"elemalg.h"std::vectorElemAlg::GetQuiz(intdifficulty){if(difficulty==1){difficultyLevel="algE";}if(diffic

c++ - windows.h 和限制的冲突?

很难说出这里要问什么。这个问题模棱两可、含糊不清、不完整、过于宽泛或夸夸其谈,无法以目前的形式得到合理的回答。如需帮助澄清此问题以便重新打开,visitthehelpcenter.关闭9年前。以下代码在VS2010中不起作用。这是什么原因?#include#include//ifIremovethisline,itisokay.intmain(){std::numeric_limits::min();return0;}我创建了一个VC空控制台项目,并添加了一个main.cpp,如上所示。是这个原因吗?我可能需要创建另一种项目吗?谢谢。谢谢大家的帮助。问题来self正在使用vld.h和l

c++ - 别人的库#define命名冲突

很难为这个问题想出一个合适的标题。无论如何...我目前正在研究GUI我的游戏在SDL.当出现奇怪的错误时,我已经完成了软件绘图并正准备开始其中的OpenGL部分。我包含了“SDL/SDL_opengl.h”header并进行了编译。它抛出“错误C2039:‘DrawTextW’:不是‘GameLib::FontHandler’的成员”,这是一个足够简单的错误,但我没有任何称为DrawTextW的东西,只有FontHandler::DrawText。我搜索DrawTextW并在header“WinUser.h”中的#define调用中找到它!//WinUser.h#defineDrawT

c++ - 命名空间和定义之间的冲突

我有这个严重的问题。我在2个namespace中有一个枚举,如下所示:namespaceFANLib{namespaceERROR{enumTYPE{///FSLerrorcodesFSL_PARSER_FILE_IERROR,...在我的代码中的其他地方,我这样使用它:FANLib::Log::internalLog(FSLParser::FILE_IERROR,file_ierror,true,FANLib::ERROR::FSL_PARSER_FILE_IERROR);所有编译都很好,但是如果我碰巧包含“windows.h”,我就会出错!问题出在具有这一行的“WinGDI.h”中

c++ - 冲突声明

我在我的代码中定义了一个typedeftypdefunsignedintsize_t;它与stddef冲突typedef__SIZE_TYPE__size_t;我不确定如何解决这个问题,但仍想在我的代码中保留size_t。 最佳答案 两个三个选项:1)选择一个不同的名字,我想你已经知道了。2)使用命名空间:namespaceX{typedeflongsize_t;}类型为X::size_tx;3)丑陋,保证让你被解雇,我投了反对票:typedefunsignedintmy_size_t;#definesize_tmy_size_t