std::basic_string_view<CharT,Traits>:: data
|
constexpr
const_pointer data
(
)
const
noexcept
;
|
(C++17부터) | |
기본 문자 배열에 대한 포인터를 반환합니다. 이 포인터는
[
data
(
)
,
data
(
)
+
size
(
)
)
범위가 유효하고 그 안의 값들이 뷰의 값들과 일치하도록 합니다.
목차 |
매개변수
(없음)
반환값
기본 문자 배열에 대한 포인터입니다.
복잡도
상수.
참고 사항
std::basic_string::data()
와 문자열 리터럴과 달리,
std::basic_string_view::data()
는 널 종료가 보장되지 않는 버퍼에 대한 포인터를 반환합니다. 예를 들어 서브스트링 뷰(예:
remove_suffix
에서 생성된 뷰)의 경우가 이에 해당합니다. 따라서
data()
를 단순히
const
CharT
*
를 인자로 받고 널 종료 문자열을 기대하는 루틴에 전달하는 것은 일반적으로 실수입니다.
예제
#include <cstring> #include <cwchar> #include <iostream> #include <string> #include <string_view> int main() { std::wstring_view wcstr_v = L"xyzzy"; std::cout << std::wcslen(wcstr_v.data()) << '\n'; // OK: 기본 문자 배열이 null로 종료됨 char array[3] = {'B', 'a', 'r'}; std::string_view array_v(array, sizeof array); // std::cout << std::strlen(array_v.data()) << '\n'; // 오류: 기본 문자 배열이 null로 종료되지 않음 std::string str(array_v.data(), array_v.size()); // OK std::cout << std::strlen(str.data()) << '\n'; // OK: std::string의 기본 문자 배열은 항상 null로 종료됨 }
출력:
5 3
참고 항목
|
첫 번째 문자에 접근
(public member function) |
|
|
마지막 문자에 접근
(public member function) |
|
|
문자열의 첫 번째 문자에 대한 포인터를 반환
(
std::basic_string<CharT,Traits,Allocator>
의
public member function)
|