用户定义文字运算符的问题(在原始模式下)
A problem with user-defined literal operator (in raw mode)
我正在尝试以文字模式定义文字运算符(即)函数参数列表应该是 const char* arg1
而不是 const char* arg1,size_t size
但我不能
#include<iostream>
#include<string>
int operator"" _i(const char* charsArr){
return std::stoi(std::string{charsArr});
}
int main(){
std::cout<<"1234324"_i;
return 0;
}
编译器错误信息
error C3688: invalid literal suffix '_i'; literal operator or literal operator template 'operator ""_i' not found
note: Literal operator must have a parameter list of the form 'const char *, std::size_t'
应用于字符串文字的 UDL 只有一种模式(C++20 中有 2 种模式,但新模式不适用于您的情况):您得到一个指针和一个大小。只有非字符串 UDL 具有单参数 const char*
形式。
也就是说,C++ 中的字符串文字可以包含嵌入的 NUL 字符,并且您的 UDL 不允许伪装成其他字符。
我正在尝试以文字模式定义文字运算符(即)函数参数列表应该是 const char* arg1
而不是 const char* arg1,size_t size
但我不能
#include<iostream>
#include<string>
int operator"" _i(const char* charsArr){
return std::stoi(std::string{charsArr});
}
int main(){
std::cout<<"1234324"_i;
return 0;
}
编译器错误信息
error C3688: invalid literal suffix '_i'; literal operator or literal operator template 'operator ""_i' not found
note: Literal operator must have a parameter list of the form 'const char *, std::size_t'
应用于字符串文字的 UDL 只有一种模式(C++20 中有 2 种模式,但新模式不适用于您的情况):您得到一个指针和一个大小。只有非字符串 UDL 具有单参数 const char*
形式。
也就是说,C++ 中的字符串文字可以包含嵌入的 NUL 字符,并且您的 UDL 不允许伪装成其他字符。