64,652
社区成员
发帖
与我相关
我的任务
分享
// C.h
void f(const char*);
struct C
{
WHAT_EVER_INIT(C);
WHAT_EVER( C, f, test ); // 隐含执行 f("test")。
WHAT_EVER_END(C);
};
// C.cpp
WHAT_EVER_INIT_FOR( C ); // 这行之后需要保证 f("test") 被执行。
#define WHAT_EVER( Class, Func, Str ) struct Tag_##Str { \
Tag_##Str(){ \
Func( #Str ); \
} \
} _tag##Str;
struct C
{
strcut Tag_test{ Tag_test(){ f("test"); } _tag_test;
};
#define X 13
INC( X ) // X become 14
__rtti(auto, def=0.0f) float c;
__rtti(auto, nodef) MyType ar[30];
//自己转为宏。
struct CODE
{
CODE()
{
struct x
{
static void f(const char* str)
{
cout << str << endl;
}
x()
{
f("test");
}
};
static x x;
}
};
struct fuck : CODE
{
};
int main()
{
fuck fuckable;
fuck fuckable1;
return 0;
}
#include <stdio.h>
#define WHAT_EVER_INIT( type ) static int _init_##type() {
#define WHAT_EVER( type, func, arg ) func##( #arg );
#define WHAT_EVER_END( type ) return 0;}
#define WHAT_EVER_INIT_FOR( type ) namespace { int _dummy = type::_init_##type(); }
void test( const char *arg ) {
printf( "%s\n", arg );
}
class abc {
public:
abc() {
}
WHAT_EVER_INIT(abc)
WHAT_EVER(abc, test, args )
WHAT_EVER_END(abc)
};
WHAT_EVER_INIT_FOR( abc )
int main() {
return 0;
}