>  기사  >  백엔드 개발  >  std::string을 C의 상수 표현식에 사용할 수 있습니까?

std::string을 C의 상수 표현식에 사용할 수 있습니까?

Linda Hamilton
Linda Hamilton원래의
2024-11-23 16:43:22182검색

Can std::string Be Used in a Constant Expression in C  ?

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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.