0
我有一個類,我使用字符串的長度作爲模板參數。這樣,文字的長度將在編譯時進行評估,並且在運行時沒有理由執行strlen
(或等效)。我想對字符串文字進行同樣的處理。存儲數組的字符串,傳遞給期望字符串的模板
// Handler class
class Handler {
template<size_t N>
bool String(const char(&str)[N]) { /* ... */ }
};
Handler myHandler;
// Works
myHandler.String("it");
// Handler::String(const char (&)[N])': could not deduce template argument for 'const char (&)[N]' from 'const char *const *'
const char* manyIts[3] = {"this", "and", "that" };
for (int i = 0; i < 3; ++i) {
myHandler.String(manyIts[i]);
}
我明白,其實字符串字面量在const char*
陣列存放時丟失。有沒有其他方便的方法來存儲這些以允許這種功能?