boost::openmethod::virtual_traits<boost::intrusive_ptr<Class> const&, Registry>
Specialize virtual_traits for const boost::intrusive_ptr&.
Synopsis
Declared in <boost/openmethod/interop/boost_intrusive_ptr.hpp>
template<
class Class,
class Registry>
struct virtual_traits<boost::intrusive_ptr<Class> const&, Registry>;
Example
struct Animal : boost::intrusive_ref_counter<Animal> {
virtual ~Animal() = default;
};
struct Dog : Animal {};
struct Cat : Animal {};
BOOST_OPENMETHOD_CLASSES(Animal, Dog, Cat);
BOOST_OPENMETHOD(
poke, (virtual_<const boost::intrusive_ptr<Animal>&>), std::string);
BOOST_OPENMETHOD_OVERRIDE(
poke, (const boost::intrusive_ptr<Dog>& animal), std::string) {
return "bark";
}
BOOST_OPENMETHOD_OVERRIDE(
poke, (const boost::intrusive_ptr<Cat>& animal), std::string) {
return "hiss";
}
Type Aliases
Name |
Description |
Rebind to a different element type. |
|
|
Template Parameters
Name |
Description |
Class |
A class type, possibly cv‐qualified. |
Registry |
A |
See Also
Created with MrDocs