关于__VA_ARGS__宏的问题
编译环境为VC。想要在可变参数宏中遍历各个参数:
#include "stdafx.h"
#include <cstdio>
#define ATTR( attr ) attr
#define ATTR_1( attr ) printf_s( attr )
#define ATTR_2( attr, ... ) ATTR_1( attr ); ATTR( ATTR_1( __VA_ARGS__ ) )
#define ATTR_3( attr, ... ) ATTR_1( attr ); ATTR( ATTR_2( __VA_ARGS__ ) )
#define ATTR_4( attr, ... ) ATTR_1( attr ); ATTR( ATTR_3( __VA_ARGS__ ) )
#define ATTR_5( attr, ... ) ATTR_1( attr ); ATTR( ATTR_4( __VA_ARGS__ ) )
#define ATTR_6( attr, ... ) ATTR_1( attr ); ATTR( ATTR_5( __VA_ARGS__ ) )
int _tmain(int argc, _TCHAR* argv[])
{
ATTR_6( "1", "2", "3", "4", "5", "6" );
return 0;
}