diff options
Diffstat (limited to 'paludis/util/pool.hh')
-rw-r--r-- | paludis/util/pool.hh | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/paludis/util/pool.hh b/paludis/util/pool.hh index 6ad942024..b3adc4d5c 100644 --- a/paludis/util/pool.hh +++ b/paludis/util/pool.hh @@ -42,9 +42,23 @@ namespace paludis Pool(); ~Pool(); + template <typename... Args_> + const std::shared_ptr<const T_> really_create(const Args_ & ...) const PALUDIS_ATTRIBUTE((warn_unused_result)); + public: template <typename... Args_> const std::shared_ptr<const T_> create(const Args_ & ...) const PALUDIS_ATTRIBUTE((warn_unused_result)); + + // can't explicitly instantiate variadics + + template <typename T1_> + const std::shared_ptr<const T_> create(const T1_ &) const PALUDIS_ATTRIBUTE((warn_unused_result)); + + template <typename T1_, typename T2_> + const std::shared_ptr<const T_> create(const T1_ &, const T2_ &) const PALUDIS_ATTRIBUTE((warn_unused_result)); + + template <typename T1_, typename T2_, typename T3_> + const std::shared_ptr<const T_> create(const T1_ &, const T2_ &, const T3_ &) const PALUDIS_ATTRIBUTE((warn_unused_result)); }; class PALUDIS_VISIBLE PoolKey |