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单片机。 但是,如果我将字符串长度增加一个字符,则使用的闪存大小将增加两个(!)字节。