Я хочу узнать, как использовать макрос.VARIADIC MACRO ошибка компиляции
Я просто написать образец, но не компилируется на моей локальной г ++ 4,9
#define P(...) printf("13", ##__VA_ARGS__)
int main() {
// your code goes here
P();
return 0;
}
я получить компилировать ошибку, как показано ниже
g++ -std=c++14 -O2 -Wall -pedantic -pthread main.cpp && ./a.out
main.cpp: In function 'int main()':
main.cpp:4:42: error: expected primary-expression before ')' token
#define P(...) printf("13", ##__VA_ARGS__)
^
main.cpp:7:5: note: in expansion of macro 'P'
P();
^
Но тот же код может быть составлен на ideone .... http://ideone.com/ucEXXz
а также VS2015.
Есть ли разумные объяснения для этого?
Как я могу написать переносимый макрос для все компилятора ....
Спасибо.
код не совпадает - на coliru stdio.h не входит - iostream является ... – onqtam
Удалить '-std = C++ 14' – qrdl