Я был удивлен, обнаружив, что в VC ++ 10 вы можете использовать typedef для изменения имени конструктора класса:
#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;
}
Это стандартный C ++ или расширение Microsoft?