Tôi rất ngạc nhiên khi thấy rằng trong VC++ 10, bạn có thể sử dụng một typedef để thay đổi tên của constructor của một lớp:Chuẩn C++ có cho phép sử dụng typedef để đổi tên một hàm tạo không?
#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;
}
là tiêu chuẩn này C++ hoặc một phần mở rộng của Microsoft?
Không chắc chắn về tiêu chuẩn, nhưng g ++ và clang ++ cả lỗi trên mã này. –
g ++ trả về 'ISO C++ cấm tuyên bố 'bí danh' không có loại' – dasblinkenlight