我已经实现了一个智能指针,它使用调用内部对象方法的代理函数存储类型为 T 的对象:
template <class Function, class ...Args, class ...Params>
inline bool call( Function (T::*function)(Args...) const, Params&& ...args ) const noexcept( noexcept( function ));
但是我发现了一个奇怪的问题——当一个成员函数中产生了一个 std::exception 时,程序就会终止,即使代理函数是在一个 try 块中被调用的。所以我的问题是:使用 noexcept 运算符是否正确,如果不是,在这种情况下我应该如何使用它?