std::string을 상수 표현식으로 구현할 수 있나요?
C 11에서 std::string을 상수 표현식에 활용하면 다음과 같은 상황이 발생합니다. 도전. 그러나 C 20은 지속적인 평가가 끝나기 전에 std::string을 삭제해야 한다는 경고와 함께 솔루션을 제공합니다.
C 20 솔루션:
귀하가 제공한 코드 조각은 컴파일되지 않습니다. 다음 코드는 will:
constexpr std::size_t n = std::string("hello, world").size();
C 17 대안: string_view
대안으로 C 17은 비소유 객체 역할을 하는 경량 문자열형 객체인 string_view를 도입합니다. char 객체의 시퀀스에 대한 참조입니다. std::string과 달리 string_view는 변경할 수 없으며 파기가 필요하지 않습니다. 이는 상수 표현식에 사용하기에 이상적입니다:
constexpr std::string_view sv = "hello, world";
위 내용은 std::string을 C의 상수 표현식에 사용할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!