반응형
C++14에서 작은따옴표 문자(')는 정수 리터럴과 부동 소수점 리터럴 모두 숫자 리터럴에서 숫자 구분 기호로 임의로 사용할 수 있다.
이것은 코드를 보는 사람들이 큰 숫자를 더 쉽게 알아차릴 수 있다.
auto integer_literal = 1'000'000;
auto floating_point_literal = 0.000'015'3;
auto binary_literal = 0b0100'1100'0110;
auto a_dozen_crores = 12'00'00'000;
때때로 숫자의 크기가 커지면 숫자를 읽기 어려워진다. 예를 들어 1000은 금방 눈에 들어오지만 더 많은 0이 추가되면 (예: 10000000) 이제 읽기가 조금 어려워지고 더 많은 0이 추가되면 어떻게 될까?
실생활에서는 쉼표(,)가 숫자에 추가된다. (예: 10,000,000) 이제 조금 읽기가 쉬워졌다.
C++에서 이러한 구분 기호(쉼표)를 허용하지 않으므로 큰 숫자를 처리하는 방법에 대한 궁금증이 생긴다. 이를 처리하기 위해 C++14는 기능을 도입하였는데 그 이름은 Digit Separator이며 간단한 따옴표(')로 표시된다.
아래 예제는 값을 결정할 때 작은따옴표가 무시된다는 것을 보여준다.
// C++ program to demonstrate
// the above approach
#include <iostream>
using namespace std;
// Driver code
int main()
{
long long int a = 10'00'000;
// Print the value
cout << a;
return 0;
}
//Output : 1000000
다음은 작은따옴표가 사용자 전용임을 보여주는 프로그램이다.
어떤 위치에서 사용하든 컴파일러에 영향을 미치지 않는다.
// C++ program to demonstrate
// the above approach
#include <iostream>
using namespace std;
// Driver Code
int main()
{
long long int a = 1'23'456;
long long int b = 12'34'56;
long long int c = 123'456;
// Print all the value
cout << "a:" << a << endl;
cout << "b:" << b << endl;
cout << "c:" << c << endl;
return 0;
}
//Output : a:123456
// b:123456
// c:123456
https://en.wikipedia.org/wiki/C%2B%2B14#cite_note-9
https://www.geeksforgeeks.org/digit-separator-in-c14/
300x250
'C++ > C++14' 카테고리의 다른 글
C++14 : 람다 캡처 표현식(Lambda capture expressions) (0) | 2022.04.28 |
---|---|
C++14 : 제네릭 람다(Generic lambdas) (0) | 2022.04.15 |
C++14 : 바이너리 리터럴(Binary literals) (0) | 2022.04.15 |
C++14 : 애그리게이트 멤버 초기화(Aggregate member initialization) (0) | 2022.04.15 |
C++14 : 변수 템플릿(Variable templates) (0) | 2022.04.15 |
댓글