21namespace sequoia::object
26 template<
class... Args>
29 std::shared_ptr<T> operator()(Args&&... args)
const
31 return std::shared_ptr<T>(
new T{std::forward<Args>(args)...});
39 using product_type = std::shared_ptr<T>;
44 static T& get(product_type& ptr)
noexcept
50 static const T& get(
const product_type& ptr)
noexcept
56 static T* get_ptr(product_type& ptr)
noexcept
62 static const T* get_ptr(
const product_type& ptr)
noexcept
72 using product_type = T;
77 constexpr static T& get(T& in)
noexcept {
return in; }
80 constexpr static const T& get(
const T& in)
noexcept {
return in; }
83 constexpr static T* get_ptr(T& in)
noexcept {
return ∈ }
86 constexpr static const T* get_ptr(
const T& in)
noexcept {
return ∈ }
Traits, Concepts and basic utilities for the creation of objects.
Traits and Concepts for Sharing Policies.
Creates a product for T.
Definition: Creator.hpp:74
A concept similar to std::constructible_from, but which considers braced-init.
Definition: Concepts.hpp:75
Definition: Handlers.hpp:70
Definition: Handlers.hpp:25
Definition: Handlers.hpp:37