首頁 > 後端開發 > C++ > 主體

std::string 可以在 C 中的常數表達式中使用嗎?

Linda Hamilton
發布: 2024-11-23 16:43:22
原創
161 人瀏覽過

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

std::string 可以體現在常數表達式中嗎?

在 C 11 中,在常數表達式中使用 std::string 構成挑戰。然而,C 20 提供了一個解決方案,但需要注意的是,在常數求值結束之前必須破壞 std::string。

C 20 解決方案:

雖然您提供的程式碼片段將無法編譯,以下程式碼將:

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中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板