Me sorprendió encontrar que en VC++ 10, se puede utilizar un typedef para cambiar el nombre del constructor de una clase:¿El estándar de C++ permite usar un typedef para cambiar el nombre de un constructor?
#include <iostream>
using namespace std;
class A
{
private:
typedef A alias;
public:
alias() { cout << "A ctor" << endl; }
};
int main()
{
A(); // prints "A ctor"
return 0;
}
¿Este estándar de C++ o una extensión de Microsoft?
No estoy seguro en el estándar, pero g ++ y clang ++ ambos errores en este código. –
g ++ devuelve 'ISO C++ prohíbe la declaración de 'alias' sin tipo' – dasblinkenlight