aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAvatar Ciaran McCreesh <ciaran.mccreesh@googlemail.com> 2010-06-30 11:42:19 +0100
committerAvatar Ciaran McCreesh <ciaran.mccreesh@googlemail.com> 2010-06-30 12:33:02 +0100
commite720af0d20461dfe8e17c3d61d2234b4e00658d1 (patch)
tree561f9ddbbc6fef7d998f5c8c1bd87cf68ab7f163
parent73d0cd4af1cb18c13f697b8486b773ed5c9412d9 (diff)
downloadpaludis-e720af0d20461dfe8e17c3d61d2234b4e00658d1.tar.gz
paludis-e720af0d20461dfe8e17c3d61d2234b4e00658d1.tar.xz
Require working 'extern template' support
Detect compilers that're broken with -O3. Use 'extern template' unconditionally.
-rw-r--r--configure.ac108
-rw-r--r--paludis/about_metadata.hh2
-rw-r--r--paludis/action.hh2
-rw-r--r--paludis/args/args_group.hh4
-rw-r--r--paludis/args/args_handler.hh3
-rw-r--r--paludis/args/args_option.hh2
-rw-r--r--paludis/args/args_section.hh4
-rw-r--r--paludis/broken_linkage_configuration.hh2
-rw-r--r--paludis/buffer_output_manager.hh2
-rw-r--r--paludis/choice.hh2
-rw-r--r--paludis/contents.hh4
-rw-r--r--paludis/dep_label.hh4
-rw-r--r--paludis/dep_list.hh2
-rw-r--r--paludis/dep_spec.hh2
-rw-r--r--paludis/dep_spec_flattener.hh4
-rw-r--r--paludis/dep_tag.hh2
-rw-r--r--paludis/elike_annotations.hh2
-rw-r--r--paludis/environment.hh2
-rw-r--r--paludis/environment_factory.hh4
-rw-r--r--paludis/environments/paludis/output_conf.hh2
-rw-r--r--paludis/file_output_manager.hh2
-rw-r--r--paludis/filter.hh2
-rw-r--r--paludis/filtered_generator.hh2
-rw-r--r--paludis/format_messages_output_manager.hh2
-rw-r--r--paludis/forward_at_finish_output_manager.hh2
-rw-r--r--paludis/fuzzy_finder.hh2
-rw-r--r--paludis/generator.hh2
-rw-r--r--paludis/hook.hh2
-rw-r--r--paludis/install_task.hh4
-rw-r--r--paludis/ipc_output_manager.hh2
-rw-r--r--paludis/metadata_key_holder.hh4
-rw-r--r--paludis/notifier_callback.hh2
-rw-r--r--paludis/output_manager_factory.hh4
-rw-r--r--paludis/output_manager_from_environment.hh2
-rw-r--r--paludis/package_database.hh4
-rw-r--r--paludis/package_id.hh2
-rw-r--r--paludis/paludislike_options_conf.hh2
-rw-r--r--paludis/repositories/accounts/accounts_repository_store.hh4
-rw-r--r--paludis/repositories/e/e_repository_mask_file.hh2
-rw-r--r--paludis/repositories/e/ebuild_flat_metadata_cache.hh4
-rw-r--r--paludis/repositories/e/info_metadata_key.hh2
-rw-r--r--paludis/repositories/e/memoised_hashes.hh2
-rw-r--r--paludis/repositories/e/metadata_xml.hh2
-rw-r--r--paludis/repositories/e/myoptions_requirements_verifier.hh4
-rw-r--r--paludis/repositories/e/xml_things_handle.hh4
-rw-r--r--paludis/repositories/gems/yaml.hh4
-rw-r--r--paludis/repositories/repository/repository_repository.hh2
-rw-r--r--paludis/repositories/repository/repository_repository_store.hh2
-rw-r--r--paludis/repositories/unavailable/unavailable_repository.hh2
-rw-r--r--paludis/repositories/unavailable/unavailable_repository_file.hh2
-rw-r--r--paludis/repositories/unavailable/unavailable_repository_store.hh2
-rw-r--r--paludis/repositories/unwritten/unwritten_repository.hh2
-rw-r--r--paludis/repositories/unwritten/unwritten_repository_file.hh2
-rw-r--r--paludis/repositories/unwritten/unwritten_repository_store.hh4
-rw-r--r--paludis/repository_factory.hh4
-rw-r--r--paludis/resolver/change_by_resolvent.hh2
-rw-r--r--paludis/resolver/constraint.hh2
-rw-r--r--paludis/resolver/decision.hh2
-rw-r--r--paludis/resolver/decisions.hh4
-rw-r--r--paludis/resolver/job_list.hh4
-rw-r--r--paludis/resolver/job_requirements.hh2
-rw-r--r--paludis/resolver/nag.hh2
-rw-r--r--paludis/resolver/reason.hh2
-rw-r--r--paludis/resolver/resolutions_by_resolvent.hh2
-rw-r--r--paludis/resolver/resolvent.hh2
-rw-r--r--paludis/resolver/spec_rewriter.hh2
-rw-r--r--paludis/resolver/strongly_connected_component.hh2
-rw-r--r--paludis/resolver/suggest_restart.hh4
-rw-r--r--paludis/selection.hh2
-rw-r--r--paludis/selection_cache.hh4
-rw-r--r--paludis/selection_handler.hh4
-rw-r--r--paludis/serialise.hh2
-rw-r--r--paludis/spec_tree.hh4
-rw-r--r--paludis/tee_output_manager.hh2
-rw-r--r--paludis/uninstall_list.hh2
-rw-r--r--paludis/user_dep_spec.hh2
-rw-r--r--paludis/util/action_queue.hh4
-rw-r--r--paludis/util/buffer_output_stream.hh2
-rw-r--r--paludis/util/config_file.hh4
-rw-r--r--paludis/util/damerau_levenshtein.hh2
-rw-r--r--paludis/util/dir_iterator.hh4
-rw-r--r--paludis/util/executor.hh4
-rw-r--r--paludis/util/map.hh4
-rw-r--r--paludis/util/set.hh4
-rw-r--r--paludis/util/simple_parser.hh4
-rw-r--r--paludis/util/string_list_stream.hh4
-rw-r--r--paludis/util/tail_output_stream.hh4
-rw-r--r--paludis/util/tee_output_stream.hh4
-rw-r--r--src/clients/cave/command_factory.hh4
89 files changed, 96 insertions, 257 deletions
diff --git a/configure.ac b/configure.ac
index 6e32d42..ed0dc07 100644
--- a/configure.ac
+++ b/configure.ac
@@ -314,9 +314,8 @@ AC_DEFUN([CHECK_CXXFLAG], [
CXXFLAGS="$CXXFLAGS $PALUDIS_CXXFLAGS $1 -Werror"
AC_COMPILE_IFELSE([
#include <string>
-template <typename T_> struct S { };
-extern template struct S<int>;
#include <iostream>
+template <typename T_> struct S { };
int main(int, char **)
{
std::string s("test");
@@ -431,42 +430,7 @@ AC_PREPROC_IFELSE([
PALUDIS_CXXFLAGS_WITHOUT_PEDANTIC=$PALUDIS_CXXFLAGS
-AC_MSG_CHECKING([whether -pedantic works if we use extern template])
-if test "x${cxx_compiler_icc}" = "xyes" ; then
- AC_MSG_RESULT([no, icc doesn't do pedantic])
-else
- if test x$CAN_USE_EXTERN_TEMPLATE = xyes ; then
- save_CXXFLAGS=$CXXFLAGS
- CXXFLAGS="$CXXFLAGS -pedantic"
- AC_COMPILE_IFELSE([
-template <typename T_> struct S { };
-extern template struct S<int>;
- ],
- [AC_MSG_RESULT([yes])
- CHECK_CXXFLAG([-pedantic])],
- [AC_MSG_RESULT([no])])
- else
- CHECK_CXXFLAG([-pedantic])
- fi
- CXXFLAGS=$save_CXXFLAGS
-fi
-
-AC_SUBST([PALUDIS_CXXFLAGS])
-AC_SUBST([PALUDIS_CXXFLAGS_WITHOUT_PEDANTIC])
-AC_SUBST([PALUDIS_CXXFLAGS_NO_WOLD_STYLE_CAST])
-AC_SUBST([PALUDIS_CXXFLAGS_NO_WSHADOW])
-AC_SUBST([PALUDIS_CXXFLAGS_NO_WREDUNDANT_DECLS])
-AC_SUBST([PALUDIS_CXXFLAGS_NO_WEXTRA])
-AC_SUBST([PALUDIS_CXXFLAGS_NO_WUNUSED])
-AC_SUBST([PALUDIS_CXXFLAGS_NO_WWRITE_STRINGS])
-AC_SUBST([PALUDIS_CXXFLAGS_NO_WMISSING_NORETURN])
-
-save_CXXFLAGS="$CXXFLAGS"
-CXXFLAGS="$CXXFLAGS $PALUDIS_CXXFLAGS"
-
-dnl {{{ check whether we can do extern template
-CAN_USE_EXTERN_TEMPLATE=
-AC_MSG_CHECKING([for c++0x 'extern template' support])
+AC_MSG_CHECKING([for 'extern template' support])
AC_COMPILE_IFELSE([
template <typename T_> class S
{
@@ -490,15 +454,43 @@ void f()
t.f();
}
],
- [AC_MSG_RESULT([yes])
- CAN_USE_EXTERN_TEMPLATE=yes
- PALUDIS_CXXFLAGS="${PALUDIS_CXXFLAGS} -DPALUDIS_HAVE_EXTERN_TEMPLATE=1"
- PALUDIS_PC_CFLAGS="${PALUDIS_PC_CFLAGS} -DPALUDIS_HAVE_EXTERN_TEMPLATE=1"
- ],
+ [AC_MSG_RESULT([yes])],
[AC_MSG_RESULT([no, your compiler is weird])
+ AC_MSG_ERROR([your compiler supports 'extern template' in a very broken manner])
])
],
- [AC_MSG_RESULT([no])])
+ [AC_MSG_RESULT([no])
+ AC_MSG_ERROR([your compiler does not support 'extern template'])
+ ])
+
+AC_MSG_CHECKING([whether -pedantic works if we use extern template])
+if test "x${cxx_compiler_icc}" = "xyes" ; then
+ AC_MSG_RESULT([no, icc doesn't do pedantic])
+else
+ save_CXXFLAGS=$CXXFLAGS
+ CXXFLAGS="$CXXFLAGS -pedantic"
+ AC_COMPILE_IFELSE([
+template <typename T_> struct S { };
+extern template struct S<int>;
+ ],
+ [AC_MSG_RESULT([yes])
+ CHECK_CXXFLAG([-pedantic])],
+ [AC_MSG_RESULT([no])])
+ CXXFLAGS=$save_CXXFLAGS
+fi
+
+AC_SUBST([PALUDIS_CXXFLAGS])
+AC_SUBST([PALUDIS_CXXFLAGS_WITHOUT_PEDANTIC])
+AC_SUBST([PALUDIS_CXXFLAGS_NO_WOLD_STYLE_CAST])
+AC_SUBST([PALUDIS_CXXFLAGS_NO_WSHADOW])
+AC_SUBST([PALUDIS_CXXFLAGS_NO_WREDUNDANT_DECLS])
+AC_SUBST([PALUDIS_CXXFLAGS_NO_WEXTRA])
+AC_SUBST([PALUDIS_CXXFLAGS_NO_WUNUSED])
+AC_SUBST([PALUDIS_CXXFLAGS_NO_WWRITE_STRINGS])
+AC_SUBST([PALUDIS_CXXFLAGS_NO_WMISSING_NORETURN])
+
+save_CXXFLAGS="$CXXFLAGS"
+CXXFLAGS="$CXXFLAGS $PALUDIS_CXXFLAGS"
dnl }}}
dnl {{{ check for partial specialisation of template classes
@@ -586,6 +578,34 @@ int main(int, char **)
])
dnl }}}
+dnl {{{ check for -O3 / extern template breakage
+AC_MSG_CHECKING([whether your compiler tries to inline extern template things])
+AC_COMPILE_IFELSE([
+template <typename> struct F;
+template <typename X_> struct T
+{
+ void f();
+};
+
+template <typename X_>
+void T<X_>::f()
+{
+ F<X_>::g();
+}
+
+extern template class T<int>;
+
+int main(int, char **)
+{
+ T<int> f;
+ f.f();
+}
+],
+ [AC_MSG_RESULT([no])],
+ [AC_MSG_RESULT([yes])
+ AC_MSG_ERROR([Your compiler is b0rked (GCC bug 39242? Try -O2 or -fno-inline-functions)])])
+dnl }}}
+
dnl {{{ check for namespace aliasing
AC_MSG_CHECKING([whether your compiler has referencing issues])
AC_COMPILE_IFELSE([
diff --git a/paludis/about_metadata.hh b/paludis/about_metadata.hh
index 3573caa..9ec7237 100644
--- a/paludis/about_metadata.hh
+++ b/paludis/about_metadata.hh
@@ -58,10 +58,8 @@ namespace paludis
void need_keys_added() const;
};
-#ifdef PALUDIS_HAVE_EXTERN_TEMPLATE
extern template class PrivateImplementationPattern<AboutMetadata>;
extern template class InstantiationPolicy<AboutMetadata, instantiation_method::SingletonTag>;
-#endif
}
#endif
diff --git a/paludis/action.hh b/paludis/action.hh
index 32e8db3..6ddc9e5 100644
--- a/paludis/action.hh
+++ b/paludis/action.hh
@@ -641,7 +641,6 @@ namespace paludis
///\}
};
-#ifdef PALUDIS_HAVE_EXTERN_TEMPLATE
extern template class PrivateImplementationPattern<FetchAction>;
extern template class PrivateImplementationPattern<InstallAction>;
extern template class PrivateImplementationPattern<PretendAction>;
@@ -649,7 +648,6 @@ namespace paludis
extern template class PrivateImplementationPattern<UninstallAction>;
extern template class PrivateImplementationPattern<InfoAction>;
extern template class PrivateImplementationPattern<ConfigAction>;
-#endif
}
#endif
diff --git a/paludis/args/args_group.hh b/paludis/args/args_group.hh
index bac968f..c6f25c7 100644
--- a/paludis/args/args_group.hh
+++ b/paludis/args/args_group.hh
@@ -1,7 +1,7 @@
/* vim: set sw=4 sts=4 et foldmethod=syntax : */
/*
- * Copyright (c) 2005, 2006, 2007, 2009 Ciaran McCreesh
+ * Copyright (c) 2005, 2006, 2007, 2009, 2010 Ciaran McCreesh
*
* This file is part of the Paludis package manager. Paludis is free software;
* you can redistribute it and/or modify it under the terms of the GNU General
@@ -124,9 +124,7 @@ namespace paludis
};
}
-#ifdef PALUDIS_HAVE_EXTERN_TEMPLATE
extern template class WrappedForwardIterator<args::ArgsGroup::ConstIteratorTag, args::ArgsOption * const>;
-#endif
}
#endif
diff --git a/paludis/args/args_handler.hh b/paludis/args/args_handler.hh
index af84ef8..046e0b1 100644
--- a/paludis/args/args_handler.hh
+++ b/paludis/args/args_handler.hh
@@ -301,7 +301,6 @@ namespace paludis
std::ostream & operator<< (std::ostream &, const ArgsHandler &) PALUDIS_VISIBLE;
}
-#ifdef PALUDIS_HAVE_EXTERN_TEMPLATE
extern template class WrappedForwardIterator<args::ArgsHandler::ParametersConstIteratorTag, const std::string>;
extern template class WrappedForwardIterator<args::ArgsHandler::UsageLineConstIteratorTag, const std::string>;
extern template class WrappedForwardIterator<args::ArgsHandler::EnvironmentLineConstIteratorTag,
@@ -312,8 +311,6 @@ namespace paludis
extern template class WrappedForwardIterator<args::ArgsHandler::DescriptionLineConstIteratorTag, const std::string>;
extern template class WrappedForwardIterator<args::ArgsHandler::NotesIteratorTag, const std::string>;
extern template class WrappedForwardIterator<args::ArgsHandler::ArgsIteratorTag, std::string>;
-
-#endif
}
#endif
diff --git a/paludis/args/args_option.hh b/paludis/args/args_option.hh
index d14f5be..e58df1d 100644
--- a/paludis/args/args_option.hh
+++ b/paludis/args/args_option.hh
@@ -621,14 +621,12 @@ namespace paludis
};
}
-#ifdef PALUDIS_HAVE_EXTERN_TEMPLATE
extern template class WrappedForwardIterator<args::StringSetArg::ConstIteratorTag, const std::string>;
extern template class WrappedForwardIterator<args::StringSetArg::AllowedArgConstIteratorTag,
const std::pair<std::string, std::string> >;
extern template class WrappedForwardIterator<args::StringSequenceArg::ConstIteratorTag, const std::string>;
extern template class WrappedForwardIterator<args::EnumArg::AllowedArgConstIteratorTag,
const args::AllowedEnumArg>;
-#endif
}
#endif
diff --git a/paludis/args/args_section.hh b/paludis/args/args_section.hh
index 331cf0b..a98a6ce 100644
--- a/paludis/args/args_section.hh
+++ b/paludis/args/args_section.hh
@@ -1,7 +1,7 @@
/* vim: set sw=4 sts=4 et foldmethod=syntax : */
/*
- * Copyright (c) 2009 Ciaran McCreesh
+ * Copyright (c) 2009, 2010 Ciaran McCreesh
*
* This file is part of the Paludis package manager. Paludis is free software;
* you can redistribute it and/or modify it under the terms of the GNU General
@@ -58,10 +58,8 @@ namespace paludis
};
}
-#ifdef PALUDIS_HAVE_EXTERN_TEMPLATE
extern template class PrivateImplementationPattern<args::ArgsSection>;
extern template class WrappedForwardIterator<args::ArgsSection::GroupsConstIteratorTag, const args::ArgsGroup>;
-#endif
}
#endif
diff --git a/paludis/broken_linkage_configuration.hh b/paludis/broken_linkage_configuration.hh
index 97d4d43..219efce 100644
--- a/paludis/broken_linkage_configuration.hh
+++ b/paludis/broken_linkage_configuration.hh
@@ -49,9 +49,7 @@ namespace paludis
bool lib_is_masked(const std::string &) const PALUDIS_ATTRIBUTE((warn_unused_result));
};
-#ifdef PALUDIS_HAVE_EXTERN_TEMPLATE
extern template class WrappedForwardIterator<BrokenLinkageConfiguration::DirsIteratorTag, const FSEntry>;
-#endif
}
#endif
diff --git a/paludis/buffer_output_manager.hh b/paludis/buffer_output_manager.hh
index 6d8f257..c055b20 100644
--- a/paludis/buffer_output_manager.hh
+++ b/paludis/buffer_output_manager.hh
@@ -58,9 +58,7 @@ namespace paludis
PALUDIS_ATTRIBUTE((warn_unused_result));
};
-#ifdef PALUDIS_HAVE_EXTERN_TEMPLATE
extern template class PrivateImplementationPattern<BufferOutputManager>;
-#endif
}
diff --git a/paludis/choice.hh b/paludis/choice.hh
index de8ce29..0ccd566 100644
--- a/paludis/choice.hh
+++ b/paludis/choice.hh
@@ -370,13 +370,11 @@ namespace paludis
///\}
};
-#ifdef PALUDIS_HAVE_EXTERN_TEMPLATE
extern template class PrivateImplementationPattern<Choices>;
extern template class PrivateImplementationPattern<Choice>;
extern template class WrappedForwardIterator<Choices::ConstIteratorTag, const std::tr1::shared_ptr<const Choice> >;
extern template class WrappedForwardIterator<Choice::ConstIteratorTag, const std::tr1::shared_ptr<const ChoiceValue> >;
-#endif
}
#endif
diff --git a/paludis/contents.hh b/paludis/contents.hh
index 672098e..2b8f943 100644
--- a/paludis/contents.hh
+++ b/paludis/contents.hh
@@ -1,7 +1,7 @@
/* vim: set sw=4 sts=4 et foldmethod=syntax : */
/*
- * Copyright (c) 2006, 2007, 2008, 2009 Ciaran McCreesh
+ * Copyright (c) 2006, 2007, 2008, 2009, 2010 Ciaran McCreesh
*
* This file is part of the Paludis package manager. Paludis is free software;
* you can redistribute it and/or modify it under the terms of the GNU General
@@ -230,14 +230,12 @@ namespace paludis
///\}
};
-#ifdef PALUDIS_HAVE_EXTERN_TEMPLATE
extern template class InstantiationPolicy<Contents, instantiation_method::NonCopyableTag>;
extern template class PrivateImplementationPattern<Contents>;
extern template class PrivateImplementationPattern<ContentsEntry>;
extern template class PrivateImplementationPattern<ContentsSymEntry>;
extern template class WrappedForwardIterator<Contents::ConstIteratorTag, const std::tr1::shared_ptr<const ContentsEntry> >;
-#endif
}
#endif
diff --git a/paludis/dep_label.hh b/paludis/dep_label.hh
index 432ce53..31ca7bc 100644
--- a/paludis/dep_label.hh
+++ b/paludis/dep_label.hh
@@ -1,7 +1,7 @@
/* vim: set sw=4 sts=4 et foldmethod=syntax : */
/*
- * Copyright (c) 2007, 2008, 2009 Ciaran McCreesh
+ * Copyright (c) 2007, 2008, 2009, 2010 Ciaran McCreesh
*
* This file is part of the Paludis package manager. Paludis is free software;
* you can redistribute it and/or modify it under the terms of the GNU General
@@ -159,7 +159,6 @@ namespace paludis
typedef T_ Tag;
};
-#ifdef PALUDIS_HAVE_EXTERN_TEMPLATE
extern template class InstantiationPolicy<URILabel, instantiation_method::NonCopyableTag>;
extern template class InstantiationPolicy<DependenciesLabel, instantiation_method::NonCopyableTag>;
@@ -182,7 +181,6 @@ namespace paludis
extern template class WrappedForwardIterator<Sequence<std::tr1::shared_ptr<const DependenciesLabel> >::ConstIteratorTag,
const std::tr1::shared_ptr<const DependenciesLabel> >;
-#endif
}
#endif
diff --git a/paludis/dep_list.hh b/paludis/dep_list.hh
index 5deb9a8..db3376c 100644
--- a/paludis/dep_list.hh
+++ b/paludis/dep_list.hh
@@ -307,12 +307,10 @@ namespace paludis
const PackageDepSpec &, const std::tr1::shared_ptr<const DestinationsSet> & destinations);
};
-#ifdef PALUDIS_HAVE_EXTERN_TEMPLATE
extern template class PrivateImplementationPattern<DepList>;
extern template class WrappedForwardIterator<DepList::IteratorTag, DepListEntry>;
extern template class WrappedForwardIterator<DepList::ConstIteratorTag, const DepListEntry>;
extern template WrappedForwardIterator<DepList::ConstIteratorTag, const DepListEntry>::WrappedForwardIterator(const DepList::Iterator &);
-#endif
}
#endif
diff --git a/paludis/dep_spec.hh b/paludis/dep_spec.hh
index 699e737..8299bdf 100644
--- a/paludis/dep_spec.hh
+++ b/paludis/dep_spec.hh
@@ -970,7 +970,6 @@ namespace paludis
const std::string label() 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>;
@@ -986,7 +985,6 @@ namespace paludis
extern template class WrappedForwardIterator<URILabelsDepSpec::ConstIteratorTag,
const std::tr1::shared_ptr<const URILabel> >;
-#endif
}
#endif
diff --git a/paludis/dep_spec_flattener.hh b/paludis/dep_spec_flattener.hh
index 1bc0890..c1cd5ee 100644
--- a/paludis/dep_spec_flattener.hh
+++ b/paludis/dep_spec_flattener.hh
@@ -1,7 +1,7 @@
/* vim: set sw=4 sts=4 et foldmethod=syntax : */
/*
- * Copyright (c) 2006, 2007, 2008, 2009 Ciaran McCreesh
+ * Copyright (c) 2006, 2007, 2008, 2009, 2010 Ciaran McCreesh
*
* This file is part of the Paludis package manager. Paludis is free software;
* you can redistribute it and/or modify it under the terms of the GNU General
@@ -113,7 +113,6 @@ namespace paludis
///\}
};
-#ifdef PALUDIS_HAVE_EXTERN_TEMPLATE
extern template class DepSpecFlattener<ProvideSpecTree, PackageDepSpec>;
extern template class DepSpecFlattener<PlainTextSpecTree, PlainTextDepSpec>;
extern template class DepSpecFlattener<SetSpecTree, PackageDepSpec>;
@@ -127,7 +126,6 @@ namespace paludis
const std::tr1::shared_ptr<const PackageDepSpec> >;
extern template class WrappedForwardIterator<DepSpecFlattener<SimpleURISpecTree, SimpleURIDepSpec>::ConstIteratorTag,
const std::tr1::shared_ptr<const SimpleURIDepSpec> >;
-#endif
}
#endif
diff --git a/paludis/dep_tag.hh b/paludis/dep_tag.hh
index 3ed9247..280e8ed 100644
--- a/paludis/dep_tag.hh
+++ b/paludis/dep_tag.hh
@@ -349,11 +349,9 @@ namespace paludis
bool operator() (const DepTagEntry &, const DepTagEntry &) const PALUDIS_ATTRIBUTE((warn_unused_result));
};
-#ifdef PALUDIS_HAVE_EXTERN_TEMPLATE
extern template class InstantiationPolicy<DepTagCategoryFactory, instantiation_method::SingletonTag>;
extern template class PrivateImplementationPattern<DependencyDepTag>;
extern template class PrivateImplementationPattern<GeneralSetDepTag>;
-#endif
}
diff --git a/paludis/elike_annotations.hh b/paludis/elike_annotations.hh
index f97fbb2..e10cb5c 100644
--- a/paludis/elike_annotations.hh
+++ b/paludis/elike_annotations.hh
@@ -42,9 +42,7 @@ namespace paludis
virtual MetadataKeyType type() const PALUDIS_ATTRIBUTE((warn_unused_result));
};
-#ifdef PALUDIS_HAVE_EXTERN_TEMPLATE
extern template class PrivateImplementationPattern<ELikeAnnotations>;
-#endif
}
#endif
diff --git a/paludis/environment.hh b/paludis/environment.hh
index b5e363d..64d8922 100644
--- a/paludis/environment.hh
+++ b/paludis/environment.hh
@@ -499,10 +499,8 @@ namespace paludis
///\}
};
-#ifdef PALUDIS_HAVE_EXTERN_TEMPLATE
extern template class PrivateImplementationPattern<CreateOutputManagerForRepositorySyncInfo>;
extern template class PrivateImplementationPattern<CreateOutputManagerForPackageIDActionInfo>;
-#endif
}
diff --git a/paludis/environment_factory.hh b/paludis/environment_factory.hh
index 98526ec..a0ef29c 100644
--- a/paludis/environment_factory.hh
+++ b/paludis/environment_factory.hh
@@ -1,7 +1,7 @@
/* vim: set sw=4 sts=4 et foldmethod=syntax : */
/*
- * Copyright (c) 2008, 2009 Ciaran McCreesh
+ * Copyright (c) 2008, 2009, 2010 Ciaran McCreesh
*
* This file is part of the Paludis package manager. Paludis is free software;
* you can redistribute it and/or modify it under the terms of the GNU General
@@ -90,10 +90,8 @@ namespace paludis
template <typename EnvironmentClass_>
void register_environment(const EnvironmentClass_ * const, EnvironmentFactory * const);
-#ifdef PALUDIS_HAVE_EXTERN_TEMPLATE
extern template class PrivateImplementationPattern<EnvironmentFactory>;
extern template class InstantiationPolicy<EnvironmentFactory, instantiation_method::SingletonTag>;
-#endif
}
#endif
diff --git a/paludis/environments/paludis/output_conf.hh b/paludis/environments/paludis/output_conf.hh
index 1edbb3b..785273c 100644
--- a/paludis/environments/paludis/output_conf.hh
+++ b/paludis/environments/paludis/output_conf.hh
@@ -59,9 +59,7 @@ namespace paludis
};
}
-#ifdef PALUDIS_HAVE_EXTERN_TEMPLATE
extern template class PrivateImplementationPattern<paludis_environment::OutputConf>;
-#endif
}
#endif
diff --git a/paludis/file_output_manager.hh b/paludis/file_output_manager.hh
index 9bb02f1..0d71010 100644
--- a/paludis/file_output_manager.hh
+++ b/paludis/file_output_manager.hh
@@ -62,9 +62,7 @@ namespace paludis
PALUDIS_ATTRIBUTE((warn_unused_result));
};
-#ifdef PALUDIS_HAVE_EXTERN_TEMPLATE
extern template class PrivateImplementationPattern<FileOutputManager>;
-#endif
}
#endif
diff --git a/paludis/filter.hh b/paludis/filter.hh
index 9f882e8..ec6785e 100644
--- a/paludis/filter.hh
+++ b/paludis/filter.hh
@@ -239,7 +239,6 @@ namespace paludis
};
}
-#ifdef PALUDIS_HAVE_EXTERN_TEMPLATE
extern template class PrivateImplementationPattern<Filter>;
extern template class filter::SupportsAction<InstallAction>;
extern template class filter::SupportsAction<UninstallAction>;
@@ -248,7 +247,6 @@ namespace paludis
extern template class filter::SupportsAction<FetchAction>;
extern template class filter::SupportsAction<InfoAction>;
extern template class filter::SupportsAction<PretendFetchAction>;
-#endif
}
#endif
diff --git a/paludis/filtered_generator.hh b/paludis/filtered_generator.hh
index 0558163..ceb28b6 100644
--- a/paludis/filtered_generator.hh
+++ b/paludis/filtered_generator.hh
@@ -71,9 +71,7 @@ namespace paludis
const Filter & filter() const PALUDIS_ATTRIBUTE((warn_unused_result));
};
-#ifdef PALUDIS_HAVE_EXTERN_TEMPLATE
extern template class PrivateImplementationPattern<FilteredGenerator>;
-#endif
}
#endif
diff --git a/paludis/format_messages_output_manager.hh b/paludis/format_messages_output_manager.hh
index 12b78dd..284c0b1 100644
--- a/paludis/format_messages_output_manager.hh
+++ b/paludis/format_messages_output_manager.hh
@@ -69,9 +69,7 @@ namespace paludis
PALUDIS_ATTRIBUTE((warn_unused_result));
};
-#ifdef PALUDIS_HAVE_EXTERN_TEMPLATE
extern template class PrivateImplementationPattern<FormatMessagesOutputManager>;
-#endif
}
#endif
diff --git a/paludis/forward_at_finish_output_manager.hh b/paludis/forward_at_finish_output_manager.hh
index 0c93540..f2ef1c6 100644
--- a/paludis/forward_at_finish_output_manager.hh
+++ b/paludis/forward_at_finish_output_manager.hh
@@ -60,9 +60,7 @@ namespace paludis
PALUDIS_ATTRIBUTE((warn_unused_result));
};
-#ifdef PALUDIS_HAVE_EXTERN_TEMPLATE
extern template class PrivateImplementationPattern<ForwardAtFinishOutputManager>;
-#endif
}
#endif
diff --git a/paludis/fuzzy_finder.hh b/paludis/fuzzy_finder.hh
index 80cc650..d800aaf 100644
--- a/paludis/fuzzy_finder.hh
+++ b/paludis/fuzzy_finder.hh
@@ -95,10 +95,8 @@ namespace paludis
///\}
};
-#ifdef PALUDIS_HAVE_EXTERN_TEMPLATE
extern template class WrappedForwardIterator<FuzzyCandidatesFinder::CandidatesConstIteratorTag, const QualifiedPackageName>;
extern template class WrappedForwardIterator<FuzzyRepositoriesFinder::RepositoriesConstIteratorTag, const RepositoryName>;
-#endif
}
diff --git a/paludis/generator.hh b/paludis/generator.hh
index 2b5dda0..85b09a4 100644
--- a/paludis/generator.hh
+++ b/paludis/generator.hh
@@ -269,9 +269,7 @@ namespace paludis
};
}
-#ifdef PALUDIS_HAVE_EXTERN_TEMPLATE
extern template class PrivateImplementationPattern<Generator>;
-#endif
}
diff --git a/paludis/hook.hh b/paludis/hook.hh
index abcdd96..8e15402 100644
--- a/paludis/hook.hh
+++ b/paludis/hook.hh
@@ -150,9 +150,7 @@ namespace paludis
PALUDIS_ATTRIBUTE((warn_unused_result));
};
-#ifdef PALUDIS_HAVE_EXTERN_TEMPLATE
extern template class WrappedForwardIterator<Hook::ConstIteratorTag, const std::pair<const std::string, std::string> >;
-#endif
}
extern "C" paludis::HookResult PALUDIS_VISIBLE paludis_hook_run(
diff --git a/paludis/install_task.hh b/paludis/install_task.hh
index f0d0287..11172d6 100644
--- a/paludis/install_task.hh
+++ b/paludis/install_task.hh
@@ -1,7 +1,7 @@
/* vim: set sw=4 sts=4 et foldmethod=syntax : */
/*
- * Copyright (c) 2006, 2007, 2008, 2009 Ciaran McCreesh
+ * Copyright (c) 2006, 2007, 2008, 2009, 2010 Ciaran McCreesh
*
* This file is part of the Paludis package manager. Paludis is free software;
* you can redistribute it and/or modify it under the terms of the GNU General
@@ -279,9 +279,7 @@ namespace paludis
std::string serialised_format() const PALUDIS_ATTRIBUTE((warn_unused_result));
};
-#ifdef PALUDIS_HAVE_EXTERN_TEMPLATE
extern template class WrappedForwardIterator<InstallTask::TargetsConstIteratorTag, const std::string>;
-#endif
}
#endif
diff --git a/paludis/ipc_output_manager.hh b/paludis/ipc_output_manager.hh
index d02128f..80afe52 100644
--- a/paludis/ipc_output_manager.hh
+++ b/paludis/ipc_output_manager.hh
@@ -108,11 +108,9 @@ namespace paludis
void construct_standard_if_unconstructed();
};
-#ifdef PALUDIS_HAVE_EXTERN_TEMPLATE
extern template class PrivateImplementationPattern<IPCOutputManager>;
extern template class PrivateImplementationPattern<IPCInputManager>;
extern template class PrivateImplementationPattern<OutputManagerFromIPC>;
-#endif
}
diff --git a/paludis/metadata_key_holder.hh b/paludis/metadata_key_holder.hh
index 44c75b7..c3cf49d 100644
--- a/paludis/metadata_key_holder.hh
+++ b/paludis/metadata_key_holder.hh
@@ -1,7 +1,7 @@
/* vim: set sw=4 sts=4 et foldmethod=syntax : */
/*
- * Copyright (c) 2008, 2009 Ciaran McCreesh
+ * Copyright (c) 2008, 2009, 2010 Ciaran McCreesh
*
* This file is part of the Paludis package manager. Paludis is free software;
* you can redistribute it and/or modify it under the terms of the GNU General
@@ -74,9 +74,7 @@ namespace paludis
///\}
};
-#ifdef PALUDIS_HAVE_EXTERN_TEMPLATE
extern template class WrappedForwardIterator<MetadataKeyHolder::MetadataConstIteratorTag, const std::tr1::shared_ptr<const MetadataKey> >;
-#endif
}
#endif
diff --git a/paludis/notifier_callback.hh b/paludis/notifier_callback.hh
index 83d30fb..eebb953 100644
--- a/paludis/notifier_callback.hh
+++ b/paludis/notifier_callback.hh
@@ -94,9 +94,7 @@ namespace paludis
void remove_now();
};
-#ifdef PALUDIS_HAVE_EXTERN_TEMPLATE
extern template class PrivateImplementationPattern<ScopedNotifierCallback>;
-#endif
}
diff --git a/paludis/output_manager_factory.hh b/paludis/output_manager_factory.hh
index dbbde29..386e4e3 100644
--- a/paludis/output_manager_factory.hh
+++ b/paludis/output_manager_factory.hh
@@ -1,7 +1,7 @@
/* vim: set sw=4 sts=4 et foldmethod=syntax : */
/*
- * Copyright (c) 2009 Ciaran McCreesh
+ * Copyright (c) 2009, 2010 Ciaran McCreesh
*
* This file is part of the Paludis package manager. Paludis is free software;
* you can redistribute it and/or modify it under the terms of the GNU General
@@ -101,11 +101,9 @@ namespace paludis
ConstIterator end_keys() const PALUDIS_ATTRIBUTE((warn_unused_result));
};
-#ifdef PALUDIS_HAVE_EXTERN_TEMPLATE
extern template class PrivateImplementationPattern<OutputManagerFactory>;
extern template class InstantiationPolicy<OutputManagerFactory, instantiation_method::SingletonTag>;
extern template class WrappedForwardIterator<OutputManagerFactory::ConstIteratorTag, const std::string>;
-#endif
}
#endif
diff --git a/paludis/output_manager_from_environment.hh b/paludis/output_manager_from_environment.hh
index e45127b..cbfa1b0 100644
--- a/paludis/output_manager_from_environment.hh
+++ b/paludis/output_manager_from_environment.hh
@@ -50,9 +50,7 @@ namespace paludis
void construct_standard_if_unconstructed();
};
-#ifdef PALUDIS_HAVE_EXTERN_TEMPLATE
extern template class PrivateImplementationPattern<OutputManagerFromEnvironment>;
-#endif
}
#endif
diff --git a/paludis/package_database.hh b/paludis/package_database.hh
index 719c0b0..147d83c 100644
--- a/paludis/package_database.hh
+++ b/paludis/package_database.hh
@@ -1,7 +1,7 @@
/* vim: set sw=4 sts=4 et foldmethod=syntax : */
/*
- * Copyright (c) 2005, 2006, 2007, 2008, 2009 Ciaran McCreesh
+ * Copyright (c) 2005, 2006, 2007, 2008, 2009, 2010 Ciaran McCreesh
*
* This file is part of the Paludis package manager. Paludis is free software;
* you can redistribute it and/or modify it under the terms of the GNU General
@@ -305,10 +305,8 @@ namespace paludis
///\}
};
-#ifdef PALUDIS_HAVE_EXTERN_TEMPLATE
extern template class WrappedForwardIterator<PackageDatabase::RepositoryConstIteratorTag, const std::tr1::shared_ptr<Repository> >;
extern template class WrappedForwardIterator<AmbiguousPackageNameError::OptionsConstIteratorTag, const std::string>;
-#endif
}
#endif
diff --git a/paludis/package_id.hh b/paludis/package_id.hh
index ee25f11..4131b44 100644
--- a/paludis/package_id.hh
+++ b/paludis/package_id.hh
@@ -497,10 +497,8 @@ namespace paludis
const std::tr1::shared_ptr<const PackageID> &) const;
};
-#ifdef PALUDIS_HAVE_EXTERN_TEMPLATE
extern template class WrappedForwardIterator<PackageID::MasksConstIteratorTag, const std::tr1::shared_ptr<const Mask> >;
extern template class WrappedForwardIterator<PackageID::OverriddenMasksConstIteratorTag, const std::tr1::shared_ptr<const OverriddenMask> >;
-#endif
}
#endif
diff --git a/paludis/paludislike_options_conf.hh b/paludis/paludislike_options_conf.hh
index 1dc822d..9712021 100644
--- a/paludis/paludislike_options_conf.hh
+++ b/paludis/paludislike_options_conf.hh
@@ -107,9 +107,7 @@ namespace paludis
PALUDIS_ATTRIBUTE((warn_unused_result));
};
-#ifdef PALUDIS_HAVE_EXTERN_TEMPLATE
extern template class PrivateImplementationPattern<PaludisLikeOptionsConf>;
-#endif
}
diff --git a/paludis/repositories/accounts/accounts_repository_store.hh b/paludis/repositories/accounts/accounts_repository_store.hh
index 45de761..c0109e8 100644
--- a/paludis/repositories/accounts/accounts_repository_store.hh
+++ b/paludis/repositories/accounts/accounts_repository_store.hh
@@ -1,7 +1,7 @@
/* vim: set sw=4 sts=4 et foldmethod=syntax : */
/*
- * Copyright (c) 2009 Ciaran McCreesh
+ * Copyright (c) 2009, 2010 Ciaran McCreesh
*
* This file is part of the Paludis package manager. Paludis is free software;
* you can redistribute it and/or modify it under the terms of the GNU General
@@ -94,9 +94,7 @@ namespace paludis
};
}
-#ifdef PALUDIS_HAVE_EXTERN_TEMPLATE
extern template class PrivateImplementationPattern<accounts_repository::AccountsRepositoryStore>;
-#endif
}
#endif
diff --git a/paludis/repositories/e/e_repository_mask_file.hh b/paludis/repositories/e/e_repository_mask_file.hh
index 106405f..dc88f5b 100644
--- a/paludis/repositories/e/e_repository_mask_file.hh
+++ b/paludis/repositories/e/e_repository_mask_file.hh
@@ -63,10 +63,8 @@ namespace paludis
};
}
-#ifdef PALUDIS_HAVE_EXTERN_TEMPLATE
extern template class WrappedForwardIterator<erepository::MaskFile::ConstIteratorTag,
const std::pair<const std::string, std::tr1::shared_ptr<const RepositoryMaskInfo> > >;
-#endif
}
#endif
diff --git a/paludis/repositories/e/ebuild_flat_metadata_cache.hh b/paludis/repositories/e/ebuild_flat_metadata_cache.hh
index 7fb1a2f..6f53d07 100644
--- a/paludis/repositories/e/ebuild_flat_metadata_cache.hh
+++ b/paludis/repositories/e/ebuild_flat_metadata_cache.hh
@@ -1,7 +1,7 @@
/* vim: set sw=4 sts=4 et foldmethod=syntax : */
/*
- * Copyright (c) 2006, 2007, 2008, 2009 Ciaran McCreesh
+ * Copyright (c) 2006, 2007, 2008, 2009, 2010 Ciaran McCreesh
*
* This file is part of the Paludis package manager. Paludis is free software;
* you can redistribute it and/or modify it under the terms of the GNU General
@@ -62,9 +62,7 @@ namespace paludis
};
}
-#ifdef PALUDIS_HAVE_EXTERN_TEMPLATE
extern template class PrivateImplementationPattern<erepository::EbuildFlatMetadataCache>;
-#endif
}
#endif
diff --git a/paludis/repositories/e/info_metadata_key.hh b/paludis/repositories/e/info_metadata_key.hh
index be1495d..3cdc10a 100644
--- a/paludis/repositories/e/info_metadata_key.hh
+++ b/paludis/repositories/e/info_metadata_key.hh
@@ -54,10 +54,8 @@ namespace paludis
};
}
-#ifdef PALUDIS_HAVE_EXTERN_TEMPLATE
extern template class PrivateImplementationPattern<erepository::InfoPkgsMetadataKey>;
extern template class PrivateImplementationPattern<erepository::InfoVarsMetadataKey>;
-#endif
}
#endif
diff --git a/paludis/repositories/e/memoised_hashes.hh b/paludis/repositories/e/memoised_hashes.hh
index 7174316..c18124d 100644
--- a/paludis/repositories/e/memoised_hashes.hh
+++ b/paludis/repositories/e/memoised_hashes.hh
@@ -44,10 +44,8 @@ namespace paludis
~MemoisedHashes();
};
}
-#ifdef PALUDIS_HAVE_EXTERN_TEMPLATE
extern template class PrivateImplementationPattern<erepository::MemoisedHashes>;
extern template class InstantiationPolicy<erepository::MemoisedHashes, instantiation_method::SingletonTag>;
-#endif
}
#endif
diff --git a/paludis/repositories/e/metadata_xml.hh b/paludis/repositories/e/metadata_xml.hh
index 5c6980e..4ab335c 100644
--- a/paludis/repositories/e/metadata_xml.hh
+++ b/paludis/repositories/e/metadata_xml.hh
@@ -65,10 +65,8 @@ namespace paludis
};
}
-#ifdef PALUDIS_HAVE_EXTERN_TEMPLATE
extern template class PrivateImplementationPattern<erepository::MetadataXMLPool>;
extern template class InstantiationPolicy<erepository::MetadataXMLPool, instantiation_method::SingletonTag>;
-#endif
}
#endif
diff --git a/paludis/repositories/e/myoptions_requirements_verifier.hh b/paludis/repositories/e/myoptions_requirements_verifier.hh
index b92fb2c..612a39a 100644
--- a/paludis/repositories/e/myoptions_requirements_verifier.hh
+++ b/paludis/repositories/e/myoptions_requirements_verifier.hh
@@ -1,7 +1,7 @@
/* vim: set sw=4 sts=4 et foldmethod=syntax : */
/*
- * Copyright (c) 2008 Ciaran McCreesh
+ * Copyright (c) 2008, 2010 Ciaran McCreesh
*
* This file is part of the Paludis package manager. Paludis is free software;
* you can redistribute it and/or modify it under the terms of the GNU General
@@ -52,9 +52,7 @@ namespace paludis
};
}
-#ifdef PALUDIS_HAVE_EXTERN_TEMPLATE
extern template class PrivateImplementationPattern<erepository::MyOptionsRequirementsVerifier>;
-#endif
}
#endif
diff --git a/paludis/repositories/e/xml_things_handle.hh b/paludis/repositories/e/xml_things_handle.hh
index 5d267f9..f77e461 100644
--- a/paludis/repositories/e/xml_things_handle.hh
+++ b/paludis/repositories/e/xml_things_handle.hh
@@ -1,7 +1,7 @@
/* vim: set sw=4 sts=4 et foldmethod=syntax : */
/*
- * Copyright (c) 2008 Ciaran McCreesh
+ * Copyright (c) 2008, 2010 Ciaran McCreesh
*
* This file is part of the Paludis package manager. Paludis is free software;
* you can redistribute it and/or modify it under the terms of the GNU General
@@ -51,10 +51,8 @@ namespace paludis
};
}
-#ifdef PALUDIS_HAVE_EXTERN_TEMPLATE
extern template class PrivateImplementationPattern<erepository::XMLThingsHandle>;
extern template class InstantiationPolicy<erepository::XMLThingsHandle, instantiation_method::SingletonTag>;
-#endif
}
#endif
diff --git a/paludis/repositories/gems/yaml.hh b/paludis/repositories/gems/yaml.hh
index 8ca1299..9ea6093 100644
--- a/paludis/repositories/gems/yaml.hh
+++ b/paludis/repositories/gems/yaml.hh
@@ -1,7 +1,7 @@
/* vim: set sw=4 sts=4 et foldmethod=syntax : */
/*
- * Copyright (c) 2007, 2008, 2009 Ciaran McCreesh
+ * Copyright (c) 2007, 2008, 2009, 2010 Ciaran McCreesh
*
* This file is part of the Paludis package manager. Paludis is free software;
* you can redistribute it and/or modify it under the terms of the GNU General
@@ -234,10 +234,8 @@ namespace paludis
};
}
-#ifdef PALUDIS_HAVE_EXTERN_TEMPLATE
extern template class WrappedForwardIterator<yaml::MapNode::ConstIteratorTag, const std::pair<const yaml::Node *, const yaml::Node *> >;
extern template class WrappedForwardIterator<yaml::SequenceNode::ConstIteratorTag, const yaml::Node * const>;
-#endif
}
diff --git a/paludis/repositories/repository/repository_repository.hh b/paludis/repositories/repository/repository_repository.hh
index f5523b1..f7edf92 100644
--- a/paludis/repositories/repository/repository_repository.hh
+++ b/paludis/repositories/repository/repository_repository.hh
@@ -137,9 +137,7 @@ namespace paludis
};
}
-#ifdef PALUDIS_HAVE_EXTERN_TEMPLATE
extern template class PrivateImplementationPattern<repository_repository::RepositoryRepository>;
-#endif
}
#endif
diff --git a/paludis/repositories/repository/repository_repository_store.hh b/paludis/repositories/repository/repository_repository_store.hh
index 1a847c6..9ddaa4e 100644
--- a/paludis/repositories/repository/repository_repository_store.hh
+++ b/paludis/repositories/repository/repository_repository_store.hh
@@ -65,9 +65,7 @@ namespace paludis
};
}
-#ifdef PALUDIS_HAVE_EXTERN_TEMPLATE
extern template class PrivateImplementationPattern<repository_repository::RepositoryRepositoryStore>;
-#endif
}
#endif
diff --git a/paludis/repositories/unavailable/unavailable_repository.hh b/paludis/repositories/unavailable/unavailable_repository.hh
index 7d80146..d597f38 100644
--- a/paludis/repositories/unavailable/unavailable_repository.hh
+++ b/paludis/repositories/unavailable/unavailable_repository.hh
@@ -125,9 +125,7 @@ namespace paludis
};
}
-#ifdef PALUDIS_HAVE_EXTERN_TEMPLATE
extern template class PrivateImplementationPattern<unavailable_repository::UnavailableRepository>;
-#endif
}
#endif
diff --git a/paludis/repositories/unavailable/unavailable_repository_file.hh b/paludis/repositories/unavailable/unavailable_repository_file.hh
index a8841d9..e013efe 100644
--- a/paludis/repositories/unavailable/unavailable_repository_file.hh
+++ b/paludis/repositories/unavailable/unavailable_repository_file.hh
@@ -54,9 +54,7 @@ namespace paludis
};
}
-#ifdef PALUDIS_HAVE_EXTERN_TEMPLATE
extern template class PrivateImplementationPattern<unavailable_repository::UnavailableRepositoryFile>;
-#endif
}
#endif
diff --git a/paludis/repositories/unavailable/unavailable_repository_store.hh b/paludis/repositories/unavailable/unavailable_repository_store.hh
index 1f78809..665932c 100644
--- a/paludis/repositories/unavailable/unavailable_repository_store.hh
+++ b/paludis/repositories/unavailable/unavailable_repository_store.hh
@@ -66,9 +66,7 @@ namespace paludis
};
}
-#ifdef PALUDIS_HAVE_EXTERN_TEMPLATE
extern template class PrivateImplementationPattern<unavailable_repository::UnavailableRepositoryStore>;
-#endif
}
#endif
diff --git a/paludis/repositories/unwritten/unwritten_repository.hh b/paludis/repositories/unwritten/unwritten_repository.hh
index b4ee89a..2ff2766 100644
--- a/paludis/repositories/unwritten/unwritten_repository.hh
+++ b/paludis/repositories/unwritten/unwritten_repository.hh
@@ -124,9 +124,7 @@ namespace paludis
};
}
-#ifdef PALUDIS_HAVE_EXTERN_TEMPLATE
extern template class PrivateImplementationPattern<unwritten_repository::UnwrittenRepository>;
-#endif
}
#endif
diff --git a/paludis/repositories/unwritten/unwritten_repository_file.hh b/paludis/repositories/unwritten/unwritten_repository_file.hh
index d243e9b..18e579b 100644
--- a/paludis/repositories/unwritten/unwritten_repository_file.hh
+++ b/paludis/repositories/unwritten/unwritten_repository_file.hh
@@ -78,9 +78,7 @@ namespace paludis
};
}
-#ifdef PALUDIS_HAVE_EXTERN_TEMPLATE
extern template class PrivateImplementationPattern<unwritten_repository::UnwrittenRepositoryFile>;
-#endif
}
#endif
diff --git a/paludis/repositories/unwritten/unwritten_repository_store.hh b/paludis/repositories/unwritten/unwritten_repository_store.hh
index eb0d2c9..775c2e2 100644
--- a/paludis/repositories/unwritten/unwritten_repository_store.hh
+++ b/paludis/repositories/unwritten/unwritten_repository_store.hh
@@ -1,7 +1,7 @@
/* vim: set sw=4 sts=4 et foldmethod=syntax : */
/*
- * Copyright (c) 2008 Ciaran McCreesh
+ * Copyright (c) 2008, 2010 Ciaran McCreesh
*
* This file is part of the Paludis package manager. Paludis is free software;
* you can redistribute it and/or modify it under the terms of the GNU General
@@ -67,9 +67,7 @@ namespace paludis
};
}
-#ifdef PALUDIS_HAVE_EXTERN_TEMPLATE
extern template class PrivateImplementationPattern<unwritten_repository::UnwrittenRepositoryStore>;
-#endif
}
diff --git a/paludis/repository_factory.hh b/paludis/repository_factory.hh
index deda7f6..4eb3814 100644
--- a/paludis/repository_factory.hh
+++ b/paludis/repository_factory.hh
@@ -1,7 +1,7 @@
/* vim: set sw=4 sts=4 et foldmethod=syntax : */
/*
- * Copyright (c) 2008, 2009 Ciaran McCreesh
+ * Copyright (c) 2008, 2009, 2010 Ciaran McCreesh
*
* This file is part of the Paludis package manager. Paludis is free software;
* you can redistribute it and/or modify it under the terms of the GNU General
@@ -156,11 +156,9 @@ namespace paludis
template <typename RepositoryClass_>
void register_repositories(const RepositoryClass_ * const, RepositoryFactory * const);
-#ifdef PALUDIS_HAVE_EXTERN_TEMPLATE
extern template class PrivateImplementationPattern<RepositoryFactory>;
extern template class InstantiationPolicy<RepositoryFactory, instantiation_method::SingletonTag>;
extern template class WrappedForwardIterator<RepositoryFactory::ConstIteratorTag, const std::string>;
-#endif
}
#endif
diff --git a/paludis/resolver/change_by_resolvent.hh b/paludis/resolver/change_by_resolvent.hh
index 8a1119c..7ff528c 100644
--- a/paludis/resolver/change_by_resolvent.hh
+++ b/paludis/resolver/change_by_resolvent.hh
@@ -48,10 +48,8 @@ namespace paludis
};
}
-#ifdef PALUDIS_HAVE_EXTERN_TEMPLATE
extern template class Sequence<resolver::ChangeByResolvent>;
extern template class WrappedForwardIterator<Sequence<resolver::ChangeByResolvent>::ConstIteratorTag, const resolver::ChangeByResolvent>;
-#endif
}
#endif
diff --git a/paludis/resolver/constraint.hh b/paludis/resolver/constraint.hh
index c6b99cf..6d8a7e9 100644
--- a/paludis/resolver/constraint.hh
+++ b/paludis/resolver/constraint.hh
@@ -87,11 +87,9 @@ namespace paludis
};
}
-#ifdef PALUDIS_HAVE_EXTERN_TEMPLATE
extern template class PrivateImplementationPattern<resolver::Constraints>;
extern template class WrappedForwardIterator<resolver::Constraints::ConstIteratorTag,
const std::tr1::shared_ptr<const resolver::Constraint> >;
-#endif
}
#endif
diff --git a/paludis/resolver/decision.hh b/paludis/resolver/decision.hh
index 38c1328..6a386c1 100644
--- a/paludis/resolver/decision.hh
+++ b/paludis/resolver/decision.hh
@@ -265,14 +265,12 @@ namespace paludis
};
}
-#ifdef PALUDIS_HAVE_EXTERN_TEMPLATE
extern template class PrivateImplementationPattern<resolver::NothingNoChangeDecision>;
extern template class PrivateImplementationPattern<resolver::ExistingNoChangeDecision>;
extern template class PrivateImplementationPattern<resolver::ChangesToMakeDecision>;
extern template class PrivateImplementationPattern<resolver::UnableToMakeDecision>;
extern template class PrivateImplementationPattern<resolver::RemoveDecision>;
extern template class PrivateImplementationPattern<resolver::BreakDecision>;
-#endif
}
diff --git a/paludis/resolver/decisions.hh b/paludis/resolver/decisions.hh
index 939abd7..406c01c 100644
--- a/paludis/resolver/decisions.hh
+++ b/paludis/resolver/decisions.hh
@@ -74,16 +74,13 @@ namespace paludis
static const std::tr1::shared_ptr<Decisions> deserialise(Deserialisation & d) PALUDIS_ATTRIBUTE((warn_unused_result));
};
-#ifdef PALUDIS_HAVE_EXTERN_TEMPLATE
extern template class Decisions<UnableToMakeDecision>;
extern template class Decisions<ChangesToMakeDecision>;
extern template class Decisions<ChangeOrRemoveDecision>;
extern template class Decisions<ConfirmableDecision>;
extern template class Decisions<ChangeOrRemoveDecision, std::tr1::shared_ptr<const OrdererNotes> >;
-#endif
}
-#ifdef PALUDIS_HAVE_EXTERN_TEMPLATE
extern template class WrappedForwardIterator<resolver::Decisions<resolver::UnableToMakeDecision>::ConstIteratorTag,
const std::tr1::shared_ptr<const resolver::UnableToMakeDecision> >;
extern template class WrappedForwardIterator<resolver::Decisions<resolver::ChangesToMakeDecision>::ConstIteratorTag,
@@ -97,7 +94,6 @@ namespace paludis
const std::pair<
std::tr1::shared_ptr<const resolver::ChangeOrRemoveDecision>,
std::tr1::shared_ptr<const resolver::OrdererNotes> > >;
-#endif
}
#endif
diff --git a/paludis/resolver/job_list.hh b/paludis/resolver/job_list.hh
index a2bc464..3765719 100644
--- a/paludis/resolver/job_list.hh
+++ b/paludis/resolver/job_list.hh
@@ -59,18 +59,14 @@ namespace paludis
void serialise(Serialiser &) const;
};
-#ifdef PALUDIS_HAVE_EXTERN_TEMPLATE
extern template class JobList<PretendJob>;
extern template class JobList<ExecuteJob>;
-#endif
}
-#ifdef PALUDIS_HAVE_EXTERN_TEMPLATE
extern template class WrappedForwardIterator<resolver::JobListConstIteratorTag<resolver::PretendJob>,
const std::tr1::shared_ptr<resolver::PretendJob> >;
extern template class WrappedForwardIterator<resolver::JobListConstIteratorTag<resolver::ExecuteJob>,
const std::tr1::shared_ptr<resolver::ExecuteJob> >;
-#endif
}
#endif
diff --git a/paludis/resolver/job_requirements.hh b/paludis/resolver/job_requirements.hh
index cd31777..114f051 100644
--- a/paludis/resolver/job_requirements.hh
+++ b/paludis/resolver/job_requirements.hh
@@ -48,10 +48,8 @@ namespace paludis
};
}
-#ifdef PALUDIS_HAVE_EXTERN_TEMPLATE
extern template class Sequence<resolver::JobRequirement>;
extern template class WrappedForwardIterator<Sequence<resolver::JobRequirement>::ConstIteratorTag, const resolver::JobRequirement>;
-#endif
}
#endif
diff --git a/paludis/resolver/nag.hh b/paludis/resolver/nag.hh
index 714a553..9a80039 100644
--- a/paludis/resolver/nag.hh
+++ b/paludis/resolver/nag.hh
@@ -99,11 +99,9 @@ namespace paludis
};
}
-#ifdef PALUDIS_HAVE_EXTERN_TEMPLATE
extern template class WrappedForwardIterator<resolver::NAG::EdgesFromConstIteratorTag,
const std::pair<const resolver::NAGIndex, resolver::NAGEdgeProperties> >;
extern template class WrappedForwardIterator<resolver::NAG::NodesConstIteratorTag, const resolver::NAGIndex>;
-#endif
}
#endif
diff --git a/paludis/resolver/reason.hh b/paludis/resolver/reason.hh
index b041b83..759505d 100644
--- a/paludis/resolver/reason.hh
+++ b/paludis/resolver/reason.hh
@@ -157,12 +157,10 @@ namespace paludis
};
}
-#ifdef PALUDIS_HAVE_EXTERN_TEMPLATE
extern template class PrivateImplementationPattern<resolver::DependencyReason>;
extern template class PrivateImplementationPattern<resolver::DependentReason>;
extern template class PrivateImplementationPattern<resolver::WasUsedByReason>;
extern template class PrivateImplementationPattern<resolver::SetReason>;
-#endif
}
diff --git a/paludis/resolver/resolutions_by_resolvent.hh b/paludis/resolver/resolutions_by_resolvent.hh
index cdb6dc6..98f4b26 100644
--- a/paludis/resolver/resolutions_by_resolvent.hh
+++ b/paludis/resolver/resolutions_by_resolvent.hh
@@ -54,10 +54,8 @@ namespace paludis
};
}
-#ifdef PALUDIS_HAVE_EXTERN_TEMPLATE
extern template class WrappedForwardIterator<resolver::ResolutionsByResolvent::ConstIteratorTag,
const std::tr1::shared_ptr<resolver::Resolution> >;
-#endif
}
#endif
diff --git a/paludis/resolver/resolvent.hh b/paludis/resolver/resolvent.hh
index 0ab218c..1c98620 100644
--- a/paludis/resolver/resolvent.hh
+++ b/paludis/resolver/resolvent.hh
@@ -67,10 +67,8 @@ namespace paludis
};
}
-#ifdef PALUDIS_HAVE_EXTERN_TEMPLATE
extern template class Sequence<resolver::Resolvent>;
extern template class WrappedForwardIterator<Sequence<resolver::Resolvent>::ConstIteratorTag, const resolver::Resolvent>;
-#endif
}
#endif
diff --git a/paludis/resolver/spec_rewriter.hh b/paludis/resolver/spec_rewriter.hh
index df0f531..749f658 100644
--- a/paludis/resolver/spec_rewriter.hh
+++ b/paludis/resolver/spec_rewriter.hh
@@ -63,9 +63,7 @@ namespace paludis
};
}
-#ifdef PALUDIS_HAVE_EXTERN_TEMPLATE
extern template class PrivateImplementationPattern<resolver::SpecRewriter>;
-#endif
}
diff --git a/paludis/resolver/strongly_connected_component.hh b/paludis/resolver/strongly_connected_component.hh
index 4533930..9edca2f 100644
--- a/paludis/resolver/strongly_connected_component.hh
+++ b/paludis/resolver/strongly_connected_component.hh
@@ -47,14 +47,12 @@ namespace paludis
};
}
-#ifdef PALUDIS_HAVE_EXTERN_TEMPLATE
extern template class Set<resolver::NAGIndex>;
extern template class WrappedForwardIterator<Set<resolver::NAGIndex>::ConstIteratorTag, const resolver::NAGIndex>;
extern template class WrappedOutputIterator<Set<resolver::NAGIndex>::InserterTag, resolver::NAGIndex>;
extern template class Sequence<resolver::StronglyConnectedComponent>;
extern template class WrappedForwardIterator<Sequence<resolver::StronglyConnectedComponent>::ConstIteratorTag, const resolver::StronglyConnectedComponent>;
-#endif
}
#endif
diff --git a/paludis/resolver/suggest_restart.hh b/paludis/resolver/suggest_restart.hh
index 8a5315c..a261a04 100644
--- a/paludis/resolver/suggest_restart.hh
+++ b/paludis/resolver/suggest_restart.hh
@@ -1,7 +1,7 @@
/* vim: set sw=4 sts=4 et foldmethod=syntax : */
/*
- * Copyright (c) 2009 Ciaran McCreesh
+ * Copyright (c) 2009, 2010 Ciaran McCreesh
*
* This file is part of the Paludis package manager. Paludis is free software;
* you can redistribute it and/or modify it under the terms of the GNU General
@@ -54,9 +54,7 @@ namespace paludis
};
}
-#ifdef PALUDIS_HAVE_EXTERN_TEMPLATE
extern template class PrivateImplementationPattern<resolver::SuggestRestart>;
-#endif
}
#endif
diff --git a/paludis/selection.hh b/paludis/selection.hh
index fd13699..9f874b3 100644
--- a/paludis/selection.hh
+++ b/paludis/selection.hh
@@ -234,9 +234,7 @@ namespace paludis
};
}
-#ifdef PALUDIS_HAVE_EXTERN_TEMPLATE
extern template class PrivateImplementationPattern<Selection>;
-#endif
}
#endif
diff --git a/paludis/selection_cache.hh b/paludis/selection_cache.hh
index a4db1b4..178dfe6 100644
--- a/paludis/selection_cache.hh
+++ b/paludis/selection_cache.hh
@@ -1,7 +1,7 @@
/* vim: set sw=4 sts=4 et foldmethod=syntax : */
/*
- * Copyright (c) 2009 Ciaran McCreesh
+ * Copyright (c) 2009, 2010 Ciaran McCreesh
*
* This file is part of the Paludis package manager. Paludis is free software;
* you can redistribute it and/or modify it under the terms of the GNU General
@@ -49,10 +49,8 @@ namespace paludis
~ScopedSelectionCache();
};
-#ifdef PALUDIS_HAVE_EXTERN_TEMPLATE
extern template class PrivateImplementationPattern<SelectionCache>;
extern template class PrivateImplementationPattern<ScopedSelectionCache>;
-#endif
}
#endif
diff --git a/paludis/selection_handler.hh b/paludis/selection_handler.hh
index 08ed6bc..401be62 100644
--- a/paludis/selection_handler.hh
+++ b/paludis/selection_handler.hh
@@ -1,7 +1,7 @@
/* vim: set sw=4 sts=4 et foldmethod=syntax : */
/*
- * Copyright (c) 2008 Ciaran McCreesh
+ * Copyright (c) 2008, 2010 Ciaran McCreesh
* Copyright (c) 2008 David Leverton
*
* This file is part of the Paludis package manager. Paludis is free software;
@@ -51,9 +51,7 @@ namespace paludis
PALUDIS_ATTRIBUTE((warn_unused_result)) = 0;
};
-#ifdef PALUDIS_HAVE_EXTERN_TEMPLATE
extern template class InstantiationPolicy<SelectionHandler, instantiation_method::NonCopyableTag>;
-#endif
}
#endif
diff --git a/paludis/serialise.hh b/paludis/serialise.hh
index c0f2a92..81c3e7a 100644
--- a/paludis/serialise.hh
+++ b/paludis/serialise.hh
@@ -147,11 +147,9 @@ namespace paludis
const std::string &,
const std::string &) PALUDIS_VISIBLE PALUDIS_ATTRIBUTE((warn_unused_result));
-#ifdef PALUDIS_HAVE_EXTERN_TEMPLATE
extern template class PrivateImplementationPattern<Deserialiser>;
extern template class PrivateImplementationPattern<Deserialisation>;
extern template class PrivateImplementationPattern<Deserialisator>;
-#endif
}
#endif
diff --git a/paludis/spec_tree.hh b/paludis/spec_tree.hh
index a83b0ce..2ad93ae 100644
--- a/paludis/spec_tree.hh
+++ b/paludis/spec_tree.hh
@@ -1,7 +1,7 @@
/* vim: set sw=4 sts=4 et foldmethod=syntax : */
/*
- * Copyright (c) 2008, 2009 Ciaran McCreesh
+ * Copyright (c) 2008, 2009, 2010 Ciaran McCreesh
*
* This file is part of the Paludis package manager. Paludis is free software;
* you can redistribute it and/or modify it under the terms of the GNU General
@@ -207,7 +207,6 @@ namespace paludis
const std::tr1::shared_ptr<typename InnerNodeType<RootNode_>::Type> _root;
};
-#ifdef PALUDIS_HAVE_EXTERN_TEMPLATE
extern template class WrappedForwardIterator<spec_tree_internals::BasicInnerNode<GenericSpecTree>::ConstIteratorTag,
const std::tr1::shared_ptr<const spec_tree_internals::BasicNode<GenericSpecTree> > >;
extern template class WrappedForwardIterator<spec_tree_internals::BasicInnerNode<DependencySpecTree>::ConstIteratorTag,
@@ -224,7 +223,6 @@ namespace paludis
const std::tr1::shared_ptr<const spec_tree_internals::BasicNode<FetchableURISpecTree> > >;
extern template class WrappedForwardIterator<spec_tree_internals::BasicInnerNode<LicenseSpecTree>::ConstIteratorTag,
const std::tr1::shared_ptr<const spec_tree_internals::BasicNode<LicenseSpecTree> > >;
-#endif
}
diff --git a/paludis/tee_output_manager.hh b/paludis/tee_output_manager.hh
index 776d689..d9385a4 100644
--- a/paludis/tee_output_manager.hh
+++ b/paludis/tee_output_manager.hh
@@ -60,9 +60,7 @@ namespace paludis
PALUDIS_ATTRIBUTE((warn_unused_result));
};
-#ifdef PALUDIS_HAVE_EXTERN_TEMPLATE
extern template class PrivateImplementationPattern<TeeOutputManager>;
-#endif
}
#endif
diff --git a/paludis/uninstall_list.hh b/paludis/uninstall_list.hh
index 1883652..b17558b 100644
--- a/paludis/uninstall_list.hh
+++ b/paludis/uninstall_list.hh
@@ -155,9 +155,7 @@ namespace paludis
///\}
};
-#ifdef PALUDIS_HAVE_EXTERN_TEMPLATE
extern template class WrappedForwardIterator<UninstallList::UninstallListTag, const UninstallListEntry>;
-#endif
}
#endif
diff --git a/paludis/user_dep_spec.hh b/paludis/user_dep_spec.hh
index 5ff57fd..b70a2e6 100644
--- a/paludis/user_dep_spec.hh
+++ b/paludis/user_dep_spec.hh
@@ -83,9 +83,7 @@ namespace paludis
virtual const std::string as_raw_string() const PALUDIS_ATTRIBUTE((warn_unused_result));
};
-#ifdef PALUDIS_HAVE_EXTERN_TEMPLATE
extern template class PrivateImplementationPattern<UserKeyRequirement>;
-#endif
}
#endif
diff --git a/paludis/util/action_queue.hh b/paludis/util/action_queue.hh
index c0b3720..10f9744 100644
--- a/paludis/util/action_queue.hh
+++ b/paludis/util/action_queue.hh
@@ -1,7 +1,7 @@
/* vim: set sw=4 sts=4 et foldmethod=syntax : */
/*
- * Copyright (c) 2007, 2008 Ciaran McCreesh
+ * Copyright (c) 2007, 2008, 2010 Ciaran McCreesh
*
* This file is part of the Paludis package manager. Paludis is free software;
* you can redistribute it and/or modify it under the terms of the GNU General
@@ -68,9 +68,7 @@ namespace paludis
unsigned number_of_threads() const;
};
-#ifdef PALUDIS_HAVE_EXTERN_TEMPLATE
extern template class PrivateImplementationPattern<ActionQueue>;
-#endif
}
diff --git a/paludis/util/buffer_output_stream.hh b/paludis/util/buffer_output_stream.hh
index d100faf..d2339d1 100644
--- a/paludis/util/buffer_output_stream.hh
+++ b/paludis/util/buffer_output_stream.hh
@@ -64,9 +64,7 @@ namespace paludis
bool anything_to_unbuffer() const PALUDIS_ATTRIBUTE((warn_unused_result));
};
-#ifdef PALUDIS_HAVE_EXTERN_TEMPLATE
extern template class PrivateImplementationPattern<BufferOutputStreamBuf>;
-#endif
}
#endif
diff --git a/paludis/util/config_file.hh b/paludis/util/config_file.hh
index 0c21bf3..265d475 100644
--- a/paludis/util/config_file.hh
+++ b/paludis/util/config_file.hh
@@ -1,7 +1,7 @@
/* vim: set sw=4 sts=4 et foldmethod=syntax : */
/*
- * Copyright (c) 2006, 2007, 2008, 2009 Ciaran McCreesh
+ * Copyright (c) 2006, 2007, 2008, 2009, 2010 Ciaran McCreesh
*
* This file is part of the Paludis package manager. Paludis is free software;
* you can redistribute it and/or modify it under the terms of the GNU General
@@ -250,14 +250,12 @@ namespace paludis
const TransformationFunction & transformation_function() const PALUDIS_ATTRIBUTE((warn_unused_result));
};
-#ifdef PALUDIS_HAVE_EXTERN_TEMPLATE
extern template class PrivateImplementationPattern<ConfigFile::Source>;
extern template class PrivateImplementationPattern<LineConfigFile>;
extern template class PrivateImplementationPattern<KeyValueConfigFile>;
extern template class WrappedForwardIterator<LineConfigFile::ConstIteratorTag, const std::string>;
extern template class WrappedForwardIterator<KeyValueConfigFile::ConstIteratorTag, const std::pair<const std::string, std::string> >;
-#endif
}
#endif
diff --git a/paludis/util/damerau_levenshtein.hh b/paludis/util/damerau_levenshtein.hh
index 5a4c8d2..adbb911 100644
--- a/paludis/util/damerau_levenshtein.hh
+++ b/paludis/util/damerau_levenshtein.hh
@@ -54,9 +54,7 @@ namespace paludis
///\}
};
-#ifdef PALUDIS_HAVE_EXTERN_TEMPLATE
extern template class PrivateImplementationPattern<DamerauLevenshtein>;
-#endif
}
#endif
diff --git a/paludis/util/dir_iterator.hh b/paludis/util/dir_iterator.hh
index b2c7efa..2a9b2c1 100644
--- a/paludis/util/dir_iterator.hh
+++ b/paludis/util/dir_iterator.hh
@@ -1,7 +1,7 @@
/* vim: set sw=4 sts=4 et foldmethod=syntax : */
/*
- * Copyright (c) 2005, 2006, 2007, 2008, 2009 Ciaran McCreesh
+ * Copyright (c) 2005, 2006, 2007, 2008, 2009, 2010 Ciaran McCreesh
*
* This file is part of the Paludis package manager. Paludis is free software;
* you can redistribute it and/or modify it under the terms of the GNU General
@@ -130,9 +130,7 @@ namespace paludis
///\}
};
-#ifdef PALUDIS_HAVE_EXTERN_TEMPLATE
extern template class PrivateImplementationPattern<DirIterator>;
-#endif
}
#endif
diff --git a/paludis/util/executor.hh b/paludis/util/executor.hh
index 7c82d12..2a83f3f 100644
--- a/paludis/util/executor.hh
+++ b/paludis/util/executor.hh
@@ -1,7 +1,7 @@
/* vim: set sw=4 sts=4 et foldmethod=syntax : */
/*
- * Copyright (c) 2009 Ciaran McCreesh
+ * Copyright (c) 2009, 2010 Ciaran McCreesh
*
* This file is part of the Paludis package manager. Paludis is free software;
* you can redistribute it and/or modify it under the terms of the GNU General
@@ -61,9 +61,7 @@ namespace paludis
void execute();
};
-#ifdef PALUDIS_HAVE_EXTERN_TEMPLATE
extern template class PrivateImplementationPattern<Executor>;
-#endif
}
#endif
diff --git a/paludis/util/map.hh b/paludis/util/map.hh
index 0febf69..c6681d0 100644
--- a/paludis/util/map.hh
+++ b/paludis/util/map.hh
@@ -1,7 +1,7 @@
/* vim: set sw=4 sts=4 et foldmethod=syntax : */
/*
- * Copyright (c) 2007, 2009 Ciaran McCreesh
+ * Copyright (c) 2007, 2009, 2010 Ciaran McCreesh
*
* This file is part of the Paludis package manager. Paludis is free software;
* you can redistribute it and/or modify it under the terms of the GNU General
@@ -99,10 +99,8 @@ namespace paludis
///\}
};
-#ifdef PALUDIS_HAVE_EXTERN_TEMPLATE
extern template class Map<std::string, std::string>;
extern template class WrappedForwardIterator<Map<std::string, std::string>::ConstIteratorTag, const std::pair<const std::string, std::string> >;
-#endif
}
#endif
diff --git a/paludis/util/set.hh b/paludis/util/set.hh
index ebcd8a7..a1c3932 100644
--- a/paludis/util/set.hh
+++ b/paludis/util/set.hh
@@ -1,7 +1,7 @@
/* vim: set sw=4 sts=4 et foldmethod=syntax : */
/*
- * Copyright (c) 2007, 2009 Ciaran McCreesh
+ * Copyright (c) 2007, 2009, 2010 Ciaran McCreesh
*
* This file is part of the Paludis package manager. Paludis is free software;
* you can redistribute it and/or modify it under the terms of the GNU General
@@ -109,9 +109,7 @@ namespace paludis
///\}
};
-#ifdef PALUDIS_HAVE_EXTERN_TEMPLATE
extern template class Set<std::string>;
-#endif
}
#endif
diff --git a/paludis/util/simple_parser.hh b/paludis/util/simple_parser.hh
index f7646a0..7be1712 100644
--- a/paludis/util/simple_parser.hh
+++ b/paludis/util/simple_parser.hh
@@ -1,7 +1,7 @@
/* vim: set sw=4 sts=4 et foldmethod=syntax : */
/*
- * Copyright (c) 2008, 2009 Ciaran McCreesh
+ * Copyright (c) 2008, 2009, 2010 Ciaran McCreesh
*
* This file is part of the Paludis package manager. Paludis is free software;
* you can redistribute it and/or modify it under the terms of the GNU General
@@ -88,9 +88,7 @@ namespace paludis
const std::string text() const PALUDIS_ATTRIBUTE((warn_unused_result));
};
-#ifdef PALUDIS_HAVE_EXTERN_TEMPLATE
extern template struct PrivateImplementationPattern<SimpleParser>;
-#endif
}
#endif
diff --git a/paludis/util/string_list_stream.hh b/paludis/util/string_list_stream.hh
index d7c40b7..dec6b8e 100644
--- a/paludis/util/string_list_stream.hh
+++ b/paludis/util/string_list_stream.hh
@@ -1,7 +1,7 @@
/* vim: set sw=4 sts=4 et foldmethod=syntax : */
/*
- * Copyright (c) 2009 Ciaran McCreesh
+ * Copyright (c) 2009, 2010 Ciaran McCreesh
*
* This file is part of the Paludis package manager. Paludis is free software;
* you can redistribute it and/or modify it under the terms of the GNU General
@@ -66,9 +66,7 @@ namespace paludis
void nothing_more_to_write();
};
-#ifdef PALUDIS_HAVE_EXTERN_TEMPLATE
extern template class PrivateImplementationPattern<StringListStreamBuf>;
-#endif
}
#endif
diff --git a/paludis/util/tail_output_stream.hh b/paludis/util/tail_output_stream.hh
index ac2767b..ff5a19b 100644
--- a/paludis/util/tail_output_stream.hh
+++ b/paludis/util/tail_output_stream.hh
@@ -1,7 +1,7 @@
/* vim: set sw=4 sts=4 et foldmethod=syntax : */
/*
- * Copyright (c) 2008 Ciaran McCreesh
+ * Copyright (c) 2008, 2010 Ciaran McCreesh
*
* This file is part of the Paludis package manager. Paludis is free software;
* you can redistribute it and/or modify it under the terms of the GNU General
@@ -84,9 +84,7 @@ namespace paludis
///\}
};
-#ifdef PALUDIS_HAVE_EXTERN_TEMPLATE
extern template class PrivateImplementationPattern<TailOutputStreamBuf>;
-#endif
}
#endif
diff --git a/paludis/util/tee_output_stream.hh b/paludis/util/tee_output_stream.hh
index 1e319bd..ad3b70c 100644
--- a/paludis/util/tee_output_stream.hh
+++ b/paludis/util/tee_output_stream.hh
@@ -1,7 +1,7 @@
/* vim: set sw=4 sts=4 et foldmethod=syntax : */
/*
- * Copyright (c) 2008, 2009 Ciaran McCreesh
+ * Copyright (c) 2008, 2009, 2010 Ciaran McCreesh
*
* This file is part of the Paludis package manager. Paludis is free software;
* you can redistribute it and/or modify it under the terms of the GNU General
@@ -66,9 +66,7 @@ namespace paludis
void add_stream(std::ostream * const);
};
-#ifdef PALUDIS_HAVE_EXTERN_TEMPLATE
extern template class PrivateImplementationPattern<TeeOutputStreamBuf>;
-#endif
}
#endif
diff --git a/src/clients/cave/command_factory.hh b/src/clients/cave/command_factory.hh
index 7e2b7fe..780e168 100644
--- a/src/clients/cave/command_factory.hh
+++ b/src/clients/cave/command_factory.hh
@@ -1,7 +1,7 @@
/* vim: set sw=4 sts=4 et foldmethod=syntax : */
/*
- * Copyright (c) 2008 Ciaran McCreesh
+ * Copyright (c) 2008, 2010 Ciaran McCreesh
*
* This file is part of the Paludis package manager. Paludis is free software;
* you can redistribute it and/or modify it under the terms of the GNU General
@@ -60,10 +60,8 @@ namespace paludis
};
}
-#ifdef PALUDIS_HAVE_EXTERN_TEMPLATE
extern template class InstantiationPolicy<cave::CommandFactory, instantiation_method::SingletonTag>;
extern template class PrivateImplementationPattern<cave::CommandFactory>;
-#endif
}
#endif