如何检查 std::function 是否已设置且有效?
How to check if a std::function is set and valid?
我有一个 std::function
设置如下:
typedef std::function<void(bool some_state)> TheListener;
void ListenTo(TheListener the_listener) {
m_the_listener = the_listener;
}
如何检查 std::function
是否已设置?
private:
void SomePrivateMethod() {
// How do I check here that m_the_listener is set by calling ListenTo ?
m_the_listener();
}
在调用 m_the_listener()
之前检查 if (m_the_listener)
是否足够?
This 确实声明验证条件中的 std::function
实例应该足以验证它是否具有有效的可调用目标。所以是的,if (m_the_listener)
应该足够了。
我有一个 std::function
设置如下:
typedef std::function<void(bool some_state)> TheListener;
void ListenTo(TheListener the_listener) {
m_the_listener = the_listener;
}
如何检查 std::function
是否已设置?
private:
void SomePrivateMethod() {
// How do I check here that m_the_listener is set by calling ListenTo ?
m_the_listener();
}
在调用 m_the_listener()
之前检查 if (m_the_listener)
是否足够?
This 确实声明验证条件中的 std::function
实例应该足以验证它是否具有有效的可调用目标。所以是的,if (m_the_listener)
应该足够了。