я с удивлением обнаружили, что в VC++ 10, вы можете использовать ЬурейиЙ изменить имя конструктора класса:Позволяет ли стандарту C++ использовать 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?
Не уверен в стандарте, но g ++ и clang ++ обе ошибки в этом коде. –
g ++ возвращает 'ISO C++ запрещает объявление 'псевдонима' без типа' – dasblinkenlight