Что выводит следующая программа?
Правильно: совершенно ни-че-го. Потому что A a(char(N)) - это объявление функции. С тем же успехом можно написать
#include <iostream> struct A { template <typename T> A(T t) { std::cout << t << std::endl; } }; enum { N = 53 }; int main(int argc, char **argv) { A a(char(N)); return 0; }
Правильно: совершенно ни-че-го. Потому что A a(char(N)) - это объявление функции. С тем же успехом можно написать
struct A { }; int main(int argc, char **argv) { A a(char(ANYTHING)); return 0; }