Tôi biết đây là một tính năng cũ nhưng đọc trên user defined literals ví dụ:Tại sao các tên không gạch dưới được dành riêng cho việc triển khai UDL và không phải là cách khác?
return_t operator "" _a(long); // Literal operator for user-defined INTEGRAL literal
Tôi đã nhắc nhở rằng
gạch dưới hàng đầu là bắt buộc. (Chỉ có bộ thư viện chuẩn được phép xác định các chữ mà không có dấu gạch dưới.) (A)
Điều này dường như phá vỡ mô hình từ cho đến nay việc thực hiện hợp tác với các tên underscorey và lại cho chúng ta những cái tốt, ví dụ dành cho việc thực hiện là những cái tên
- Thành phần một dấu gạch dưới đôi
- Hãy bắt đầu với một dấu gạch dưới theo sau là một chữ cái viết hoa
Ngoài ra trích dẫn (A) là hơi nguy hiểm trong sự hiện diện của quy tắc (2). Vậy tại sao không nhất quán?
Điều này là để chúng tôi có thể nhận được hậu tố tìm kiếm "tự nhiên" trong thư viện chuẩn và để lại hậu tố do người dùng xác định rõ ràng như vậy. –