Tôi đang học C++ 11 và quan tâm đến các chữ cái do người dùng xác định. Vì vậy, tôi quyết định chơi một chút với nó. Một số ngôn ngữ có cú pháp như sau:C++ 11 literal do người dùng định nghĩa
int n = 1000_000_000;
Tôi đã thử mô phỏng tính năng này trong C++ 11.
inline constexpr unsigned long long operator "" _000 (unsigned long long n)noexcept
{
return n * 1000;
}
inline constexpr unsigned long long operator "" _000_000 (unsigned long long n)noexcept
{
return n * 1000*1000;
}
inline constexpr unsigned long long operator "" _000_000_000 (unsigned long long n)noexcept
{
return n * 1000*1000*1000;
}
int main(){
constexpr auto i = 100_000; // instead of 100000
constexpr auto j = 23_000_000; // instead of 23000000;
}
Nhưng đối với trường hợp chung tôi không thể mô phỏng nó, ví dụ:
auto general_case = 123_456_789; // không thể biên dịch
Câu hỏi của tôi là "Tôi có thể mô phỏng cho trường hợp chung như trên bằng C++ 11 không?".
Tính năng này có hoạt động với 1_000_000 không? Cá nhân tôi sẽ sử dụng chữ người dùng tùy chỉnh và các chữ cái K M G (kilo mega giga). – dtech
1_000_000 được biên soạn !!! –
@ddriver chỉ có vấn đề với đó là sau đó bạn không thể là chính xác – aaronman