aboutsummaryrefslogtreecommitdiff
path: root/paludis/util/pool.hh
diff options
context:
space:
mode:
authorAvatar Ciaran McCreesh <ciaran.mccreesh@googlemail.com> 2011-04-01 16:11:42 +0100
committerAvatar Ciaran McCreesh <ciaran.mccreesh@googlemail.com> 2011-04-04 08:32:59 +0100
commit3b25615aefb36ae747c29220ff80b6de2934c034 (patch)
treefdbb0863c28cceb664262bb12b01557fd9b61566 /paludis/util/pool.hh
parent28626b8aa3b39d400f8f9eb3a0730ac101b2e53a (diff)
downloadpaludis-3b25615aefb36ae747c29220ff80b6de2934c034.tar.gz
paludis-3b25615aefb36ae747c29220ff80b6de2934c034.tar.xz
Avoid explicit instantiation of variadics
Diffstat (limited to 'paludis/util/pool.hh')
-rw-r--r--paludis/util/pool.hh14
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