2
爲什麼不識別以下文字操作符模板?未識別C++文字操作符模板
template<char... Chars>
constexpr int operator"" _p(){
return 0;
}
int main()
{
int fs1 = "123"_p;
}
更新: 感謝我現在使用的答案:
#include <avr/pgmspace.h>
template<typename C, C... CC>
struct PgmString {
static constexpr const char* str(){
return &data[0];
}
static constexpr const char data[] PROGMEM = {CC..., '\0'};
};
template<typename C, C... CC>
constexpr const char PgmString<C, CC...>::data[] PROGMEM;
template<typename C, C... CC>
constexpr PgmString<C, CC...> operator"" _pgm(){
return PgmString<C, CC...>();
}
這使單個的字符串到Flash上的AVR單片機。 但是,如果我將字符串長度增加一個字符,則使用的閃存大小將增加兩個(!)字節。