std::string C++20/23 인터페이스 혁신
5329 단어 cppprogramming
More Cheat Sheets
이익
resize_and_overwrite
예를 들어 C API에 대한 호출에서 오는 문자로 문자열을 즉시 덮어써야 하는 경우 문자열 메모리 버퍼의 값비싼 초기화를 방지합니다.// BEFORE:
std::string s1;
s1.resize(1024); // costly initialization
// write characters to string:
size_t sizeWritten = some_C_library(s1.data(), s1.size());
// AFTER:
std::string s2;
s2.resize_and_overwrite(1024, [](char* p, size_t n){
size_t sizeWritten = some_C_library(p, n);
return sizeWritten;
});
함수 서명 및 오버로드
namespace std {
template <typename CharT, typename Traits, typename Allocator>
class basic_string {
// ...
bool contains (std::basic_string_view<CharT>);
bool contains (CharT);
bool contains (CharT const*);
bool starts_with (std::basic_string_view<CharT>);
bool starts_with (CharT);
bool starts_with (CharT const*);
bool ends_with (std::basic_string_view<CharT>);
bool ends_with (CharT);
bool ends_with (CharT const*);
template <typename Operation>
constexpr void resize_and_overwrite (size_type count, Operation op);
// ...
};
} // std
Reference
이 문제에 관하여(std::string C++20/23 인터페이스 혁신), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/hackingcpp/stdstring-c2023-interface-novelties-500e텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)