假设我有以下代码:
class A {
public:
void SetInteger(const int val) noexcept { integerMember = val; }
void SetString(const std::string& val) { stringMember = val; }
int GetInteger() const noexcept { return integerMember; }
std::string GetString() const { return stringMember; }
private:
int integerMember;
std::string stringMember;
}
对于整数类型和指针使用noexcept
对我来说非常明显。
但是如果不是类和结构之类的整数类型的建议是什么,它们不会在构造函数/ copy-constructor和它们的部分的构造函数中明确地抛出异常(意味着在构造函数体中使用throw
)?
答案 0 :(得分:4)
对于可能抛出的函数,您应该避免使用noexcept
说明符(除非您已准备好调用代码std::terminate()
)。不推荐使用明确的throw
说明符,因此请不要依赖它们,而应使用noexcept
operator。例如
template<typename T>
class Foo
{
T m_datum;
public:
Foo& SetDatum(T const&x) noexcept(noexcept(m_datum=x))
{
m_datum = x;
return *this;
}
};
答案 1 :(得分:2)
在特殊成员函数之外,SELECT right('000000'+CAST(a.Value as varchar(20)),6) AS Value
FROM dbo.HPatientIdentifiers a
JOIN HPatientVisit b
ON a.Patient_oid=b.Patient_oid
WHERE b.VisitTypeCode IN ('IP','EOP')
AND a.IsVersioned=0
AND a.TYpe='MR'
AND b.VisitEndDateTime >= DATEADD(dd,-1, GETDATE())
ORDER BY a.Value
不是 有用。但如果你想要它:
from flask import current_user
from flask_admin.contrib.sqla import ModelView
class SomeView(ModelView):
def get_query(self,*args,**kwargs):
qs = super(SomeView,self).get_query(*args,**kwargs)
qs = qs.filter_by(author=current_user)
return qs
答案 2 :(得分:1)
getter的第一种方式:
LSOpenURLsWithRole() failed with error -10699...
第二种方式是制定者:
const std::string& GetString() const noexcept {return stringMember; }