mirror of
https://codeberg.org/comaps/comaps
synced 2025-12-19 13:03:36 +00:00
To expand with full Organic Maps and Maps.ME commits history run: git remote add om-historic [om-historic.git repo url] git fetch --tags om-historic git replace squashed-history historic-commits
23 lines
498 B
C++
23 lines
498 B
C++
#pragma once
|
|
|
|
#include <memory>
|
|
#include <type_traits>
|
|
|
|
namespace generator
|
|
{
|
|
template <typename T, typename... Args>
|
|
std::enable_if_t<std::is_constructible<T, Args...>::value, std::shared_ptr<T>>
|
|
create(Args&&... args)
|
|
{
|
|
return std::make_shared<T>(std::forward<Args>(args)...);
|
|
}
|
|
|
|
// impossible to construct
|
|
template <typename T, typename... Args>
|
|
std::enable_if_t<!std::is_constructible<T, Args...>::value, std::shared_ptr<T>>
|
|
create(Args&&... )
|
|
{
|
|
return nullptr;
|
|
}
|
|
} // namespace generator
|