我正在尝试为operator ""_exp
类创建一个自定义运算符Exponent
,我可以这样称呼该运算符:
std::cout << 10.5 * 2._exp << '\n';
我其余的代码:
struct Exponent
{
long double value;
};
Exponent operator ""_exp(long double exponent)
{
return exponent;
}
我正在使用 Visual Studio 10 编译器,并且出现 C2883 错误:
Error C2833: 'operator string' is not a recognized operator or type
我已经尝试过:
我找到了可能的用户定义运算符的列表,但找不到operator ""
。 https://docs.microsoft.com/en-us/previous-versions/visualstudio/visual-studio-2010/ds533389(v%3dvs.100)
问题:
有人可以告诉我在 Visual Studio 2010 中可以使用operator ""_exp"
吗?也许还有另一种方法可以实现这一目标?
答案 0 :(得分:2)
Microsoft Visual Studio 10不是C ++ 11编译器。
他们的第一个完全支持C ++ 11(包括您尝试使用的用户定义的文字)的编译器是MSVC2017。
最后,请注意if(!admin.isModified('password')) {
return next();
}
是AdminSchema.pre('save', function(next) {
const admin = this // bind this
if (admin.$isDefault('password') || admin.isModified('password')) {
bcrypt.genSalt(12, (err, salt) => { // generate salt and harsh password
if (err) {
return next(err);
}
bcrypt.hash(admin.password, salt, (err, hash) => {
if (err) {
return next(err);
}
admin.password = hash
return next()
})
})
} else {
return next();
}
})
,不是是10.5
。