Subject: [boost] Generic type inferencer function?
From: Nat Goodspeed (nat_at_[hidden])
Date: 2015-12-18 11:20:34


Our code has any number of instances of this pattern:

template <typename T, typename U>
class SomeTemplate
{
    SomeTemplate(const T& t, const U& u);
    ...
};

template <typename T, typename U>
SomeTemplate<T, U> make_SomeTemplate(const T& t, const U& u)
{
    return SomeTemplate<T, U>(t, u);
}

Am I overlooking a generic boost::make<something>() of this general form?

template <template<typename...> class CLASS_TEMPLATE, typename... ARGS>
CLASS_TEMPLATE<ARGS...> make(ARGS && ... args)
{
    return CLASS_TEMPLATE<ARGS...>(std::forward<ARGS>(args)...);
}

If that doesn't already exist... would it be useful to add (a less
naive version) somewhere?