Ultimamente, escrevi uma função de modelo para resolver algumas repetições de código. Se parece com isso: template<class T, class R, class... Args> R call_or_throw(const std::weak_ptr<T>& ptr, const std::string& error, R (T::*fun)(Args...), Args... args) { if (auto sp =...