草庐IT

define-ing

全部标签

Android 支持库构建 v26.X.X 构建错误 : Attribute "font" already defined

我正在尝试将支持库的版本25.3.1升级到版本26.X.X,但每次我使用较新版本构建项目时,我得到这个错误:Error:(357)Attribute"font"alreadydefinedwithincompatibleformat.Error:(343)Originalattributedefinedhere.Error:java.util.concurrent.ExecutionException:com.android.ide.common.process.ProcessException:Errorwhileexecutingprocess/Users/johnsmith/Li

c++ - C++ 中#define 指令的用途是什么?

#define指令的作用是什么? 最佳答案 #define用于在C和C++中创建宏。您可以在Cpreprocessordocumentation中阅读更多相关信息.简单的回答是它做了一些事情:简单的宏-基本上只是文本替换。编译时间常量就是一个很好的例子:#defineSOME_CONSTANT12只需将出现在代码中的文本SOME_CONSTANT替换为12。这种宏通常用于提供代码块的条件编译。例如,项目中的每个源文件都可能包含一个header,其中包含项目的选项列表:#defineOPTION_1#defineOPTION_2#un

c++ - typedef'ing 函数 *signature* (不是指向的指针),以便它可以被重用?

编辑:动机假设我将一个处理程序类定义为classHandler{public:classMessage{/*...*/};typedefint(*Callback)(Message*msg);voidregisterCallback(intmsgclass,Callbackf);};客户端可以做intf1(Handler::Message*msg){/*handlemessage*/}intf2(Handler::Message*msg){/*handlemessage*/}intmain(){Handlerh;h.registerCallback(1,f1);h.registerCa

c++ - 为什么我会收到这些 'already defined' 链接器错误?

我是C++的初学者,但我有一些使用Java的经验。我收到一些我不明白的错误。我附上了错误控制台的图片及其下方的代码。Error1errorLNK2005:"public:__thiscallVectorDouble::VectorDouble(void)"(??0VectorDouble@@QAE@XZ)alreadydefinedinMain.objC:\Users\carrea\Code\VisualStudio\COMP201\Lab8_VectorDoubleClass\VectorDouble.objLab8_VectorDoubleClassError2errorLNK20

c++ - 如何在编译时检查像 "#define VERSION 3.1.4"这样的值?

我正在为我公司的C++项目添加编译时检查,以确保所有开发机器和构建服务器上的第三方库都是最新的。大多数图书馆定义如下内容,例如版本3.1.4:#defineVERSION_MAJOR3#defineVERSION_MINOR1#defineVERSION_BUILD4使用static_assert或预处理器指令,这很容易检查。现在我正在寻找一个定义单个宏的第三方库:#defineVERSION3.1.4如何在编译时验证此类宏的值?使用C++11,我可以使用constexpr字符串比较函数,并将宏字符串化以检查它:constexprboolstatic_equal(constchar*a

c++ - 在没有默认构造函数的类类型的 #define 中初始化大小的非静态成员数组

我有以下类(class)://insome.hfile#defineBARS_IN_FOO5//Theonlyplacewherethisnumbershouldbespecified.//AllcodeshouldworkwhenIchangethis//insome.cppfilestructFoo;structBar{Foo&foo;Bar(Foo&foo):foo{foo}{}}//CannotbedefaultinitializedstructFoo{std::arraymyBars;Foo():myBars{}//Error.CannotdefaultinitializeB

c++ - 是否可以使用#define 更改#include 文件名?

我正在使用一些旧的C++代码,这些代码显然早于标准化并从iostream.h移动。至iostream,对于其他包含也类似。因此,我相对现代的g++版本在尝试#include时失败了。等我很好奇是否可以使用预处理器来更改iostream.h的实例只是iostream,通过命令行。我试过附加-Diostream.h=iostream到g++,但这似乎并没有改变include语句。我猜预处理器不可能修改包含语句? 最佳答案 #include有三种形式声明。#include"h-char-sequence"new-line#includen

c++ - 有效地 const_cast-ing 常量引用参数

我有一个成员函数,它接受另一个对象的常量引用参数。我想const_cast这个参数以便在成员函数中轻松使用它。为此,以下哪个代码更好?:voidAClass::AMember(constBClass&_BObject){//FORM#1-Castasanobject:BClassBObject=const_cast(_BObject);//...}voidAClass::AMember(constBClass&_BObject){//FORM#2-Castasareference:BClass&BObject=const_cast(_BObject);//...}你能比较一下这两种形式

c++ - 共享常见对象 - 警告 "defined but not used"

我有很多C++类,其中很多(不是全部)共享两个“静态大小变量”,例如分享.h/*Othervariablesinthisheaderusedbyallclasses*/staticsizewidth=10;//Usedbyabout60%staticsizeheight=12;//usedbyabout60%所以我将它们与所有类共享的其他对象一起放在头文件中。当我编译项目时,我收到很多警告(来自不使用这些的类),这些警告提示它们被定义但未被使用。但我在那里需要它们!所以我问,有没有一种方法可以定义它们,以便不使用这两个变量的类可以使用这个头文件而不会抛出关于它们未定义的警告?提前致谢

c++ - C->C++ 在未给出类型的情况下,在#define 中自动将 void 指针转换为 C++ 中的类型指针(C 风格)[MSVS]

您好!我使用了下面的C宏,但是在C++中它不能自动将void*转换为type*。#defineMALLOC_SAFE(var,size){\var=malloc(size);\if(!var)gotoerror;\}我知道,我可以做这样的事情:#defineMALLOC_SAFE_CPP(var,type,size){\var=(type)malloc(size);\if(!var)gotoerror;\}但我不想重写大部分代码,其中使用了MALLOC_SAFE。有没有办法在不给宏类型的情况下做到这一点?也许一些MSVC2005#pragma/__declspec/other?p.s.