boost::openmethod::make_shared_virtual :: Boost.OpenMethod

# boost::openmethod::make_shared_virtual

Create a new object and return a `shared_virtual_ptr` to it.

## Synopsis

Declared in `<boost/openmethod/interop/std_shared_ptr.hpp>`

    template<
        class Class,
        class Registry = boost::openmethod::default_registry,
        typename... T>
    auto
    make_shared_virtual(T&&... args);

## Description

Create an object using `std::make_shared`, and return a `shared_virtual_ptr` pointing to it. Since the exact class of the object is known, the `virtual_ptr` is created using `final_virtual_ptr`.

`Class` is not required to be a polymorphic class.

## Return Value

A `shared_virtual_ptr<Class, Registry>` pointing to a newly created object of type `Class`.

## Template Parameters

Name | Description
--- | ---
Class | The class of the object to create.
Registry | A `registry`.
T | Types of the arguments to pass to the constructor of `Class`.

## Parameters

Name | Description
--- | ---
args | Arguments to pass to the constructor of `Class`.

Created with MrDocs