concept std::derived_from 当参数是智能指针时
concept std::derived_from when the argument is a smart pointer
我有几个这样的功能
bool RegisterModel (std::shared_ptr<DerivedA> model) { }
bool RegisterModel (std::shared_ptr<DerivedB> model) { }
我想利用 C++ 20 概念并像这样实现它:
bool RegisterModel (std::derived_from<BaseClass> auto model) { }
这不起作用,因为我正在传递共享指针。有可能需要一个共享指针来保存从 BaseClass
?
派生的对象
从 std::shared_ptr<T>
推导出 T
并约束:
template<std::derived_from<BaseClass> T>
bool RegisterModel (std::shared_ptr<T> model) { }
我有几个这样的功能
bool RegisterModel (std::shared_ptr<DerivedA> model) { }
bool RegisterModel (std::shared_ptr<DerivedB> model) { }
我想利用 C++ 20 概念并像这样实现它:
bool RegisterModel (std::derived_from<BaseClass> auto model) { }
这不起作用,因为我正在传递共享指针。有可能需要一个共享指针来保存从 BaseClass
?
从 std::shared_ptr<T>
推导出 T
并约束:
template<std::derived_from<BaseClass> T>
bool RegisterModel (std::shared_ptr<T> model) { }