奇葩001

#include<iostream>
template<size_t len>
struct __byteArr
{
	char arr[len+1];
};
template<typename ldType,size_t lenA,size_t lenB>
__byteArr<lenB> __funDecl(ldType, __byteArr<lenA>,__byteArr<lenB>);
#define counter_read(id) \
(sizeof __funDecl(id(),__byteArr<0x01>(), __byteArr< \
(sizeof __funDecl(id(),__byteArr<0x02>(), __byteArr< \
(sizeof __funDecl(id(),__byteArr<0x04>(), __byteArr< \
(sizeof __funDecl(id(),__byteArr<0x08>(), __byteArr< \
(sizeof __funDecl(id(),__byteArr<0x10>(), __byteArr< \
(sizeof __funDecl(id(),__byteArr<0x20>(), __byteArr<0>()) - 1 ) \
													 >()) - 1 ) \
													 >()) - 1 ) \
													 >()) - 1 ) \
													 >()) - 1 ) \
													 >()) - 1 ) 
#define counter_inc(id) \
__byteArr<counter_read(id) + 1> \
__funDecl(id, __byteArr<(counter_read(id) + 1) & ~counter_read(id)>, \
        __byteArr<(counter_read(id) + 1) & counter_read(id)>)
struct idType {};
//#define mmm case counter_read(idType); counter_inc(idType);
#define num counter_read(idType)
#define numAdd counter_inc(idType)

numAdd;
char a[num];
numAdd;
char b[num];
numAdd;
char c[num];
using namespace std;
int main()
{
	cout<<sizeof a<<endl;
	cout<<sizeof b<<endl;
	cout<<sizeof c<<endl;
	return 0;
}

猜你喜欢

转载自blog.csdn.net/d710055071/article/details/47053401