Tôi đọc phần về định nghĩa vùng tên. Khoản 7.3.1 của N3797 cho biết:không gian tên nội tuyến và không gian tên mở rộng
Các từ khóa inline có thể được sử dụng trên một phần mở rộng-namespace nét chỉ nếu trước đó nó được sử dụng trên các ban-namespace nét cho namespace đó.
Hãy xem xét các đoạn mã sau:
namespace M
{
int h;
}
inline namespace M
{
int j = 6;
}
Nó được biên soạn thành công cả với -std=c++11
và không có tùy chọn đó. Bạn có thể giải thích hành vi đó không? Đây có phải là lỗi g++
không?