String view는 C++ 17부터 지원한다.
[Background]
string 타입 변수를 읽기만 하고 수정하지 않는 함수가 있다고 하자.
C++17 이전에는 이 함수의 parameter type을 쉽게 결정할 수 없었다.
왜냐하면 string은 char[], char*, std::string 과 같이 종류가 다양하기 때문이다.
이런 문제를 해결하기 위해서 도입된 것이 string_view type이다.
[string_view]
▶ string_view는 대부분 pass-by-value로 전달한다.
string에 대한 pointer와 길이만 가지고 있기 때문에 복사하는데 오버헤드가 적기 때문이다.
▶ string_view를 사용하면 함수를 호출하는 부분에서 복사 연산이 발생하지 않는다.
▶ 따라서 read-only string을 받는 function은 const std::string&, const char* 대신 std::string_view를 사용한다.
▶ 실제 string을 생성할 때는 string_view::data()로 생성해야 한다.
반응형
'Programming > Modern c++' 카테고리의 다른 글
string literal은 어디에 저장될까? (0) | 2022.06.13 |
---|---|
[Benchmark] Passing std::string as function parameter (1) | 2022.06.12 |
C++ 표준 난수 라이브러리 <random> (0) | 2022.04.07 |