'concept std::derived_from when the argument is a smart pointer

I have a few functions like so

bool RegisterModel (std::shared_ptr<DerivedA> model) { }

bool RegisterModel (std::shared_ptr<DerivedB> model) { }

and i would like to make use of c++ 20 concepts and implement it like this:

bool RegisterModel (std::derived_from<BaseClass> auto model) { }

This does not work, because i'm passing in shared pointers. It is somehow possible to require a shared pointer that holds an object derived from BaseClass?



Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source