C 風格字串可以作為範本參數嗎?
您嘗試使用 C 風格字串實例化範本失敗,並出現錯誤無效使用字串文字作為範本參數。
雖然C 樣式字串不能直接用作模板參數,但還有其他替代方法方法:
使用指向常數字串的指標
一種解決方法是使用指向常數字串的指標作為模板參數:
template
struct X {
const char *GetString() const {
return str;
}
};
char global_string[] = "String";
int main() {
X x;
cout 更新:使用C 11 將字串文字作為模板參數
在C 11 及更高版本中,可以透過利用字元包將字串文字用作範本參數:
template
struct X {
const char (*GetString)() {
return [](char*... s) { return s; }(c...);
}
};
int main() {
X x;
cout
免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。
Copyright© 2022 湘ICP备2022001581号-3