로딩
요청 처리 중입니다...

C++] std::string을 파라미터로 받는 편한 방법 std::string_view

 C++] std::string을 파라미터로 받는 편한 방법 std::string_view

C++ 17 이전에는 읽기 전용 스트링을 받을 때 쉽지 않은 부분이 많았습니다. 파라미터 타입을 const char*로 지정하면 std::string을 사용할 때 c_str()이나 data()를 사용해야 합니다.

그리고 함수 내부에서는 정작 string의 다양한 헬퍼함수를 사용할 수 없는 문제가 발생합니다. 그렇다고 std::string&, 또는 const std::string&을 사용할 경우에는 정작 std::string 객체를 하나 만들어야하기 때문에 오버헤드가 발생을 하게 됩니다.

그래서 이 고민을 해결하기 위해 C++ 17부터는 std::string_view라는 녀석이 추가가 되었습니다. 이 친구는 단순하게 스트링에 대한 포인터, 그리고 길이만 갖고 있습니다.

그런 연유로 레퍼런스를 쓰기 보다는 pass-by-value 형태로 넘기는 편입니다. 물론 이런 것 기억하기 귀찮다면 레퍼런스를 써도 크게 상관은 없습니다. string_view extractExtension(strin...