草庐IT

define-ing

全部标签

java - Spring 交易 : rollbackfor and norollbackfor both defined

这是我在必须维护的应用程序中遇到的问题:我有一个带有注释的头等舱@Transactional(rollbackFor=CustomExceptionA.class)然后在下面的代码中我调用了一个方法@Transactional(noRollbackFor=CustomExceptionB.class)注意:CustomExceptionA或CustomExceptionB只有一个共同的祖先,即Exception。当然,当我执行代码时会引发异常,它既不是CustomExceptionA类型也不是CustomExceptionB类型,也不是它们的子类。所以问题很简单:在这种情况下事务会发生

c++ - #define 在模式之后有两个标记

google上的每个引用都只显示简单的示例,我在代码中有这个案例:#defineXHANDLER(A,B,H)X_TO_BUS_HANDLER(A,B,H)X_FROM_BUS_HANDLER(A,B,H)namespace{X_TO_BUS_HANDLER(some::SomeClassX,bus::SomeBus,foo::SomeHandler);有谁知道这个定义是如何工作的?一种模式和两个标记列表?请引用。我egrep了代码,但只发现使用了X_TO_BUS_HANDLER。 最佳答案 它的工作方式与任何其他定义一样-每当预处

c++ - 为什么 "#define A"会干扰 "namespace A{}"?

以下代码可以编译:namespaceA{inti;}namespaceB{inti;}intmain(){return0;}但是下面的代码无法编译:#defineA#defineBnamespaceA{inti;}namespaceB{inti;}intmain(){return0;}错误信息是error:redefinitionof'int{anonymous}::i'为什么我定义了A和B之后命名空间的名称变成了匿名的?使用的编译器:gcc-4.9.3。 最佳答案 在#defineA#defineBnamespaceA{inti;

c++ - 这个宏是什么意思? #define 未使用(x)((x)=(x))

这个宏是什么意思?我只是在源文件中找到以下宏:#defineUNUSED(x)((x)=(x)) 最佳答案 它可能用于抑制未使用变量/函数参数的编译器警告。你也可以使用这个://C++onlyvoidsome_func(int/*x*/)或者//CandC++voidsome_func(intx){(void)x;}或者您的编译器可能支持这样做的标志,但这些是可移植的并且不会跳过有效警告。 关于c++-这个宏是什么意思?#define未使用(x)((x)=(x)),我们在StackOve

c++ - 对多个源文件使用#define 一次

在VisualC++中有没有一种方法可以在cpp文件中#define一些东西,并在其他cpp文件中也定义它? 最佳答案 至少有两种选择:将定义放入头文件中,并将该头文件包含在您需要该定义的所有源文件中使用the/Dcompileroption定义宏(这也可以在C/C++->Preprocessor->PreprocessorDefinitions下的项目属性中设置) 关于c++-对多个源文件使用#define一次,我们在StackOverflow上找到一个类似的问题:

c++ - 为什么 clang 不像 #define 那样优化全局常量?

我有这个测试程序,使用#define常量:#include#defineFOO1intmain(){printf("%d\n",FOO);return0;}当使用“AppleLLVM版本10.0.0(clang-1000.11.45.5)”编译时,我得到一个8432字节的可执行文件。这是程序集list:.section__TEXT,__text,regular,pure_instructions.build_versionmacos,10,14.globl_main##--Beginfunctionmain.p2align4,0x90_main:##@main.cfi_startpro

c++ - "#define XXX"的值是多少?

“#defineXXX”的值是多少?它没有值,但似乎没有编译错误。通常定义是定义类型替换,但它是定义类型wiouht替换str。 最佳答案 它将替换替换文本为空:#defineFOOintFOOmain()FOO{}此外,#ifdefFOO会成功。空定义可能非常有用,例如在这种(朴素的)函数形式中:#ifndefNDEBUG#include#defineMakeSureThat(X)if(!(X)){std::abort();}#else#defineMakeSureThat(X)#endif用法:voiddo_stuff(Foo*

c++ - `#define` c++ 源代码中的一个非常大的数字

好吧,这个问题并不像听起来那么愚蠢。我正在使用C++11并想像这样声明一个数组:arraymyArr;MAX_ARR_SIZE将在头文件中定义,并且可能非常大,即10^13。目前我像学龄前child一样打字#defineMAX_ARR_SIZE1000000000000000如果别无选择,我可以忍受。我不能使用pow(10,13)在这里,因为它不能在编译时被评估;数组初始化将失败。我不知道有什么速记可以输入这个。 最佳答案 对常量使用#define比C++更像是C的一种方式。你可以这样定义常量:constsize_tMAX_ARR_

c++ - 在 C++ 函数中 #define 会很奇怪吗?

我的C++小函数需要计算一个简单的超时值。CalcTimeout(constmystructst){return(st.x+100)*st.y+200;}数字100和200稍后阅读代码时会造成混淆,因此我想为它们使用#define。但是这些定义只是这个函数需要的,我可以在函数内部定义它们吗?这种方式的优点是:这是非常本地化的值(value)观,没有其他人需要知道它靠近它的使用位置,意图很明确,它没有其他用途,它们就像局部变量(除了它们不是)缺点可能是定义局部变量/常量之类的东西的方式相当粗糙,但它显然不是局部的。除此之外,在C++函数中使用#define会很奇怪吗?大多数时候我们在文件

c++ - 有没有办法解决供应商引入的#define?

因此,我们使用的供应商提供了一个库(主要用于C,具有一些C++支持),它执行以下操作:#ifndefint64_t#defineint64_ts_int64#endif#ifndefint32_t#defineint32_ts_int32#endif#ifndefint16_t#defineint16_ts_int16#endif#ifndefint8_t#defineint8_ts_int8#endif在他们图书馆深处的一个标题中。现在的问题是,一旦他们的库包含在简单的C++11代码中,例如:#include#includeintmain(void){std::int32_tstd_