aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAvatar Ciaran McCreesh <ciaran.mccreesh@googlemail.com> 2008-06-16 10:39:34 +0100
committerAvatar Ciaran McCreesh <ciaran.mccreesh@googlemail.com> 2008-06-16 10:39:34 +0100
commit5c2c19f6e4472f1e608f633560e18a85560a4e8c (patch)
treefc709cbf4e722bea04037cf92e405b8e9b8cb717
parent64a55151656dd5b92113b08fd7c1214f26d4b2e7 (diff)
downloadpaludis-5c2c19f6e4472f1e608f633560e18a85560a4e8c.tar.gz
paludis-5c2c19f6e4472f1e608f633560e18a85560a4e8c.tar.xz
More extern template work.
Squashed commit of the following: commit 07ec84b0bafc19e2606196263abee60f9ae1d9cb Author: Ciaran McCreesh <ciaran.mccreesh@googlemail.com> Date: Mon Jun 16 10:37:52 2008 +0100 moar
-rw-r--r--paludis/dep_list.cc2
-rw-r--r--paludis/dep_list.hh4
-rw-r--r--paludis/dep_spec.cc9
-rw-r--r--paludis/dep_spec.hh10
-rw-r--r--paludis/dep_tag.cc3
-rw-r--r--paludis/dep_tag.hh21
6 files changed, 49 insertions, 0 deletions
diff --git a/paludis/dep_list.cc b/paludis/dep_list.cc
index 6cc9239..7e78be2 100644
--- a/paludis/dep_list.cc
+++ b/paludis/dep_list.cc
@@ -71,6 +71,8 @@ template class Sequence<std::tr1::function<bool (const PackageID &, const Mask &
template class WrappedForwardIterator<DepList::IteratorTag, DepListEntry>;
template class WrappedForwardIterator<DepList::ConstIteratorTag, const DepListEntry>;
+template class PrivateImplementationPattern<DepList>;
+
#include <paludis/dep_list-sr.cc>
DepListOptions::DepListOptions() :
diff --git a/paludis/dep_list.hh b/paludis/dep_list.hh
index 623f485..4420fa1 100644
--- a/paludis/dep_list.hh
+++ b/paludis/dep_list.hh
@@ -226,6 +226,10 @@ namespace paludis
const PackageDepSpec &, std::tr1::shared_ptr<DependencySpecTree::ConstItem>,
std::tr1::shared_ptr<const DestinationsSet> destinations);
};
+
+#ifdef PALUDIS_HAVE_EXTERN_TEMPLATE
+ extern template class PrivateImplementationPattern<DepList>;
+#endif
}
#endif
diff --git a/paludis/dep_spec.cc b/paludis/dep_spec.cc
index 1714aae..93a5a69 100644
--- a/paludis/dep_spec.cc
+++ b/paludis/dep_spec.cc
@@ -903,3 +903,12 @@ template class WrappedForwardIterator<LabelsDepSpec<DependencyLabelVisitorTypes>
template class Sequence<std::tr1::shared_ptr<const AdditionalPackageDepSpecRequirement> >;
+template class Cloneable<DepSpec>;
+template class PrivateImplementationPattern<ConditionalDepSpec>;
+template class CloneUsingThis<DepSpec, ConditionalDepSpec>;
+template class PrivateImplementationPattern<PartiallyMadePackageDepSpec>;
+template class PrivateImplementationPattern<PackageDepSpec>;
+template class CloneUsingThis<DepSpec, PackageDepSpec>;
+template class PrivateImplementationPattern<DependencyLabelsDepSpec>;
+template class PrivateImplementationPattern<URILabelsDepSpec>;
+
diff --git a/paludis/dep_spec.hh b/paludis/dep_spec.hh
index adb1911..529d099 100644
--- a/paludis/dep_spec.hh
+++ b/paludis/dep_spec.hh
@@ -761,6 +761,16 @@ namespace paludis
virtual std::tr1::shared_ptr<DepSpec> clone() const PALUDIS_ATTRIBUTE((warn_unused_result));
};
+#ifdef PALUDIS_HAVE_EXTERN_TEMPLATE
+ extern template class Cloneable<DepSpec>;
+ extern template class PrivateImplementationPattern<ConditionalDepSpec>;
+ extern template class CloneUsingThis<DepSpec, ConditionalDepSpec>;
+ extern template class PrivateImplementationPattern<PartiallyMadePackageDepSpec>;
+ extern template class PrivateImplementationPattern<PackageDepSpec>;
+ extern template class CloneUsingThis<DepSpec, PackageDepSpec>;
+ extern template class PrivateImplementationPattern<DependencyLabelsDepSpec>;
+ extern template class PrivateImplementationPattern<URILabelsDepSpec>;
+#endif
}
#endif
diff --git a/paludis/dep_tag.cc b/paludis/dep_tag.cc
index d6efe16..1b5b1ce 100644
--- a/paludis/dep_tag.cc
+++ b/paludis/dep_tag.cc
@@ -52,6 +52,9 @@ template class Set<DepTagEntry>;
template class WrappedForwardIterator<Set<DepTagEntry>::ConstIteratorTag, const DepTagEntry>;
template class WrappedOutputIterator<Set<DepTagEntry>::InserterTag, DepTagEntry>;
+template class PrivateImplementationPattern<GeneralSetDepTag>;
+template class PrivateImplementationPattern<DependencyDepTag>;
+
#include <paludis/dep_tag-sr.cc>
namespace
diff --git a/paludis/dep_tag.hh b/paludis/dep_tag.hh
index b056e93..03984b4 100644
--- a/paludis/dep_tag.hh
+++ b/paludis/dep_tag.hh
@@ -361,6 +361,27 @@ namespace paludis
#include <paludis/dep_tag-sr.hh>
+#ifdef PALUDIS_HAVE_EXTERN_TEMPLATE
+ extern template class VirtualConstructor<std::string, std::tr1::shared_ptr<const DepTagCategory> (*) (),
+ virtual_constructor_not_found::ThrowException<NoSuchDepTagCategory> >;
+
+ extern template class ConstAcceptInterface<DepTagVisitorTypes>;
+
+ extern template class ConstAcceptInterfaceVisitsThis<DepTagVisitorTypes, DependencyDepTag>;
+ extern template class ConstAcceptInterfaceVisitsThis<DepTagVisitorTypes, GLSADepTag>;
+ extern template class ConstAcceptInterfaceVisitsThis<DepTagVisitorTypes, GeneralSetDepTag>;
+ extern template class ConstAcceptInterfaceVisitsThis<DepTagVisitorTypes, TargetDepTag>;
+
+ extern template class Visits<const GeneralSetDepTag>;
+ extern template class Visits<const GLSADepTag>;
+ extern template class Visits<const DependencyDepTag>;
+ extern template class Visits<const TargetDepTag>;
+
+ extern template class InstantiationPolicy<DepTagCategoryMaker, instantiation_method::SingletonTag>;
+ extern template class PrivateImplementationPattern<DependencyDepTag>;
+ extern template class PrivateImplementationPattern<GeneralSetDepTag>;
+#endif
+
}
#endif