aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAvatar Ciaran McCreesh <ciaran.mccreesh@googlemail.com> 2012-04-15 14:51:19 +0100
committerAvatar Ciaran McCreesh <ciaran.mccreesh@googlemail.com> 2012-04-15 14:51:19 +0100
commit535b0908fbc1f4372d0b53f71f5b72958e9e8831 (patch)
treecbf2f6926291ab722ef80312f895dbebd28418db
parenta65d3c7ab5776b4d6eb4c1a44f3eafaaf015e54a (diff)
downloadpaludis-535b0908fbc1f4372d0b53f71f5b72958e9e8831.tar.gz
paludis-535b0908fbc1f4372d0b53f71f5b72958e9e8831.tar.xz
GCC 4.7 does visibility differently
-rw-r--r--paludis/about_metadata.hh3
-rw-r--r--paludis/action.cc7
-rw-r--r--paludis/additional_package_dep_spec_requirement.hh4
-rw-r--r--paludis/always_enabled_dependency_label.hh20
-rw-r--r--paludis/args/args_group.hh2
-rw-r--r--paludis/args/args_handler.hh18
-rw-r--r--paludis/args/args_option.hh8
-rw-r--r--paludis/args/args_section.hh2
-rw-r--r--paludis/broken_linkage_configuration.hh2
-rw-r--r--paludis/choice.cc7
-rw-r--r--paludis/choice.hh17
-rw-r--r--paludis/contents.hh2
-rw-r--r--paludis/dep_label.cc2
-rw-r--r--paludis/dep_label.hh37
-rw-r--r--paludis/dep_spec.hh22
-rw-r--r--paludis/dep_spec_annotations.hh2
-rw-r--r--paludis/dep_spec_flattener.hh12
-rw-r--r--paludis/distribution.hh4
-rw-r--r--paludis/environment.hh4
-rw-r--r--paludis/environment_factory.hh3
-rw-r--r--paludis/filter.hh14
-rw-r--r--paludis/fuzzy_finder.hh4
-rw-r--r--paludis/hook.hh2
-rw-r--r--paludis/maintainer.hh4
-rw-r--r--paludis/metadata_key_holder.hh2
-rw-r--r--paludis/name.cc67
-rw-r--r--paludis/name.hh18
-rw-r--r--paludis/notifier_callback.hh1
-rw-r--r--paludis/output_manager_factory.hh5
-rw-r--r--paludis/package_id.cc1
-rw-r--r--paludis/package_id.hh21
-rw-r--r--paludis/repositories/e/glsa.hh4
-rw-r--r--paludis/repositories/e/metadata_xml.cc2
-rw-r--r--paludis/repository_factory.hh5
-rw-r--r--paludis/resolver/change_by_resolvent.hh6
-rw-r--r--paludis/resolver/collect_depped_upon.hh4
-rw-r--r--paludis/resolver/constraint.hh2
-rw-r--r--paludis/resolver/decisions.hh20
-rw-r--r--paludis/resolver/job_list.hh8
-rw-r--r--paludis/resolver/job_requirements.hh4
-rw-r--r--paludis/resolver/nag.hh4
-rw-r--r--paludis/resolver/resolutions_by_resolvent.hh2
-rw-r--r--paludis/resolver/resolvent.hh6
-rw-r--r--paludis/resolver/strongly_connected_component.hh12
-rw-r--r--paludis/spec_tree.cc116
-rw-r--r--paludis/spec_tree.hh89
-rw-r--r--paludis/util/config_file.hh4
-rw-r--r--paludis/util/digest_registry.hh8
-rw-r--r--paludis/util/elf.cc9
-rw-r--r--paludis/util/elf_dynamic_section.cc9
-rw-r--r--paludis/util/elf_relocation_section.cc17
-rw-r--r--paludis/util/elf_sections.cc13
-rw-r--r--paludis/util/elf_symbol_section.cc9
-rw-r--r--paludis/util/fs_path.cc13
-rw-r--r--paludis/util/map.cc6
-rw-r--r--paludis/util/map.hh4
-rw-r--r--paludis/util/sequence.cc8
-rw-r--r--paludis/util/set.cc7
-rw-r--r--paludis/util/set.hh2
-rw-r--r--paludis/version_requirements.cc3
-rw-r--r--paludis/version_requirements.hh9
-rw-r--r--paludis/version_spec.cc1
-rw-r--r--paludis/version_spec.hh4
63 files changed, 445 insertions, 282 deletions
diff --git a/paludis/about_metadata.hh b/paludis/about_metadata.hh
index 6621427..ecc18cf 100644
--- a/paludis/about_metadata.hh
+++ b/paludis/about_metadata.hh
@@ -35,6 +35,8 @@
namespace paludis
{
+ extern template class PALUDIS_VISIBLE Singleton<AboutMetadata>;
+
/**
* Information about Paludis, provided as MetadataKey instances.
*
@@ -58,7 +60,6 @@ namespace paludis
};
extern template class Pimp<AboutMetadata>;
- extern template class Singleton<AboutMetadata>;
}
#endif
diff --git a/paludis/action.cc b/paludis/action.cc
index 4231d7d..11e1c39 100644
--- a/paludis/action.cc
+++ b/paludis/action.cc
@@ -332,7 +332,8 @@ namespace paludis
template class Pimp<InfoAction>;
template class Pimp<ConfigAction>;
- template class Sequence<FetchActionFailure>;
- template class WrappedForwardIterator<Sequence<FetchActionFailure>::ConstIteratorTag, const FetchActionFailure>;
- template class WrappedOutputIterator<Sequence<FetchActionFailure>::InserterTag, FetchActionFailure>;
+ template class PALUDIS_VISIBLE Sequence<FetchActionFailure>;
+ template class PALUDIS_VISIBLE WrappedForwardIterator<Sequence<FetchActionFailure>::ConstIteratorTag, const FetchActionFailure>;
+ template class PALUDIS_VISIBLE WrappedOutputIterator<Sequence<FetchActionFailure>::InserterTag, FetchActionFailure>;
}
+
diff --git a/paludis/additional_package_dep_spec_requirement.hh b/paludis/additional_package_dep_spec_requirement.hh
index 318e75d..a04ef0b 100644
--- a/paludis/additional_package_dep_spec_requirement.hh
+++ b/paludis/additional_package_dep_spec_requirement.hh
@@ -111,8 +111,8 @@ namespace paludis
virtual const std::string as_raw_string() const PALUDIS_ATTRIBUTE((warn_unused_result)) = 0;
};
- extern template class Sequence<std::shared_ptr<const AdditionalPackageDepSpecRequirement> >;
- extern template class WrappedForwardIterator<AdditionalPackageDepSpecRequirements::ConstIteratorTag,
+ extern template class PALUDIS_VISIBLE Sequence<std::shared_ptr<const AdditionalPackageDepSpecRequirement> >;
+ extern template class PALUDIS_VISIBLE WrappedForwardIterator<AdditionalPackageDepSpecRequirements::ConstIteratorTag,
const std::shared_ptr<const AdditionalPackageDepSpecRequirement> >;
}
diff --git a/paludis/always_enabled_dependency_label.hh b/paludis/always_enabled_dependency_label.hh
index ed0c5d8..ca58b87 100644
--- a/paludis/always_enabled_dependency_label.hh
+++ b/paludis/always_enabled_dependency_label.hh
@@ -1,7 +1,7 @@
/* vim: set sw=4 sts=4 et foldmethod=syntax : */
/*
- * Copyright (c) 2010 Ciaran McCreesh
+ * Copyright (c) 2010, 2011 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
@@ -43,15 +43,15 @@ namespace paludis
const std::shared_ptr<const PackageID> &) const;
};
- extern template class AlwaysEnabledDependencyLabel<DependenciesBuildLabelTag>;
- extern template class AlwaysEnabledDependencyLabel<DependenciesRunLabelTag>;
- extern template class AlwaysEnabledDependencyLabel<DependenciesPostLabelTag>;
- extern template class AlwaysEnabledDependencyLabel<DependenciesCompileAgainstLabelTag>;
- extern template class AlwaysEnabledDependencyLabel<DependenciesFetchLabelTag>;
- extern template class AlwaysEnabledDependencyLabel<DependenciesInstallLabelTag>;
- extern template class AlwaysEnabledDependencyLabel<DependenciesSuggestionLabelTag>;
- extern template class AlwaysEnabledDependencyLabel<DependenciesRecommendationLabelTag>;
- extern template class AlwaysEnabledDependencyLabel<DependenciesTestLabelTag>;
+ extern template class PALUDIS_VISIBLE AlwaysEnabledDependencyLabel<DependenciesBuildLabelTag>;
+ extern template class PALUDIS_VISIBLE AlwaysEnabledDependencyLabel<DependenciesRunLabelTag>;
+ extern template class PALUDIS_VISIBLE AlwaysEnabledDependencyLabel<DependenciesPostLabelTag>;
+ extern template class PALUDIS_VISIBLE AlwaysEnabledDependencyLabel<DependenciesCompileAgainstLabelTag>;
+ extern template class PALUDIS_VISIBLE AlwaysEnabledDependencyLabel<DependenciesFetchLabelTag>;
+ extern template class PALUDIS_VISIBLE AlwaysEnabledDependencyLabel<DependenciesInstallLabelTag>;
+ extern template class PALUDIS_VISIBLE AlwaysEnabledDependencyLabel<DependenciesSuggestionLabelTag>;
+ extern template class PALUDIS_VISIBLE AlwaysEnabledDependencyLabel<DependenciesRecommendationLabelTag>;
+ extern template class PALUDIS_VISIBLE AlwaysEnabledDependencyLabel<DependenciesTestLabelTag>;
}
#endif
diff --git a/paludis/args/args_group.hh b/paludis/args/args_group.hh
index d1f56e5..cbedc4c 100644
--- a/paludis/args/args_group.hh
+++ b/paludis/args/args_group.hh
@@ -126,7 +126,7 @@ namespace paludis
};
}
- extern template class WrappedForwardIterator<args::ArgsGroup::ConstIteratorTag, args::ArgsOption * const>;
+ extern template class PALUDIS_VISIBLE WrappedForwardIterator<args::ArgsGroup::ConstIteratorTag, args::ArgsOption * const>;
}
#endif
diff --git a/paludis/args/args_handler.hh b/paludis/args/args_handler.hh
index 4d33817..8559926 100644
--- a/paludis/args/args_handler.hh
+++ b/paludis/args/args_handler.hh
@@ -325,17 +325,17 @@ namespace paludis
std::ostream & operator<< (std::ostream &, const ArgsHandler &) PALUDIS_VISIBLE;
}
- 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,
+ extern template class PALUDIS_VISIBLE WrappedForwardIterator<args::ArgsHandler::ParametersConstIteratorTag, const std::string>;
+ extern template class PALUDIS_VISIBLE WrappedForwardIterator<args::ArgsHandler::UsageLineConstIteratorTag, const std::string>;
+ extern template class PALUDIS_VISIBLE WrappedForwardIterator<args::ArgsHandler::EnvironmentLineConstIteratorTag,
const std::pair<std::string, std::string> >;
- extern template class WrappedForwardIterator<args::ArgsHandler::ExamplesConstIteratorTag,
+ extern template class PALUDIS_VISIBLE WrappedForwardIterator<args::ArgsHandler::ExamplesConstIteratorTag,
const std::pair<std::string, std::string> >;
- extern template class WrappedForwardIterator<args::ArgsHandler::ArgsSectionsConstIteratorTag, const args::ArgsSection>;
- 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>;
- extern template class WrappedForwardIterator<args::ArgsHandler::SeeAlsoConstIteratorTag, const std::pair<std::string, int> >;
+ extern template class PALUDIS_VISIBLE WrappedForwardIterator<args::ArgsHandler::ArgsSectionsConstIteratorTag, const args::ArgsSection>;
+ extern template class PALUDIS_VISIBLE WrappedForwardIterator<args::ArgsHandler::DescriptionLineConstIteratorTag, const std::string>;
+ extern template class PALUDIS_VISIBLE WrappedForwardIterator<args::ArgsHandler::NotesIteratorTag, const std::string>;
+ extern template class PALUDIS_VISIBLE WrappedForwardIterator<args::ArgsHandler::ArgsIteratorTag, std::string>;
+ extern template class PALUDIS_VISIBLE WrappedForwardIterator<args::ArgsHandler::SeeAlsoConstIteratorTag, const std::pair<std::string, int> >;
}
#endif
diff --git a/paludis/args/args_option.hh b/paludis/args/args_option.hh
index 6131ccc..cea351f 100644
--- a/paludis/args/args_option.hh
+++ b/paludis/args/args_option.hh
@@ -654,11 +654,11 @@ namespace paludis
};
}
- extern template class WrappedForwardIterator<args::StringSetArg::ConstIteratorTag, const std::string>;
- extern template class WrappedForwardIterator<args::StringSetArg::AllowedArgConstIteratorTag,
+ extern template class PALUDIS_VISIBLE WrappedForwardIterator<args::StringSetArg::ConstIteratorTag, const std::string>;
+ extern template class PALUDIS_VISIBLE 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,
+ extern template class PALUDIS_VISIBLE WrappedForwardIterator<args::StringSequenceArg::ConstIteratorTag, const std::string>;
+ extern template class PALUDIS_VISIBLE WrappedForwardIterator<args::EnumArg::AllowedArgConstIteratorTag,
const args::AllowedEnumArg>;
}
diff --git a/paludis/args/args_section.hh b/paludis/args/args_section.hh
index 6d20608..5422575 100644
--- a/paludis/args/args_section.hh
+++ b/paludis/args/args_section.hh
@@ -61,7 +61,7 @@ namespace paludis
}
extern template class Pimp<args::ArgsSection>;
- extern template class WrappedForwardIterator<args::ArgsSection::GroupsConstIteratorTag, const args::ArgsGroup>;
+ extern template class PALUDIS_VISIBLE WrappedForwardIterator<args::ArgsSection::GroupsConstIteratorTag, const args::ArgsGroup>;
}
#endif
diff --git a/paludis/broken_linkage_configuration.hh b/paludis/broken_linkage_configuration.hh
index f678159..e394810 100644
--- a/paludis/broken_linkage_configuration.hh
+++ b/paludis/broken_linkage_configuration.hh
@@ -52,7 +52,7 @@ namespace paludis
bool lib_is_masked(const std::string &) const PALUDIS_ATTRIBUTE((warn_unused_result));
};
- extern template class WrappedForwardIterator<BrokenLinkageConfiguration::DirsIteratorTag, const FSPath>;
+ extern template class PALUDIS_VISIBLE WrappedForwardIterator<BrokenLinkageConfiguration::DirsIteratorTag, const FSPath>;
}
#endif
diff --git a/paludis/choice.cc b/paludis/choice.cc
index 1d28f54..94d881e 100644
--- a/paludis/choice.cc
+++ b/paludis/choice.cc
@@ -344,6 +344,7 @@ namespace paludis
template class WrappedOutputIterator<Set<UnprefixedChoiceName>::InserterTag, UnprefixedChoiceName>;
}
-template std::ostream & paludis::operator<< (std::ostream &, const WrappedValue<UnprefixedChoiceNameTag> &);
-template std::ostream & paludis::operator<< (std::ostream &, const WrappedValue<ChoicePrefixNameTag> &);
-template std::ostream & paludis::operator<< (std::ostream &, const WrappedValue<ChoiceNameWithPrefixTag> &);
+template PALUDIS_VISIBLE std::ostream & paludis::operator<< (std::ostream &, const WrappedValue<UnprefixedChoiceNameTag> &);
+template PALUDIS_VISIBLE std::ostream & paludis::operator<< (std::ostream &, const WrappedValue<ChoicePrefixNameTag> &);
+template PALUDIS_VISIBLE std::ostream & paludis::operator<< (std::ostream &, const WrappedValue<ChoiceNameWithPrefixTag> &);
+
diff --git a/paludis/choice.hh b/paludis/choice.hh
index 7090b1d..0f24664 100644
--- a/paludis/choice.hh
+++ b/paludis/choice.hh
@@ -28,6 +28,9 @@
#include <paludis/util/exception.hh>
#include <paludis/util/named_value.hh>
#include <paludis/util/wrapped_value.hh>
+#include <paludis/util/set.hh>
+#include <paludis/util/wrapped_forward_iterator.hh>
+#include <paludis/util/wrapped_output_iterator.hh>
#include <memory>
#include <string>
@@ -107,6 +110,8 @@ namespace paludis
static bool validate(const std::string &) PALUDIS_ATTRIBUTE((warn_unused_result));
};
+ extern template class PALUDIS_VISIBLE WrappedValue<ChoicePrefixNameTag>;
+
template <>
struct WrappedValueTraits<UnprefixedChoiceNameTag>
{
@@ -117,6 +122,8 @@ namespace paludis
static bool validate(const std::string &) PALUDIS_ATTRIBUTE((warn_unused_result));
};
+ extern template class PALUDIS_VISIBLE WrappedValue<UnprefixedChoiceNameTag>;
+
template <>
struct WrappedValueTraits<ChoiceNameWithPrefixTag>
{
@@ -127,6 +134,8 @@ namespace paludis
static bool validate(const std::string &) PALUDIS_ATTRIBUTE((warn_unused_result));
};
+ extern template class PALUDIS_VISIBLE WrappedValue<ChoiceNameWithPrefixTag>;
+
/**
* Choices holds a collection of configurable values for a PackageID.
*
@@ -388,8 +397,12 @@ namespace paludis
extern template class Pimp<Choices>;
extern template class Pimp<Choice>;
- extern template class WrappedForwardIterator<Choices::ConstIteratorTag, const std::shared_ptr<const Choice> >;
- extern template class WrappedForwardIterator<Choice::ConstIteratorTag, const std::shared_ptr<const ChoiceValue> >;
+ extern template class PALUDIS_VISIBLE Set<UnprefixedChoiceName>;
+ extern template class PALUDIS_VISIBLE WrappedForwardIterator<Set<UnprefixedChoiceName>::ConstIteratorTag, const UnprefixedChoiceName>;
+ extern template class PALUDIS_VISIBLE WrappedOutputIterator<Set<UnprefixedChoiceName>::InserterTag, UnprefixedChoiceName>;
+
+ extern template class PALUDIS_VISIBLE WrappedForwardIterator<Choices::ConstIteratorTag, const std::shared_ptr<const Choice> >;
+ extern template class PALUDIS_VISIBLE WrappedForwardIterator<Choice::ConstIteratorTag, const std::shared_ptr<const ChoiceValue> >;
}
#endif
diff --git a/paludis/contents.hh b/paludis/contents.hh
index 818f55b..f4358c2 100644
--- a/paludis/contents.hh
+++ b/paludis/contents.hh
@@ -235,7 +235,7 @@ namespace paludis
extern template class Pimp<ContentsEntry>;
extern template class Pimp<ContentsSymEntry>;
- extern template class WrappedForwardIterator<Contents::ConstIteratorTag, const std::shared_ptr<const ContentsEntry> >;
+ extern template class PALUDIS_VISIBLE WrappedForwardIterator<Contents::ConstIteratorTag, const std::shared_ptr<const ContentsEntry> >;
}
#endif
diff --git a/paludis/dep_label.cc b/paludis/dep_label.cc
index a13ce70..eb1df38 100644
--- a/paludis/dep_label.cc
+++ b/paludis/dep_label.cc
@@ -1,7 +1,7 @@
/* vim: set sw=4 sts=4 et foldmethod=syntax : */
/*
- * Copyright (c) 2007, 2008, 2009, 2010 Ciaran McCreesh
+ * Copyright (c) 2007, 2008, 2009, 2010, 2011 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
diff --git a/paludis/dep_label.hh b/paludis/dep_label.hh
index b62bac0..e09e0fb 100644
--- a/paludis/dep_label.hh
+++ b/paludis/dep_label.hh
@@ -156,24 +156,25 @@ namespace paludis
typedef T_ Tag;
};
- extern template class SpecificURILabel<URIMirrorsThenListedLabelTag>;
- extern template class SpecificURILabel<URIMirrorsOnlyLabelTag>;
- extern template class SpecificURILabel<URIListedOnlyLabelTag>;
- extern template class SpecificURILabel<URIListedThenMirrorsLabelTag>;
- extern template class SpecificURILabel<URILocalMirrorsOnlyLabelTag>;
- extern template class SpecificURILabel<URIManualOnlyLabelTag>;
-
- extern template class SpecificDependenciesLabel<DependenciesBuildLabelTag>;
- extern template class SpecificDependenciesLabel<DependenciesRunLabelTag>;
- extern template class SpecificDependenciesLabel<DependenciesPostLabelTag>;
- extern template class SpecificDependenciesLabel<DependenciesCompileAgainstLabelTag>;
- extern template class SpecificDependenciesLabel<DependenciesFetchLabelTag>;
- extern template class SpecificDependenciesLabel<DependenciesInstallLabelTag>;
- extern template class SpecificDependenciesLabel<DependenciesSuggestionLabelTag>;
- extern template class SpecificDependenciesLabel<DependenciesRecommendationLabelTag>;
- extern template class SpecificDependenciesLabel<DependenciesTestLabelTag>;
-
- extern template class WrappedForwardIterator<Sequence<std::shared_ptr<const DependenciesLabel> >::ConstIteratorTag,
+ extern template class PALUDIS_VISIBLE SpecificURILabel<URIMirrorsThenListedLabelTag>;
+ extern template class PALUDIS_VISIBLE SpecificURILabel<URIMirrorsOnlyLabelTag>;
+ extern template class PALUDIS_VISIBLE SpecificURILabel<URIListedOnlyLabelTag>;
+ extern template class PALUDIS_VISIBLE SpecificURILabel<URIListedThenMirrorsLabelTag>;
+ extern template class PALUDIS_VISIBLE SpecificURILabel<URILocalMirrorsOnlyLabelTag>;
+ extern template class PALUDIS_VISIBLE SpecificURILabel<URIManualOnlyLabelTag>;
+
+ extern template class PALUDIS_VISIBLE SpecificDependenciesLabel<DependenciesBuildLabelTag>;
+ extern template class PALUDIS_VISIBLE SpecificDependenciesLabel<DependenciesRunLabelTag>;
+ extern template class PALUDIS_VISIBLE SpecificDependenciesLabel<DependenciesPostLabelTag>;
+ extern template class PALUDIS_VISIBLE SpecificDependenciesLabel<DependenciesCompileAgainstLabelTag>;
+ extern template class PALUDIS_VISIBLE SpecificDependenciesLabel<DependenciesFetchLabelTag>;
+ extern template class PALUDIS_VISIBLE SpecificDependenciesLabel<DependenciesInstallLabelTag>;
+ extern template class PALUDIS_VISIBLE SpecificDependenciesLabel<DependenciesSuggestionLabelTag>;
+ extern template class PALUDIS_VISIBLE SpecificDependenciesLabel<DependenciesRecommendationLabelTag>;
+ extern template class PALUDIS_VISIBLE SpecificDependenciesLabel<DependenciesTestLabelTag>;
+
+ extern template class PALUDIS_VISIBLE Sequence<std::shared_ptr<const DependenciesLabel> >;
+ extern template class PALUDIS_VISIBLE WrappedForwardIterator<Sequence<std::shared_ptr<const DependenciesLabel> >::ConstIteratorTag,
const std::shared_ptr<const DependenciesLabel> >;
}
diff --git a/paludis/dep_spec.hh b/paludis/dep_spec.hh
index 07a3076..9f82543 100644
--- a/paludis/dep_spec.hh
+++ b/paludis/dep_spec.hh
@@ -57,6 +57,15 @@
namespace paludis
{
+ extern template class PALUDIS_VISIBLE Cloneable<DepSpec>;
+ extern template class Pimp<ConditionalDepSpec>;
+ extern template class PALUDIS_VISIBLE CloneUsingThis<DepSpec, ConditionalDepSpec>;
+ extern template class Pimp<PackageDepSpec>;
+ extern template class PALUDIS_VISIBLE CloneUsingThis<DepSpec, PackageDepSpec>;
+ extern template class Pimp<DependenciesLabelsDepSpec>;
+ extern template class Pimp<URILabelsDepSpec>;
+ extern template class Pimp<PlainTextLabelDepSpec>;
+
/**
* Base class for a dependency spec.
*
@@ -680,18 +689,9 @@ namespace paludis
const std::string label() const PALUDIS_ATTRIBUTE((warn_unused_result));
};
- extern template class Cloneable<DepSpec>;
- extern template class Pimp<ConditionalDepSpec>;
- extern template class CloneUsingThis<DepSpec, ConditionalDepSpec>;
- extern template class Pimp<PackageDepSpec>;
- extern template class CloneUsingThis<DepSpec, PackageDepSpec>;
- extern template class Pimp<DependenciesLabelsDepSpec>;
- extern template class Pimp<URILabelsDepSpec>;
- extern template class Pimp<PlainTextLabelDepSpec>;
-
- extern template class WrappedForwardIterator<DependenciesLabelsDepSpec::ConstIteratorTag,
+ extern template class PALUDIS_VISIBLE WrappedForwardIterator<DependenciesLabelsDepSpec::ConstIteratorTag,
const std::shared_ptr<const DependenciesLabel> >;
- extern template class WrappedForwardIterator<URILabelsDepSpec::ConstIteratorTag,
+ extern template class PALUDIS_VISIBLE WrappedForwardIterator<URILabelsDepSpec::ConstIteratorTag,
const std::shared_ptr<const URILabel> >;
}
diff --git a/paludis/dep_spec_annotations.hh b/paludis/dep_spec_annotations.hh
index 08245b0..29fc1e2 100644
--- a/paludis/dep_spec_annotations.hh
+++ b/paludis/dep_spec_annotations.hh
@@ -65,7 +65,7 @@ namespace paludis
};
extern template class Pimp<DepSpecAnnotations>;
- extern template class WrappedForwardIterator<DepSpecAnnotations::ConstIteratorTag, const DepSpecAnnotation>;
+ extern template class PALUDIS_VISIBLE WrappedForwardIterator<DepSpecAnnotations::ConstIteratorTag, const DepSpecAnnotation>;
}
#endif
diff --git a/paludis/dep_spec_flattener.hh b/paludis/dep_spec_flattener.hh
index 5871524..8cd312a 100644
--- a/paludis/dep_spec_flattener.hh
+++ b/paludis/dep_spec_flattener.hh
@@ -118,15 +118,15 @@ namespace paludis
///\}
};
- extern template class DepSpecFlattener<PlainTextSpecTree, PlainTextDepSpec>;
- extern template class DepSpecFlattener<SetSpecTree, PackageDepSpec>;
- extern template class DepSpecFlattener<SimpleURISpecTree, SimpleURIDepSpec>;
+ extern template class PALUDIS_VISIBLE DepSpecFlattener<PlainTextSpecTree, PlainTextDepSpec>;
+ extern template class PALUDIS_VISIBLE DepSpecFlattener<SetSpecTree, PackageDepSpec>;
+ extern template class PALUDIS_VISIBLE DepSpecFlattener<SimpleURISpecTree, SimpleURIDepSpec>;
- extern template class WrappedForwardIterator<DepSpecFlattener<PlainTextSpecTree, PlainTextDepSpec>::ConstIteratorTag,
+ extern template class PALUDIS_VISIBLE WrappedForwardIterator<DepSpecFlattener<PlainTextSpecTree, PlainTextDepSpec>::ConstIteratorTag,
const std::shared_ptr<const PlainTextDepSpec> >;
- extern template class WrappedForwardIterator<DepSpecFlattener<SetSpecTree, PackageDepSpec>::ConstIteratorTag,
+ extern template class PALUDIS_VISIBLE WrappedForwardIterator<DepSpecFlattener<SetSpecTree, PackageDepSpec>::ConstIteratorTag,
const std::shared_ptr<const PackageDepSpec> >;
- extern template class WrappedForwardIterator<DepSpecFlattener<SimpleURISpecTree, SimpleURIDepSpec>::ConstIteratorTag,
+ extern template class PALUDIS_VISIBLE WrappedForwardIterator<DepSpecFlattener<SimpleURISpecTree, SimpleURIDepSpec>::ConstIteratorTag,
const std::shared_ptr<const SimpleURIDepSpec> >;
}
diff --git a/paludis/distribution.hh b/paludis/distribution.hh
index acdff20..a8327a7 100644
--- a/paludis/distribution.hh
+++ b/paludis/distribution.hh
@@ -42,6 +42,8 @@
namespace paludis
{
+ extern template class PALUDIS_VISIBLE Singleton<DistributionData>;
+
namespace n
{
typedef Name<struct name_concept_keyword> concept_keyword;
@@ -157,8 +159,6 @@ namespace paludis
const Distribution &) const
PALUDIS_ATTRIBUTE((warn_unused_result));
};
-
- extern template class Singleton<DistributionData>;
}
#endif
diff --git a/paludis/environment.hh b/paludis/environment.hh
index 8e6b5ff..984b16e 100644
--- a/paludis/environment.hh
+++ b/paludis/environment.hh
@@ -728,8 +728,8 @@ namespace paludis
extern template class Pimp<CreateOutputManagerForRepositorySyncInfo>;
extern template class Pimp<CreateOutputManagerForPackageIDActionInfo>;
- extern template class WrappedForwardIterator<Environment::RepositoryConstIteratorTag, const std::shared_ptr<Repository> >;
- extern template class WrappedForwardIterator<AmbiguousPackageNameError::OptionsConstIteratorTag, const std::string>;
+ extern template class PALUDIS_VISIBLE WrappedForwardIterator<Environment::RepositoryConstIteratorTag, const std::shared_ptr<Repository> >;
+ extern template class PALUDIS_VISIBLE WrappedForwardIterator<AmbiguousPackageNameError::OptionsConstIteratorTag, const std::string>;
}
#endif
diff --git a/paludis/environment_factory.hh b/paludis/environment_factory.hh
index 6a5acf6..cb3fc90 100644
--- a/paludis/environment_factory.hh
+++ b/paludis/environment_factory.hh
@@ -32,6 +32,8 @@
namespace paludis
{
+ extern template class PALUDIS_VISIBLE Singleton<EnvironmentFactory>;
+
class PALUDIS_VISIBLE FallBackToAnotherFormatError
{
};
@@ -91,7 +93,6 @@ namespace paludis
void register_environment(const EnvironmentClass_ * const, EnvironmentFactory * const);
extern template class Pimp<EnvironmentFactory>;
- extern template class Singleton<EnvironmentFactory>;
}
#endif
diff --git a/paludis/filter.hh b/paludis/filter.hh
index b32027b..c79a111 100644
--- a/paludis/filter.hh
+++ b/paludis/filter.hh
@@ -301,13 +301,13 @@ namespace paludis
}
extern template class Pimp<Filter>;
- extern template class filter::SupportsAction<InstallAction>;
- extern template class filter::SupportsAction<UninstallAction>;
- extern template class filter::SupportsAction<PretendAction>;
- extern template class filter::SupportsAction<ConfigAction>;
- extern template class filter::SupportsAction<FetchAction>;
- extern template class filter::SupportsAction<InfoAction>;
- extern template class filter::SupportsAction<PretendFetchAction>;
+ extern template class PALUDIS_VISIBLE filter::SupportsAction<InstallAction>;
+ extern template class PALUDIS_VISIBLE filter::SupportsAction<UninstallAction>;
+ extern template class PALUDIS_VISIBLE filter::SupportsAction<PretendAction>;
+ extern template class PALUDIS_VISIBLE filter::SupportsAction<ConfigAction>;
+ extern template class PALUDIS_VISIBLE filter::SupportsAction<FetchAction>;
+ extern template class PALUDIS_VISIBLE filter::SupportsAction<InfoAction>;
+ extern template class PALUDIS_VISIBLE filter::SupportsAction<PretendFetchAction>;
}
#endif
diff --git a/paludis/fuzzy_finder.hh b/paludis/fuzzy_finder.hh
index 90d1047..73f37b8 100644
--- a/paludis/fuzzy_finder.hh
+++ b/paludis/fuzzy_finder.hh
@@ -99,8 +99,8 @@ namespace paludis
///\}
};
- extern template class WrappedForwardIterator<FuzzyCandidatesFinder::CandidatesConstIteratorTag, const QualifiedPackageName>;
- extern template class WrappedForwardIterator<FuzzyRepositoriesFinder::RepositoriesConstIteratorTag, const RepositoryName>;
+ extern template class PALUDIS_VISIBLE WrappedForwardIterator<FuzzyCandidatesFinder::CandidatesConstIteratorTag, const QualifiedPackageName>;
+ extern template class PALUDIS_VISIBLE WrappedForwardIterator<FuzzyRepositoriesFinder::RepositoriesConstIteratorTag, const RepositoryName>;
}
diff --git a/paludis/hook.hh b/paludis/hook.hh
index b750bee..cfa252e 100644
--- a/paludis/hook.hh
+++ b/paludis/hook.hh
@@ -155,7 +155,7 @@ namespace paludis
PALUDIS_ATTRIBUTE((warn_unused_result));
};
- extern template class WrappedForwardIterator<Hook::ConstIteratorTag, const std::pair<const std::string, std::string> >;
+ extern template class PALUDIS_VISIBLE WrappedForwardIterator<Hook::ConstIteratorTag, const std::pair<const std::string, std::string> >;
}
extern "C" paludis::HookResult PALUDIS_VISIBLE paludis_hook_run_3(
diff --git a/paludis/maintainer.hh b/paludis/maintainer.hh
index cca6dc2..72eba42 100644
--- a/paludis/maintainer.hh
+++ b/paludis/maintainer.hh
@@ -47,8 +47,8 @@ namespace paludis
NamedValue<n::email, std::string> email;
};
- extern template class Sequence<Maintainer>;
- extern template class WrappedForwardIterator<Sequence<Maintainer>::ConstIteratorTag, const Maintainer>;
+ extern template class PALUDIS_VISIBLE Sequence<Maintainer>;
+ extern template class PALUDIS_VISIBLE WrappedForwardIterator<Sequence<Maintainer>::ConstIteratorTag, const Maintainer>;
}
#endif
diff --git a/paludis/metadata_key_holder.hh b/paludis/metadata_key_holder.hh
index 28daca2..cb42ae9 100644
--- a/paludis/metadata_key_holder.hh
+++ b/paludis/metadata_key_holder.hh
@@ -76,7 +76,7 @@ namespace paludis
///\}
};
- extern template class WrappedForwardIterator<MetadataKeyHolder::MetadataConstIteratorTag, const std::shared_ptr<const MetadataKey> >;
+ extern template class PALUDIS_VISIBLE WrappedForwardIterator<MetadataKeyHolder::MetadataConstIteratorTag, const std::shared_ptr<const MetadataKey> >;
}
#endif
diff --git a/paludis/name.cc b/paludis/name.cc
index c73b391..15de46a 100644
--- a/paludis/name.cc
+++ b/paludis/name.cc
@@ -1,7 +1,7 @@
/* vim: set sw=4 sts=4 et foldmethod=syntax : */
/*
- * Copyright (c) 2005, 2006, 2007, 2008, 2009, 2010 Ciaran McCreesh
+ * Copyright (c) 2005, 2006, 2007, 2008, 2009, 2010, 2011 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
@@ -35,51 +35,50 @@ using namespace paludis;
namespace paludis
{
- template struct Sequence<RepositoryName>;
- template struct WrappedForwardIterator<Sequence<RepositoryName>::ConstIteratorTag, const RepositoryName>;
+ template struct WrappedValue<RepositoryNameTag>;
+ template struct WrappedValue<CategoryNamePartTag>;
+ template struct WrappedValue<PackageNamePartTag>;
+ template struct WrappedValue<SlotNameTag>;
+ template struct WrappedValue<KeywordNameTag>;
+ template struct WrappedValue<SetNameTag>;
+
+ template struct PALUDIS_VISIBLE Sequence<RepositoryName>;
+ template struct PALUDIS_VISIBLE WrappedForwardIterator<Sequence<RepositoryName>::ConstIteratorTag, const RepositoryName>;
- template struct Set<RepositoryName>;
- template struct WrappedForwardIterator<Set<RepositoryName>::ConstIteratorTag, const RepositoryName>;
- template struct WrappedOutputIterator<Set<RepositoryName>::InserterTag, RepositoryName>;
+ template struct PALUDIS_VISIBLE Set<RepositoryName>;
+ template struct PALUDIS_VISIBLE WrappedForwardIterator<Set<RepositoryName>::ConstIteratorTag, const RepositoryName>;
+ template struct PALUDIS_VISIBLE WrappedOutputIterator<Set<RepositoryName>::InserterTag, RepositoryName>;
- template struct Set<PackageNamePart>;
- template struct WrappedForwardIterator<Set<PackageNamePart>::ConstIteratorTag, const PackageNamePart>;
- template struct WrappedOutputIterator<Set<PackageNamePart>::InserterTag, PackageNamePart>;
+ template struct PALUDIS_VISIBLE Set<PackageNamePart>;
+ template struct PALUDIS_VISIBLE WrappedForwardIterator<Set<PackageNamePart>::ConstIteratorTag, const PackageNamePart>;
+ template struct PALUDIS_VISIBLE WrappedOutputIterator<Set<PackageNamePart>::InserterTag, PackageNamePart>;
- template struct Set<CategoryNamePart>;
- template struct WrappedForwardIterator<Set<CategoryNamePart>::ConstIteratorTag, const CategoryNamePart>;
- template struct WrappedOutputIterator<Set<CategoryNamePart>::InserterTag, CategoryNamePart>;
+ template struct PALUDIS_VISIBLE Set<CategoryNamePart>;
+ template struct PALUDIS_VISIBLE WrappedForwardIterator<Set<CategoryNamePart>::ConstIteratorTag, const CategoryNamePart>;
+ template struct PALUDIS_VISIBLE WrappedOutputIterator<Set<CategoryNamePart>::InserterTag, CategoryNamePart>;
template struct Set<QualifiedPackageName>;
template struct WrappedForwardIterator<Set<QualifiedPackageName>::ConstIteratorTag, const QualifiedPackageName>;
template struct WrappedOutputIterator<Set<QualifiedPackageName>::InserterTag, QualifiedPackageName>;
- template struct Set<KeywordName>;
- template struct WrappedForwardIterator<Set<KeywordName>::ConstIteratorTag, const KeywordName>;
- template struct WrappedOutputIterator<Set<KeywordName>::InserterTag, KeywordName>;
+ template struct PALUDIS_VISIBLE Set<KeywordName>;
+ template struct PALUDIS_VISIBLE WrappedForwardIterator<Set<KeywordName>::ConstIteratorTag, const KeywordName>;
+ template struct PALUDIS_VISIBLE WrappedOutputIterator<Set<KeywordName>::InserterTag, KeywordName>;
- template struct Set<SetName>;
- template struct WrappedForwardIterator<Set<SetName>::ConstIteratorTag, const SetName>;
- template struct WrappedOutputIterator<Set<SetName>::InserterTag, SetName>;
+ template struct PALUDIS_VISIBLE Set<SetName>;
+ template struct PALUDIS_VISIBLE WrappedForwardIterator<Set<SetName>::ConstIteratorTag, const SetName>;
+ template struct PALUDIS_VISIBLE WrappedOutputIterator<Set<SetName>::InserterTag, SetName>;
- template struct Set<std::string>;
- template struct WrappedForwardIterator<Set<std::string>::ConstIteratorTag, const std::string>;
- template struct WrappedOutputIterator<Set<std::string>::InserterTag, std::string>;
-
- template struct WrappedValue<RepositoryNameTag>;
- template struct WrappedValue<CategoryNamePartTag>;
- template struct WrappedValue<PackageNamePartTag>;
- template struct WrappedValue<SlotNameTag>;
- template struct WrappedValue<KeywordNameTag>;
- template struct WrappedValue<SetNameTag>;
+ template struct PALUDIS_VISIBLE WrappedForwardIterator<Set<std::string>::ConstIteratorTag, const std::string>;
+ template struct PALUDIS_VISIBLE WrappedOutputIterator<Set<std::string>::InserterTag, std::string>;
}
-template std::ostream & paludis::operator<< (std::ostream &, const WrappedValue<RepositoryNameTag> &);
-template std::ostream & paludis::operator<< (std::ostream &, const WrappedValue<CategoryNamePartTag> &);
-template std::ostream & paludis::operator<< (std::ostream &, const WrappedValue<PackageNamePartTag> &);
-template std::ostream & paludis::operator<< (std::ostream &, const WrappedValue<SlotNameTag> &);
-template std::ostream & paludis::operator<< (std::ostream &, const WrappedValue<KeywordNameTag> &);
-template std::ostream & paludis::operator<< (std::ostream &, const WrappedValue<SetNameTag> &);
+template PALUDIS_VISIBLE std::ostream & paludis::operator<< (std::ostream &, const WrappedValue<RepositoryNameTag> &);
+template PALUDIS_VISIBLE std::ostream & paludis::operator<< (std::ostream &, const WrappedValue<CategoryNamePartTag> &);
+template PALUDIS_VISIBLE std::ostream & paludis::operator<< (std::ostream &, const WrappedValue<PackageNamePartTag> &);
+template PALUDIS_VISIBLE std::ostream & paludis::operator<< (std::ostream &, const WrappedValue<SlotNameTag> &);
+template PALUDIS_VISIBLE std::ostream & paludis::operator<< (std::ostream &, const WrappedValue<KeywordNameTag> &);
+template PALUDIS_VISIBLE std::ostream & paludis::operator<< (std::ostream &, const WrappedValue<SetNameTag> &);
std::ostream &
paludis::operator<< (std::ostream & s, const QualifiedPackageName & q)
diff --git a/paludis/name.hh b/paludis/name.hh
index f386ecb..b0f56c2 100644
--- a/paludis/name.hh
+++ b/paludis/name.hh
@@ -1,7 +1,7 @@
/* vim: set sw=4 sts=4 et foldmethod=syntax : */
/*
- * Copyright (c) 2005, 2006, 2007, 2008, 2010 Ciaran McCreesh
+ * Copyright (c) 2005, 2006, 2007, 2008, 2010, 2011 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
@@ -24,6 +24,9 @@
#include <paludis/util/exception.hh>
#include <paludis/util/wrapped_value.hh>
#include <paludis/util/operators.hh>
+#include <paludis/util/set.hh>
+#include <paludis/util/wrapped_forward_iterator.hh>
+#include <paludis/util/wrapped_output_iterator.hh>
#include <string>
#include <iosfwd>
@@ -67,6 +70,8 @@ namespace paludis
static bool validate(const std::string &) PALUDIS_ATTRIBUTE((warn_unused_result));
};
+ extern template struct PALUDIS_VISIBLE WrappedValue<PackageNamePartTag>;
+
/**
* A CategoryNamePartError is thrown if an invalid value is assigned to
* a CategoryNamePart.
@@ -94,6 +99,8 @@ namespace paludis
static bool validate(const std::string &) PALUDIS_ATTRIBUTE((warn_unused_result));
};
+ extern template struct PALUDIS_VISIBLE WrappedValue<CategoryNamePartTag>;
+
/**
* Represents a category plus package name.
*
@@ -236,6 +243,15 @@ namespace paludis
static bool validate(const std::string &) PALUDIS_ATTRIBUTE((warn_unused_result));
};
+
+ extern template struct PALUDIS_VISIBLE WrappedValue<RepositoryNameTag>;
+ extern template struct PALUDIS_VISIBLE WrappedValue<SlotNameTag>;
+ extern template struct PALUDIS_VISIBLE WrappedValue<KeywordNameTag>;
+ extern template struct PALUDIS_VISIBLE WrappedValue<SetNameTag>;
+
+ extern template struct PALUDIS_VISIBLE Set<QualifiedPackageName>;
+ extern template struct PALUDIS_VISIBLE WrappedForwardIterator<Set<QualifiedPackageName>::ConstIteratorTag, const QualifiedPackageName>;
+ extern template struct PALUDIS_VISIBLE WrappedOutputIterator<Set<QualifiedPackageName>::InserterTag, QualifiedPackageName>;
}
#endif
diff --git a/paludis/notifier_callback.hh b/paludis/notifier_callback.hh
index 9fbf597..c97038d 100644
--- a/paludis/notifier_callback.hh
+++ b/paludis/notifier_callback.hh
@@ -97,7 +97,6 @@ namespace paludis
};
extern template class Pimp<ScopedNotifierCallback>;
-
}
#endif
diff --git a/paludis/output_manager_factory.hh b/paludis/output_manager_factory.hh
index 5705f14..189dfe7 100644
--- a/paludis/output_manager_factory.hh
+++ b/paludis/output_manager_factory.hh
@@ -33,6 +33,8 @@
namespace paludis
{
+ extern template class PALUDIS_VISIBLE Singleton<OutputManagerFactory>;
+
class PALUDIS_VISIBLE OutputManagerFactory :
public Singleton<OutputManagerFactory>
{
@@ -103,8 +105,7 @@ namespace paludis
};
extern template class Pimp<OutputManagerFactory>;
- extern template class Singleton<OutputManagerFactory>;
- extern template class WrappedForwardIterator<OutputManagerFactory::ConstIteratorTag, const std::string>;
+ extern template class PALUDIS_VISIBLE WrappedForwardIterator<OutputManagerFactory::ConstIteratorTag, const std::string>;
}
#endif
diff --git a/paludis/package_id.cc b/paludis/package_id.cc
index 8053d61..b870c2e 100644
--- a/paludis/package_id.cc
+++ b/paludis/package_id.cc
@@ -255,3 +255,4 @@ namespace paludis
template class WrappedForwardIterator<PackageID::MasksConstIteratorTag, const std::shared_ptr<const Mask> >;
template class WrappedForwardIterator<PackageID::OverriddenMasksConstIteratorTag, const std::shared_ptr<const OverriddenMask> >;
}
+
diff --git a/paludis/package_id.hh b/paludis/package_id.hh
index 65d32e8..91e932b 100644
--- a/paludis/package_id.hh
+++ b/paludis/package_id.hh
@@ -26,7 +26,10 @@
#include <paludis/util/operators.hh>
#include <paludis/util/pimp.hh>
#include <paludis/util/wrapped_forward_iterator.hh>
+#include <paludis/util/wrapped_output_iterator.hh>
#include <paludis/util/fs_path-fwd.hh>
+#include <paludis/util/set.hh>
+#include <paludis/util/sequence.hh>
#include <paludis/action-fwd.hh>
#include <paludis/dep_spec-fwd.hh>
@@ -463,8 +466,22 @@ namespace paludis
const std::shared_ptr<const PackageID> &) const;
};
- extern template class WrappedForwardIterator<PackageID::MasksConstIteratorTag, const std::shared_ptr<const Mask> >;
- extern template class WrappedForwardIterator<PackageID::OverriddenMasksConstIteratorTag, const std::shared_ptr<const OverriddenMask> >;
+ extern template class PALUDIS_VISIBLE Sequence<std::shared_ptr<const PackageID> >;
+ extern template class PALUDIS_VISIBLE WrappedForwardIterator<Sequence<std::shared_ptr<const PackageID> >::ConstIteratorTag,
+ const std::shared_ptr<const PackageID> >;
+ extern template class PALUDIS_VISIBLE WrappedForwardIterator<Sequence<std::shared_ptr<const PackageID> >::ReverseConstIteratorTag,
+ const std::shared_ptr<const PackageID> >;
+ extern template class PALUDIS_VISIBLE WrappedOutputIterator<Sequence<std::shared_ptr<const PackageID> >::InserterTag,
+ std::shared_ptr<const PackageID> >;
+
+ extern template class PALUDIS_VISIBLE Set<std::shared_ptr<const PackageID>, PackageIDSetComparator>;
+ extern template class PALUDIS_VISIBLE WrappedForwardIterator<Set<std::shared_ptr<const PackageID>, PackageIDSetComparator>::ConstIteratorTag,
+ const std::shared_ptr<const PackageID> >;
+ extern template class PALUDIS_VISIBLE WrappedOutputIterator<Set<std::shared_ptr<const PackageID>, PackageIDSetComparator>::InserterTag,
+ std::shared_ptr<const PackageID> >;
+
+ extern template class PALUDIS_VISIBLE WrappedForwardIterator<PackageID::MasksConstIteratorTag, const std::shared_ptr<const Mask> >;
+ extern template class PALUDIS_VISIBLE WrappedForwardIterator<PackageID::OverriddenMasksConstIteratorTag, const std::shared_ptr<const OverriddenMask> >;
}
#endif
diff --git a/paludis/repositories/e/glsa.hh b/paludis/repositories/e/glsa.hh
index 612f619..726b8c4 100644
--- a/paludis/repositories/e/glsa.hh
+++ b/paludis/repositories/e/glsa.hh
@@ -190,6 +190,10 @@ namespace paludis
*/
std::string title() const;
};
+
+ extern template class PALUDIS_VISIBLE WrappedForwardIterator<GLSAPackage::ArchsConstIteratorTag, const std::string>;
+ extern template class PALUDIS_VISIBLE WrappedForwardIterator<GLSAPackage::RangesConstIteratorTag, const erepository::GLSARange>;
+ extern template class PALUDIS_VISIBLE WrappedForwardIterator<GLSA::PackagesConstIteratorTag, const GLSAPackage>;
}
#endif
diff --git a/paludis/repositories/e/metadata_xml.cc b/paludis/repositories/e/metadata_xml.cc
index 7e12e18..73d22ba 100644
--- a/paludis/repositories/e/metadata_xml.cc
+++ b/paludis/repositories/e/metadata_xml.cc
@@ -87,7 +87,7 @@ MetadataXMLPool::metadata_if_exists(const FSPath & f) const
namespace paludis
{
- template class Map<ChoiceNameWithPrefix, std::string>;
+ template class PALUDIS_VISIBLE Map<ChoiceNameWithPrefix, std::string>;
template class Pimp<MetadataXMLPool>;
template class Singleton<MetadataXMLPool>;
}
diff --git a/paludis/repository_factory.hh b/paludis/repository_factory.hh
index d984630..52018fe 100644
--- a/paludis/repository_factory.hh
+++ b/paludis/repository_factory.hh
@@ -34,6 +34,8 @@
namespace paludis
{
+ extern template class PALUDIS_VISIBLE Singleton<RepositoryFactory>;
+
class PALUDIS_VISIBLE RepositoryFactory :
public Singleton<RepositoryFactory>
{
@@ -157,8 +159,7 @@ namespace paludis
void register_repositories(const RepositoryClass_ * const, RepositoryFactory * const);
extern template class Pimp<RepositoryFactory>;
- extern template class Singleton<RepositoryFactory>;
- extern template class WrappedForwardIterator<RepositoryFactory::ConstIteratorTag, const std::string>;
+ extern template class PALUDIS_VISIBLE WrappedForwardIterator<RepositoryFactory::ConstIteratorTag, const std::string>;
}
#endif
diff --git a/paludis/resolver/change_by_resolvent.hh b/paludis/resolver/change_by_resolvent.hh
index 1371db1..dd44a5b 100644
--- a/paludis/resolver/change_by_resolvent.hh
+++ b/paludis/resolver/change_by_resolvent.hh
@@ -1,7 +1,7 @@
/* vim: set sw=4 sts=4 et foldmethod=syntax : */
/*
- * Copyright (c) 2010 Ciaran McCreesh
+ * Copyright (c) 2010, 2011 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
@@ -48,8 +48,8 @@ namespace paludis
};
}
- extern template class Sequence<resolver::ChangeByResolvent>;
- extern template class WrappedForwardIterator<Sequence<resolver::ChangeByResolvent>::ConstIteratorTag, const resolver::ChangeByResolvent>;
+ extern template class PALUDIS_VISIBLE Sequence<resolver::ChangeByResolvent>;
+ extern template class PALUDIS_VISIBLE WrappedForwardIterator<Sequence<resolver::ChangeByResolvent>::ConstIteratorTag, const resolver::ChangeByResolvent>;
}
#endif
diff --git a/paludis/resolver/collect_depped_upon.hh b/paludis/resolver/collect_depped_upon.hh
index 5424f94..a92f8dd 100644
--- a/paludis/resolver/collect_depped_upon.hh
+++ b/paludis/resolver/collect_depped_upon.hh
@@ -52,8 +52,8 @@ namespace paludis
};
}
- extern template class Sequence<resolver::DependentPackageID>;
- extern template class WrappedForwardIterator<Sequence<resolver::DependentPackageID>::ConstIteratorTag, const resolver::DependentPackageID>;
+ extern template class PALUDIS_VISIBLE Sequence<resolver::DependentPackageID>;
+ extern template class PALUDIS_VISIBLE WrappedForwardIterator<Sequence<resolver::DependentPackageID>::ConstIteratorTag, const resolver::DependentPackageID>;
}
#endif
diff --git a/paludis/resolver/constraint.hh b/paludis/resolver/constraint.hh
index 3ffa345..08b1ae1 100644
--- a/paludis/resolver/constraint.hh
+++ b/paludis/resolver/constraint.hh
@@ -95,7 +95,7 @@ namespace paludis
}
extern template class Pimp<resolver::Constraints>;
- extern template class WrappedForwardIterator<resolver::Constraints::ConstIteratorTag,
+ extern template class PALUDIS_VISIBLE WrappedForwardIterator<resolver::Constraints::ConstIteratorTag,
const std::shared_ptr<const resolver::Constraint> >;
}
diff --git a/paludis/resolver/decisions.hh b/paludis/resolver/decisions.hh
index e989dff..55eddc8 100644
--- a/paludis/resolver/decisions.hh
+++ b/paludis/resolver/decisions.hh
@@ -74,22 +74,22 @@ namespace paludis
static const std::shared_ptr<Decisions> deserialise(Deserialisation & d) PALUDIS_ATTRIBUTE((warn_unused_result));
};
- 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::shared_ptr<const OrdererNotes> >;
+ extern template class PALUDIS_VISIBLE Decisions<UnableToMakeDecision>;
+ extern template class PALUDIS_VISIBLE Decisions<ChangesToMakeDecision>;
+ extern template class PALUDIS_VISIBLE Decisions<ChangeOrRemoveDecision>;
+ extern template class PALUDIS_VISIBLE Decisions<ConfirmableDecision>;
+ extern template class PALUDIS_VISIBLE Decisions<ChangeOrRemoveDecision, std::shared_ptr<const OrdererNotes> >;
}
- extern template class WrappedForwardIterator<resolver::Decisions<resolver::UnableToMakeDecision>::ConstIteratorTag,
+ extern template class PALUDIS_VISIBLE WrappedForwardIterator<resolver::Decisions<resolver::UnableToMakeDecision>::ConstIteratorTag,
const std::shared_ptr<const resolver::UnableToMakeDecision> >;
- extern template class WrappedForwardIterator<resolver::Decisions<resolver::ChangesToMakeDecision>::ConstIteratorTag,
+ extern template class PALUDIS_VISIBLE WrappedForwardIterator<resolver::Decisions<resolver::ChangesToMakeDecision>::ConstIteratorTag,
const std::shared_ptr<const resolver::ChangesToMakeDecision> >;
- extern template class WrappedForwardIterator<resolver::Decisions<resolver::ChangeOrRemoveDecision>::ConstIteratorTag,
+ extern template class PALUDIS_VISIBLE WrappedForwardIterator<resolver::Decisions<resolver::ChangeOrRemoveDecision>::ConstIteratorTag,
const std::shared_ptr<const resolver::ChangeOrRemoveDecision> >;
- extern template class WrappedForwardIterator<resolver::Decisions<resolver::ConfirmableDecision>::ConstIteratorTag,
+ extern template class PALUDIS_VISIBLE WrappedForwardIterator<resolver::Decisions<resolver::ConfirmableDecision>::ConstIteratorTag,
const std::shared_ptr<const resolver::ConfirmableDecision> >;
- extern template class WrappedForwardIterator<resolver::Decisions<resolver::ChangeOrRemoveDecision,
+ extern template class PALUDIS_VISIBLE WrappedForwardIterator<resolver::Decisions<resolver::ChangeOrRemoveDecision,
std::shared_ptr<const resolver::OrdererNotes> >::ConstIteratorTag,
const std::pair<
std::shared_ptr<const resolver::ChangeOrRemoveDecision>,
diff --git a/paludis/resolver/job_list.hh b/paludis/resolver/job_list.hh
index 90a1ef9..8b7099c 100644
--- a/paludis/resolver/job_list.hh
+++ b/paludis/resolver/job_list.hh
@@ -60,13 +60,13 @@ namespace paludis
void serialise(Serialiser &) const;
};
- extern template class JobList<PretendJob>;
- extern template class JobList<ExecuteJob>;
+ extern template class PALUDIS_VISIBLE JobList<PretendJob>;
+ extern template class PALUDIS_VISIBLE JobList<ExecuteJob>;
}
- extern template class WrappedForwardIterator<resolver::JobListConstIteratorTag<resolver::PretendJob>,
+ extern template class PALUDIS_VISIBLE WrappedForwardIterator<resolver::JobListConstIteratorTag<resolver::PretendJob>,
const std::shared_ptr<resolver::PretendJob> >;
- extern template class WrappedForwardIterator<resolver::JobListConstIteratorTag<resolver::ExecuteJob>,
+ extern template class PALUDIS_VISIBLE WrappedForwardIterator<resolver::JobListConstIteratorTag<resolver::ExecuteJob>,
const std::shared_ptr<resolver::ExecuteJob> >;
}
diff --git a/paludis/resolver/job_requirements.hh b/paludis/resolver/job_requirements.hh
index 354c601..579b6a4 100644
--- a/paludis/resolver/job_requirements.hh
+++ b/paludis/resolver/job_requirements.hh
@@ -53,8 +53,8 @@ namespace paludis
};
}
- extern template class Sequence<resolver::JobRequirement>;
- extern template class WrappedForwardIterator<Sequence<resolver::JobRequirement>::ConstIteratorTag, const resolver::JobRequirement>;
+ extern template class PALUDIS_VISIBLE Sequence<resolver::JobRequirement>;
+ extern template class PALUDIS_VISIBLE WrappedForwardIterator<Sequence<resolver::JobRequirement>::ConstIteratorTag, const resolver::JobRequirement>;
}
#endif
diff --git a/paludis/resolver/nag.hh b/paludis/resolver/nag.hh
index e944bc6..077e950 100644
--- a/paludis/resolver/nag.hh
+++ b/paludis/resolver/nag.hh
@@ -104,9 +104,9 @@ namespace paludis
};
}
- extern template class WrappedForwardIterator<resolver::NAG::EdgesFromConstIteratorTag,
+ extern template class PALUDIS_VISIBLE WrappedForwardIterator<resolver::NAG::EdgesFromConstIteratorTag,
const std::pair<const resolver::NAGIndex, resolver::NAGEdgeProperties> >;
- extern template class WrappedForwardIterator<resolver::NAG::NodesConstIteratorTag, const resolver::NAGIndex>;
+ extern template class PALUDIS_VISIBLE WrappedForwardIterator<resolver::NAG::NodesConstIteratorTag, const resolver::NAGIndex>;
}
#endif
diff --git a/paludis/resolver/resolutions_by_resolvent.hh b/paludis/resolver/resolutions_by_resolvent.hh
index bb7cd97..bdcb145 100644
--- a/paludis/resolver/resolutions_by_resolvent.hh
+++ b/paludis/resolver/resolutions_by_resolvent.hh
@@ -56,7 +56,7 @@ namespace paludis
};
}
- extern template class WrappedForwardIterator<resolver::ResolutionsByResolvent::ConstIteratorTag,
+ extern template class PALUDIS_VISIBLE WrappedForwardIterator<resolver::ResolutionsByResolvent::ConstIteratorTag,
const std::shared_ptr<resolver::Resolution> >;
}
diff --git a/paludis/resolver/resolvent.hh b/paludis/resolver/resolvent.hh
index 57f98ae..8cf7a79 100644
--- a/paludis/resolver/resolvent.hh
+++ b/paludis/resolver/resolvent.hh
@@ -1,7 +1,7 @@
/* vim: set sw=4 sts=4 et foldmethod=syntax : */
/*
- * Copyright (c) 2009, 2010 Ciaran McCreesh
+ * Copyright (c) 2009, 2010, 2011 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,8 +66,8 @@ namespace paludis
};
}
- extern template class Sequence<resolver::Resolvent>;
- extern template class WrappedForwardIterator<Sequence<resolver::Resolvent>::ConstIteratorTag, const resolver::Resolvent>;
+ extern template class PALUDIS_VISIBLE Sequence<resolver::Resolvent>;
+ extern template class PALUDIS_VISIBLE WrappedForwardIterator<Sequence<resolver::Resolvent>::ConstIteratorTag, const resolver::Resolvent>;
}
#endif
diff --git a/paludis/resolver/strongly_connected_component.hh b/paludis/resolver/strongly_connected_component.hh
index 28d3894..a77566c 100644
--- a/paludis/resolver/strongly_connected_component.hh
+++ b/paludis/resolver/strongly_connected_component.hh
@@ -1,7 +1,7 @@
/* vim: set sw=4 sts=4 et foldmethod=syntax : */
/*
- * Copyright (c) 2010 Ciaran McCreesh
+ * Copyright (c) 2010, 2011 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
@@ -47,12 +47,12 @@ namespace paludis
};
}
- 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 PALUDIS_VISIBLE Set<resolver::NAGIndex>;
+ extern template class PALUDIS_VISIBLE WrappedForwardIterator<Set<resolver::NAGIndex>::ConstIteratorTag, const resolver::NAGIndex>;
+ extern template class PALUDIS_VISIBLE WrappedOutputIterator<Set<resolver::NAGIndex>::InserterTag, resolver::NAGIndex>;
- extern template class Sequence<resolver::StronglyConnectedComponent>;
- extern template class WrappedForwardIterator<Sequence<resolver::StronglyConnectedComponent>::ConstIteratorTag, const resolver::StronglyConnectedComponent>;
+ extern template class PALUDIS_VISIBLE Sequence<resolver::StronglyConnectedComponent>;
+ extern template class PALUDIS_VISIBLE WrappedForwardIterator<Sequence<resolver::StronglyConnectedComponent>::ConstIteratorTag, const resolver::StronglyConnectedComponent>;
}
#endif
diff --git a/paludis/spec_tree.cc b/paludis/spec_tree.cc
index b954273..c67fbf8 100644
--- a/paludis/spec_tree.cc
+++ b/paludis/spec_tree.cc
@@ -264,28 +264,30 @@ namespace paludis
template const std::shared_ptr<GenericSpecTree::NodeType<NamedSetDepSpec>::Type>
BasicInnerNode<GenericSpecTree>::append<NamedSetDepSpec>(const std::shared_ptr<NamedSetDepSpec> &);
- namespace spec_tree_internals {
+ namespace spec_tree_internals
+ {
template class BasicInnerNode<GenericSpecTree>;
}
template class WrappedForwardIterator<BasicInnerNode<GenericSpecTree>::ConstIteratorTag,
const std::shared_ptr<const BasicNode<GenericSpecTree> > >;
- namespace spec_tree_internals {
- template class LeafNode<GenericSpecTree, PackageDepSpec>;
- template class LeafNode<GenericSpecTree, BlockDepSpec>;
- template class LeafNode<GenericSpecTree, DependenciesLabelsDepSpec>;
- template class LeafNode<GenericSpecTree, NamedSetDepSpec>;
- template class LeafNode<GenericSpecTree, PlainTextDepSpec>;
- template class LeafNode<GenericSpecTree, PlainTextLabelDepSpec>;
- template class LeafNode<GenericSpecTree, SimpleURIDepSpec>;
- template class LeafNode<GenericSpecTree, FetchableURIDepSpec>;
- template class LeafNode<GenericSpecTree, LicenseDepSpec>;
- template class LeafNode<GenericSpecTree, URILabelsDepSpec>;
- template class InnerNode<GenericSpecTree, AllDepSpec>;
- template class InnerNode<GenericSpecTree, AnyDepSpec>;
- template class InnerNode<GenericSpecTree, ExactlyOneDepSpec>;
- template class InnerNode<GenericSpecTree, ConditionalDepSpec>;
+ namespace spec_tree_internals
+ {
+ template class PALUDIS_VISIBLE LeafNode<GenericSpecTree, PackageDepSpec>;
+ template class PALUDIS_VISIBLE LeafNode<GenericSpecTree, BlockDepSpec>;
+ template class PALUDIS_VISIBLE LeafNode<GenericSpecTree, DependenciesLabelsDepSpec>;
+ template class PALUDIS_VISIBLE LeafNode<GenericSpecTree, NamedSetDepSpec>;
+ template class PALUDIS_VISIBLE LeafNode<GenericSpecTree, PlainTextDepSpec>;
+ template class PALUDIS_VISIBLE LeafNode<GenericSpecTree, PlainTextLabelDepSpec>;
+ template class PALUDIS_VISIBLE LeafNode<GenericSpecTree, SimpleURIDepSpec>;
+ template class PALUDIS_VISIBLE LeafNode<GenericSpecTree, FetchableURIDepSpec>;
+ template class PALUDIS_VISIBLE LeafNode<GenericSpecTree, LicenseDepSpec>;
+ template class PALUDIS_VISIBLE LeafNode<GenericSpecTree, URILabelsDepSpec>;
+ template class PALUDIS_VISIBLE InnerNode<GenericSpecTree, AllDepSpec>;
+ template class PALUDIS_VISIBLE InnerNode<GenericSpecTree, AnyDepSpec>;
+ template class PALUDIS_VISIBLE InnerNode<GenericSpecTree, ExactlyOneDepSpec>;
+ template class PALUDIS_VISIBLE InnerNode<GenericSpecTree, ConditionalDepSpec>;
}
}
@@ -330,16 +332,18 @@ namespace paludis
{
template class WrappedForwardIterator<BasicInnerNode<DependencySpecTree>::ConstIteratorTag,
const std::shared_ptr<const BasicNode<DependencySpecTree> > >;
- namespace spec_tree_internals {
+
+ namespace spec_tree_internals
+ {
template class BasicInnerNode<DependencySpecTree>;
- template class LeafNode<DependencySpecTree, PackageDepSpec>;
- template class LeafNode<DependencySpecTree, BlockDepSpec>;
- template class LeafNode<DependencySpecTree, DependenciesLabelsDepSpec>;
- template class LeafNode<DependencySpecTree, NamedSetDepSpec>;
- template class InnerNode<DependencySpecTree, AllDepSpec>;
- template class InnerNode<DependencySpecTree, AnyDepSpec>;
- template class InnerNode<DependencySpecTree, ConditionalDepSpec>;
+ template class PALUDIS_VISIBLE LeafNode<DependencySpecTree, PackageDepSpec>;
+ template class PALUDIS_VISIBLE LeafNode<DependencySpecTree, BlockDepSpec>;
+ template class PALUDIS_VISIBLE LeafNode<DependencySpecTree, DependenciesLabelsDepSpec>;
+ template class PALUDIS_VISIBLE LeafNode<DependencySpecTree, NamedSetDepSpec>;
+ template class PALUDIS_VISIBLE InnerNode<DependencySpecTree, AllDepSpec>;
+ template class PALUDIS_VISIBLE InnerNode<DependencySpecTree, AnyDepSpec>;
+ template class PALUDIS_VISIBLE InnerNode<DependencySpecTree, ConditionalDepSpec>;
}
}
/* SetSpecTree */
@@ -364,11 +368,12 @@ namespace paludis
template class WrappedForwardIterator<BasicInnerNode<SetSpecTree>::ConstIteratorTag,
const std::shared_ptr<const BasicNode<SetSpecTree> > >;
- namespace spec_tree_internals {
+ namespace spec_tree_internals
+ {
template class BasicInnerNode<SetSpecTree>;
- template class LeafNode<SetSpecTree, PackageDepSpec>;
- template class LeafNode<SetSpecTree, NamedSetDepSpec>;
- template class InnerNode<SetSpecTree, AllDepSpec>;
+ template class PALUDIS_VISIBLE LeafNode<SetSpecTree, PackageDepSpec>;
+ template class PALUDIS_VISIBLE LeafNode<SetSpecTree, NamedSetDepSpec>;
+ template class PALUDIS_VISIBLE InnerNode<SetSpecTree, AllDepSpec>;
}
}
@@ -399,12 +404,13 @@ namespace paludis
template class WrappedForwardIterator<BasicInnerNode<PlainTextSpecTree>::ConstIteratorTag,
const std::shared_ptr<const BasicNode<PlainTextSpecTree> > >;
- namespace spec_tree_internals {
+ namespace spec_tree_internals
+ {
template class BasicInnerNode<PlainTextSpecTree>;
- template class LeafNode<PlainTextSpecTree, PlainTextDepSpec>;
- template class LeafNode<PlainTextSpecTree, PlainTextLabelDepSpec>;
- template class InnerNode<PlainTextSpecTree, AllDepSpec>;
- template class InnerNode<PlainTextSpecTree, ConditionalDepSpec>;
+ template class PALUDIS_VISIBLE LeafNode<PlainTextSpecTree, PlainTextDepSpec>;
+ template class PALUDIS_VISIBLE LeafNode<PlainTextSpecTree, PlainTextLabelDepSpec>;
+ template class PALUDIS_VISIBLE InnerNode<PlainTextSpecTree, AllDepSpec>;
+ template class PALUDIS_VISIBLE InnerNode<PlainTextSpecTree, ConditionalDepSpec>;
}
}
/* RequiredUseSpecTree */
@@ -439,13 +445,14 @@ namespace paludis
template class WrappedForwardIterator<BasicInnerNode<RequiredUseSpecTree>::ConstIteratorTag,
const std::shared_ptr<const BasicNode<RequiredUseSpecTree> > >;
- namespace spec_tree_internals {
+ namespace spec_tree_internals
+ {
template class BasicInnerNode<RequiredUseSpecTree>;
- template class LeafNode<RequiredUseSpecTree, PlainTextDepSpec>;
- template class InnerNode<RequiredUseSpecTree, AllDepSpec>;
- template class InnerNode<RequiredUseSpecTree, AnyDepSpec>;
- template class InnerNode<RequiredUseSpecTree, ExactlyOneDepSpec>;
- template class InnerNode<RequiredUseSpecTree, ConditionalDepSpec>;
+ template class PALUDIS_VISIBLE LeafNode<RequiredUseSpecTree, PlainTextDepSpec>;
+ template class PALUDIS_VISIBLE InnerNode<RequiredUseSpecTree, AllDepSpec>;
+ template class PALUDIS_VISIBLE InnerNode<RequiredUseSpecTree, AnyDepSpec>;
+ template class PALUDIS_VISIBLE InnerNode<RequiredUseSpecTree, ExactlyOneDepSpec>;
+ template class PALUDIS_VISIBLE InnerNode<RequiredUseSpecTree, ConditionalDepSpec>;
}
}
/* SimpleURISpecTree */
@@ -470,11 +477,12 @@ namespace paludis
template class WrappedForwardIterator<BasicInnerNode<SimpleURISpecTree>::ConstIteratorTag,
const std::shared_ptr<const BasicNode<SimpleURISpecTree> > >;
- namespace spec_tree_internals {
+ namespace spec_tree_internals
+ {
template class BasicInnerNode<SimpleURISpecTree>;
- template class LeafNode<SimpleURISpecTree, SimpleURIDepSpec>;
- template class InnerNode<SimpleURISpecTree, AllDepSpec>;
- template class InnerNode<SimpleURISpecTree, ConditionalDepSpec>;
+ template class PALUDIS_VISIBLE LeafNode<SimpleURISpecTree, SimpleURIDepSpec>;
+ template class PALUDIS_VISIBLE InnerNode<SimpleURISpecTree, AllDepSpec>;
+ template class PALUDIS_VISIBLE InnerNode<SimpleURISpecTree, ConditionalDepSpec>;
}
}
/* FetchableURISpecTree */
@@ -504,13 +512,14 @@ namespace paludis
template class WrappedForwardIterator<BasicInnerNode<FetchableURISpecTree>::ConstIteratorTag,
const std::shared_ptr<const BasicNode<FetchableURISpecTree> > >;
- namespace spec_tree_internals {
+ namespace spec_tree_internals
+ {
template class BasicInnerNode<FetchableURISpecTree>;
- template class LeafNode<FetchableURISpecTree, FetchableURIDepSpec>;
- template class LeafNode<FetchableURISpecTree, URILabelsDepSpec>;
- template class InnerNode<FetchableURISpecTree, AllDepSpec>;
- template class InnerNode<FetchableURISpecTree, ConditionalDepSpec>;
+ template class PALUDIS_VISIBLE LeafNode<FetchableURISpecTree, FetchableURIDepSpec>;
+ template class PALUDIS_VISIBLE LeafNode<FetchableURISpecTree, URILabelsDepSpec>;
+ template class PALUDIS_VISIBLE InnerNode<FetchableURISpecTree, AllDepSpec>;
+ template class PALUDIS_VISIBLE InnerNode<FetchableURISpecTree, ConditionalDepSpec>;
}
}
@@ -541,13 +550,14 @@ namespace paludis
template class WrappedForwardIterator<BasicInnerNode<LicenseSpecTree>::ConstIteratorTag,
const std::shared_ptr<const BasicNode<LicenseSpecTree> > >;
- namespace spec_tree_internals {
+ namespace spec_tree_internals
+ {
template class BasicInnerNode<LicenseSpecTree>;
- template class LeafNode<LicenseSpecTree, LicenseDepSpec>;
- template class InnerNode<LicenseSpecTree, AllDepSpec>;
- template class InnerNode<LicenseSpecTree, AnyDepSpec>;
- template class InnerNode<LicenseSpecTree, ConditionalDepSpec>;
+ template class PALUDIS_VISIBLE LeafNode<LicenseSpecTree, LicenseDepSpec>;
+ template class PALUDIS_VISIBLE InnerNode<LicenseSpecTree, AllDepSpec>;
+ template class PALUDIS_VISIBLE InnerNode<LicenseSpecTree, AnyDepSpec>;
+ template class PALUDIS_VISIBLE InnerNode<LicenseSpecTree, ConditionalDepSpec>;
}
}
diff --git a/paludis/spec_tree.hh b/paludis/spec_tree.hh
index 690cce6..9629fd9 100644
--- a/paludis/spec_tree.hh
+++ b/paludis/spec_tree.hh
@@ -177,23 +177,96 @@ namespace paludis
const std::shared_ptr<typename InnerNodeType<RootNode_>::Type> _top;
};
- extern template class WrappedForwardIterator<spec_tree_internals::BasicInnerNode<GenericSpecTree>::ConstIteratorTag,
+ extern template class PALUDIS_VISIBLE SpecTree<MakeTypeList<
+ SpecTreeLeafNodeType<PlainTextDepSpec>,
+ SpecTreeLeafNodeType<PlainTextLabelDepSpec>,
+ SpecTreeLeafNodeType<SimpleURIDepSpec>,
+ SpecTreeLeafNodeType<FetchableURIDepSpec>,
+ SpecTreeLeafNodeType<LicenseDepSpec>,
+ SpecTreeLeafNodeType<PackageDepSpec>,
+ SpecTreeLeafNodeType<BlockDepSpec>,
+ SpecTreeLeafNodeType<URILabelsDepSpec>,
+ SpecTreeLeafNodeType<DependenciesLabelsDepSpec>,
+ SpecTreeLeafNodeType<NamedSetDepSpec>,
+ SpecTreeInnerNodeType<AllDepSpec>,
+ SpecTreeInnerNodeType<AnyDepSpec>,
+ SpecTreeInnerNodeType<ExactlyOneDepSpec>,
+ SpecTreeInnerNodeType<ConditionalDepSpec>
+ >::Type, AllDepSpec>;
+
+ extern template class PALUDIS_VISIBLE SpecTree<MakeTypeList<
+ SpecTreeLeafNodeType<LicenseDepSpec>,
+ SpecTreeInnerNodeType<AllDepSpec>,
+ SpecTreeInnerNodeType<AnyDepSpec>,
+ SpecTreeInnerNodeType<ConditionalDepSpec>
+ >::Type, AllDepSpec>;
+
+ extern template class PALUDIS_VISIBLE SpecTree<MakeTypeList<
+ SpecTreeLeafNodeType<FetchableURIDepSpec>,
+ SpecTreeLeafNodeType<URILabelsDepSpec>,
+ SpecTreeInnerNodeType<AllDepSpec>,
+ SpecTreeInnerNodeType<ConditionalDepSpec>
+ >::Type, AllDepSpec>;
+
+ extern template class PALUDIS_VISIBLE SpecTree<MakeTypeList<
+ SpecTreeLeafNodeType<SimpleURIDepSpec>,
+ SpecTreeInnerNodeType<AllDepSpec>,
+ SpecTreeInnerNodeType<ConditionalDepSpec>
+ >::Type, AllDepSpec>;
+
+ extern template class PALUDIS_VISIBLE SpecTree<MakeTypeList<
+ SpecTreeLeafNodeType<PackageDepSpec>,
+ SpecTreeInnerNodeType<AllDepSpec>,
+ SpecTreeInnerNodeType<ConditionalDepSpec>
+ >::Type, AllDepSpec>;
+
+ extern template class PALUDIS_VISIBLE SpecTree<MakeTypeList<
+ SpecTreeLeafNodeType<PlainTextDepSpec>,
+ SpecTreeLeafNodeType<PlainTextLabelDepSpec>,
+ SpecTreeInnerNodeType<AllDepSpec>,
+ SpecTreeInnerNodeType<ConditionalDepSpec>
+ >::Type, AllDepSpec>;
+
+ extern template class PALUDIS_VISIBLE SpecTree<MakeTypeList<
+ SpecTreeLeafNodeType<PlainTextDepSpec>,
+ SpecTreeInnerNodeType<AllDepSpec>,
+ SpecTreeInnerNodeType<AnyDepSpec>,
+ SpecTreeInnerNodeType<ExactlyOneDepSpec>,
+ SpecTreeInnerNodeType<ConditionalDepSpec>
+ >::Type, AllDepSpec>;
+
+ extern template class PALUDIS_VISIBLE SpecTree<MakeTypeList<
+ SpecTreeLeafNodeType<PackageDepSpec>,
+ SpecTreeLeafNodeType<BlockDepSpec>,
+ SpecTreeLeafNodeType<DependenciesLabelsDepSpec>,
+ SpecTreeLeafNodeType<NamedSetDepSpec>,
+ SpecTreeInnerNodeType<AllDepSpec>,
+ SpecTreeInnerNodeType<AnyDepSpec>,
+ SpecTreeInnerNodeType<ConditionalDepSpec>
+ >::Type, AllDepSpec>;
+
+ extern template class PALUDIS_VISIBLE SpecTree<MakeTypeList<
+ SpecTreeLeafNodeType<PackageDepSpec>,
+ SpecTreeLeafNodeType<NamedSetDepSpec>,
+ SpecTreeInnerNodeType<AllDepSpec>
+ >::Type, AllDepSpec>;
+
+ extern template class PALUDIS_VISIBLE WrappedForwardIterator<spec_tree_internals::BasicInnerNode<GenericSpecTree>::ConstIteratorTag,
const std::shared_ptr<const spec_tree_internals::BasicNode<GenericSpecTree> > >;
- extern template class WrappedForwardIterator<spec_tree_internals::BasicInnerNode<DependencySpecTree>::ConstIteratorTag,
+ extern template class PALUDIS_VISIBLE WrappedForwardIterator<spec_tree_internals::BasicInnerNode<DependencySpecTree>::ConstIteratorTag,
const std::shared_ptr<const spec_tree_internals::BasicNode<DependencySpecTree> > >;
- extern template class WrappedForwardIterator<spec_tree_internals::BasicInnerNode<SetSpecTree>::ConstIteratorTag,
+ extern template class PALUDIS_VISIBLE WrappedForwardIterator<spec_tree_internals::BasicInnerNode<SetSpecTree>::ConstIteratorTag,
const std::shared_ptr<const spec_tree_internals::BasicNode<SetSpecTree> > >;
- extern template class WrappedForwardIterator<spec_tree_internals::BasicInnerNode<PlainTextSpecTree>::ConstIteratorTag,
+ extern template class PALUDIS_VISIBLE WrappedForwardIterator<spec_tree_internals::BasicInnerNode<PlainTextSpecTree>::ConstIteratorTag,
const std::shared_ptr<const spec_tree_internals::BasicNode<PlainTextSpecTree> > >;
- extern template class WrappedForwardIterator<spec_tree_internals::BasicInnerNode<RequiredUseSpecTree>::ConstIteratorTag,
+ extern template class PALUDIS_VISIBLE WrappedForwardIterator<spec_tree_internals::BasicInnerNode<RequiredUseSpecTree>::ConstIteratorTag,
const std::shared_ptr<const spec_tree_internals::BasicNode<RequiredUseSpecTree> > >;
- extern template class WrappedForwardIterator<spec_tree_internals::BasicInnerNode<SimpleURISpecTree>::ConstIteratorTag,
+ extern template class PALUDIS_VISIBLE WrappedForwardIterator<spec_tree_internals::BasicInnerNode<SimpleURISpecTree>::ConstIteratorTag,
const std::shared_ptr<const spec_tree_internals::BasicNode<SimpleURISpecTree> > >;
- extern template class WrappedForwardIterator<spec_tree_internals::BasicInnerNode<FetchableURISpecTree>::ConstIteratorTag,
+ extern template class PALUDIS_VISIBLE WrappedForwardIterator<spec_tree_internals::BasicInnerNode<FetchableURISpecTree>::ConstIteratorTag,
const std::shared_ptr<const spec_tree_internals::BasicNode<FetchableURISpecTree> > >;
extern template class WrappedForwardIterator<spec_tree_internals::BasicInnerNode<LicenseSpecTree>::ConstIteratorTag,
const std::shared_ptr<const spec_tree_internals::BasicNode<LicenseSpecTree> > >;
-
}
#endif
diff --git a/paludis/util/config_file.hh b/paludis/util/config_file.hh
index 4429943..1b2d695 100644
--- a/paludis/util/config_file.hh
+++ b/paludis/util/config_file.hh
@@ -259,8 +259,8 @@ namespace paludis
extern template class Pimp<LineConfigFile>;
extern template class Pimp<KeyValueConfigFile>;
- extern template class WrappedForwardIterator<LineConfigFile::ConstIteratorTag, const std::string>;
- extern template class WrappedForwardIterator<KeyValueConfigFile::ConstIteratorTag, const std::pair<const std::string, std::string> >;
+ extern template class PALUDIS_VISIBLE WrappedForwardIterator<LineConfigFile::ConstIteratorTag, const std::string>;
+ extern template class PALUDIS_VISIBLE WrappedForwardIterator<KeyValueConfigFile::ConstIteratorTag, const std::pair<const std::string, std::string> >;
}
#endif
diff --git a/paludis/util/digest_registry.hh b/paludis/util/digest_registry.hh
index cf14fcf..9e01016 100644
--- a/paludis/util/digest_registry.hh
+++ b/paludis/util/digest_registry.hh
@@ -31,6 +31,11 @@
namespace paludis
{
+ class DigestRegistry;
+
+ extern template class Pimp<DigestRegistry>;
+ extern template class PALUDIS_VISIBLE Singleton<DigestRegistry>;
+
class PALUDIS_VISIBLE DigestRegistry :
public Singleton<DigestRegistry>
{
@@ -73,9 +78,6 @@ namespace paludis
return digest.hexsum();
}
};
-
- extern template class Pimp<DigestRegistry>;
- extern template class Singleton<DigestRegistry>;
}
#endif
diff --git a/paludis/util/elf.cc b/paludis/util/elf.cc
index 760fe4f..7f6771a 100644
--- a/paludis/util/elf.cc
+++ b/paludis/util/elf.cc
@@ -400,9 +400,10 @@ ElfObject<ElfType_>::get_section_by_index(unsigned int index) const
namespace paludis
{
- template class ElfObject<Elf32Type>;
- template class ElfObject<Elf64Type>;
+ template class PALUDIS_VISIBLE ElfObject<Elf32Type>;
+ template class PALUDIS_VISIBLE ElfObject<Elf64Type>;
- template class WrappedForwardIterator<ElfObject<Elf32Type>::SectionIteratorTag, Section<Elf32Type> >;
- template class WrappedForwardIterator<ElfObject<Elf64Type>::SectionIteratorTag, Section<Elf64Type> >;
+ template class PALUDIS_VISIBLE WrappedForwardIterator<ElfObject<Elf32Type>::SectionIteratorTag, Section<Elf32Type> >;
+ template class PALUDIS_VISIBLE WrappedForwardIterator<ElfObject<Elf64Type>::SectionIteratorTag, Section<Elf64Type> >;
}
+
diff --git a/paludis/util/elf_dynamic_section.cc b/paludis/util/elf_dynamic_section.cc
index cfb9391..1b13d3e 100644
--- a/paludis/util/elf_dynamic_section.cc
+++ b/paludis/util/elf_dynamic_section.cc
@@ -357,9 +357,10 @@ DynamicSection<ElfType_>::entry_end() const
namespace paludis
{
- template class DynamicSection<Elf32Type>;
- template class DynamicSection<Elf64Type>;
+ template class PALUDIS_VISIBLE DynamicSection<Elf32Type>;
+ template class PALUDIS_VISIBLE DynamicSection<Elf64Type>;
- template class WrappedForwardIterator<DynamicSection<Elf32Type>::EntryIteratorTag, DynamicEntry<Elf32Type> >;
- template class WrappedForwardIterator<DynamicSection<Elf64Type>::EntryIteratorTag, DynamicEntry<Elf64Type> >;
+ template class PALUDIS_VISIBLE WrappedForwardIterator<DynamicSection<Elf32Type>::EntryIteratorTag, DynamicEntry<Elf32Type> >;
+ template class PALUDIS_VISIBLE WrappedForwardIterator<DynamicSection<Elf64Type>::EntryIteratorTag, DynamicEntry<Elf64Type> >;
}
+
diff --git a/paludis/util/elf_relocation_section.cc b/paludis/util/elf_relocation_section.cc
index d628f68..3201329 100644
--- a/paludis/util/elf_relocation_section.cc
+++ b/paludis/util/elf_relocation_section.cc
@@ -140,19 +140,20 @@ RelocationSection<ElfType_, Relocation_>::relocation_end() const
namespace paludis
{
- template class RelocationSection<Elf32Type, Relocation<Elf32Type> >;
- template class WrappedForwardIterator<RelocationSection<Elf32Type, Relocation<Elf32Type> >::RelocationIteratorTag,
+ template class PALUDIS_VISIBLE RelocationSection<Elf32Type, Relocation<Elf32Type> >;
+ template class PALUDIS_VISIBLE WrappedForwardIterator<RelocationSection<Elf32Type, Relocation<Elf32Type> >::RelocationIteratorTag,
const Relocation<Elf32Type>::Entry>;
- template class RelocationSection<Elf32Type, RelocationA<Elf32Type> >;
- template class WrappedForwardIterator<RelocationSection<Elf32Type, RelocationA<Elf32Type> >::RelocationIteratorTag,
+ template class PALUDIS_VISIBLE RelocationSection<Elf32Type, RelocationA<Elf32Type> >;
+ template class PALUDIS_VISIBLE WrappedForwardIterator<RelocationSection<Elf32Type, RelocationA<Elf32Type> >::RelocationIteratorTag,
const RelocationA<Elf32Type>::Entry>;
- template class RelocationSection<Elf64Type, Relocation<Elf64Type> >;
- template class WrappedForwardIterator<RelocationSection<Elf64Type, Relocation<Elf64Type> >::RelocationIteratorTag,
+ template class PALUDIS_VISIBLE RelocationSection<Elf64Type, Relocation<Elf64Type> >;
+ template class PALUDIS_VISIBLE WrappedForwardIterator<RelocationSection<Elf64Type, Relocation<Elf64Type> >::RelocationIteratorTag,
const Relocation<Elf64Type>::Entry>;
- template class RelocationSection<Elf64Type, RelocationA<Elf64Type> >;
- template class WrappedForwardIterator<RelocationSection<Elf64Type, RelocationA<Elf64Type> >::RelocationIteratorTag,
+ template class PALUDIS_VISIBLE RelocationSection<Elf64Type, RelocationA<Elf64Type> >;
+ template class PALUDIS_VISIBLE WrappedForwardIterator<RelocationSection<Elf64Type, RelocationA<Elf64Type> >::RelocationIteratorTag,
const RelocationA<Elf64Type>::Entry>;
}
+
diff --git a/paludis/util/elf_sections.cc b/paludis/util/elf_sections.cc
index 5b0d4f1..e3b5066 100644
--- a/paludis/util/elf_sections.cc
+++ b/paludis/util/elf_sections.cc
@@ -101,10 +101,11 @@ StringSection<ElfType_>::get_type() const
namespace paludis
{
- template class Section<Elf32Type>;
- template class Section<Elf64Type>;
- template class GenericSection<Elf32Type>;
- template class GenericSection<Elf64Type>;
- template class StringSection<Elf32Type>;
- template class StringSection<Elf64Type>;
+ template class PALUDIS_VISIBLE Section<Elf32Type>;
+ template class PALUDIS_VISIBLE Section<Elf64Type>;
+ template class PALUDIS_VISIBLE GenericSection<Elf32Type>;
+ template class PALUDIS_VISIBLE GenericSection<Elf64Type>;
+ template class PALUDIS_VISIBLE StringSection<Elf32Type>;
+ template class PALUDIS_VISIBLE StringSection<Elf64Type>;
}
+
diff --git a/paludis/util/elf_symbol_section.cc b/paludis/util/elf_symbol_section.cc
index 636f3fd..8eb4c9e 100644
--- a/paludis/util/elf_symbol_section.cc
+++ b/paludis/util/elf_symbol_section.cc
@@ -218,9 +218,10 @@ SymbolSection<ElfType_>::symbol_end() const
namespace paludis
{
- template class SymbolSection<Elf32Type>;
- template class SymbolSection<Elf64Type>;
+ template class PALUDIS_VISIBLE SymbolSection<Elf32Type>;
+ template class PALUDIS_VISIBLE SymbolSection<Elf64Type>;
- template class WrappedForwardIterator<SymbolSection<Elf32Type>::SymbolIteratorTag, const Symbol<Elf32Type> >;
- template class WrappedForwardIterator<SymbolSection<Elf64Type>::SymbolIteratorTag, const Symbol<Elf64Type> >;
+ template class PALUDIS_VISIBLE WrappedForwardIterator<SymbolSection<Elf32Type>::SymbolIteratorTag, const Symbol<Elf32Type> >;
+ template class PALUDIS_VISIBLE WrappedForwardIterator<SymbolSection<Elf64Type>::SymbolIteratorTag, const Symbol<Elf64Type> >;
}
+
diff --git a/paludis/util/fs_path.cc b/paludis/util/fs_path.cc
index 29456e4..b3857ea 100644
--- a/paludis/util/fs_path.cc
+++ b/paludis/util/fs_path.cc
@@ -443,13 +443,14 @@ FSPathComparator::operator() (const FSPath & a, const FSPath & b) const
namespace paludis
{
- template class Sequence<FSPath>;
- template class WrappedForwardIterator<Sequence<FSPath>::ConstIteratorTag, const FSPath>;
- template class WrappedForwardIterator<Sequence<FSPath>::ReverseConstIteratorTag, const FSPath>;
- template class WrappedOutputIterator<Sequence<FSPath>::InserterTag, FSPath>;
+ template class PALUDIS_VISIBLE Sequence<FSPath>;
+ template class PALUDIS_VISIBLE WrappedForwardIterator<Sequence<FSPath>::ConstIteratorTag, const FSPath>;
+ template class PALUDIS_VISIBLE WrappedForwardIterator<Sequence<FSPath>::ReverseConstIteratorTag, const FSPath>;
+ template class PALUDIS_VISIBLE WrappedOutputIterator<Sequence<FSPath>::InserterTag, FSPath>;
- template class Set<FSPath, FSPathComparator>;
- template class WrappedForwardIterator<Set<FSPath, FSPathComparator>::ConstIteratorTag, const FSPath>;
+ template class PALUDIS_VISIBLE Set<FSPath, FSPathComparator>;
+ template class PALUDIS_VISIBLE WrappedForwardIterator<Set<FSPath, FSPathComparator>::ConstIteratorTag, const FSPath>;
template class Pimp<FSPath>;
}
+
diff --git a/paludis/util/map.cc b/paludis/util/map.cc
index 5ca543b..d642eba 100644
--- a/paludis/util/map.cc
+++ b/paludis/util/map.cc
@@ -1,7 +1,7 @@
/* vim: set sw=4 sts=4 et foldmethod=syntax : */
/*
- * Copyright (c) 2007, 2009 Ciaran McCreesh
+ * Copyright (c) 2007, 2009, 2011 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
@@ -28,7 +28,7 @@ using namespace paludis;
namespace paludis
{
template class Map<std::string, std::string>;
- template class DefaultMapComparator<std::string>;
+ template class PALUDIS_VISIBLE DefaultMapComparator<std::string>;
template class WrappedForwardIterator<Map<std::string, std::string>::ConstIteratorTag, const std::pair<const std::string, std::string> >;
- template class WrappedOutputIterator<Map<std::string, std::string>::InserterTag, std::pair<const std::string, std::string> >;
+ template class PALUDIS_VISIBLE WrappedOutputIterator<Map<std::string, std::string>::InserterTag, std::pair<const std::string, std::string> >;
}
diff --git a/paludis/util/map.hh b/paludis/util/map.hh
index a831023..d877e82 100644
--- a/paludis/util/map.hh
+++ b/paludis/util/map.hh
@@ -108,8 +108,8 @@ namespace paludis
///\}
};
- 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> >;
+ extern template class PALUDIS_VISIBLE Map<std::string, std::string>;
+ extern template class PALUDIS_VISIBLE WrappedForwardIterator<Map<std::string, std::string>::ConstIteratorTag, const std::pair<const std::string, std::string> >;
}
#endif
diff --git a/paludis/util/sequence.cc b/paludis/util/sequence.cc
index cd46586..4ce4f3e 100644
--- a/paludis/util/sequence.cc
+++ b/paludis/util/sequence.cc
@@ -1,7 +1,7 @@
/* vim: set sw=4 sts=4 et foldmethod=syntax : */
/*
- * Copyright (c) 2008, 2009 Ciaran McCreesh
+ * Copyright (c) 2008, 2009, 2011 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
@@ -25,7 +25,7 @@ using namespace paludis;
namespace paludis
{
- template class Sequence<std::string>;
- template class WrappedForwardIterator<Sequence<std::string>::ConstIteratorTag, const std::string>;
- template class WrappedOutputIterator<Sequence<std::string>::InserterTag, std::string>;
+ template class PALUDIS_VISIBLE Sequence<std::string>;
+ template class PALUDIS_VISIBLE WrappedForwardIterator<Sequence<std::string>::ConstIteratorTag, const std::string>;
+ template class PALUDIS_VISIBLE WrappedOutputIterator<Sequence<std::string>::InserterTag, std::string>;
}
diff --git a/paludis/util/set.cc b/paludis/util/set.cc
index c731128..beeb960 100644
--- a/paludis/util/set.cc
+++ b/paludis/util/set.cc
@@ -1,7 +1,7 @@
/* vim: set sw=4 sts=4 et foldmethod=syntax : */
/*
- * Copyright (c) 2009 Ciaran McCreesh
+ * Copyright (c) 2009, 2011 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
@@ -18,10 +18,15 @@
*/
#include <paludis/util/set-impl.hh>
+#include <paludis/util/wrapped_forward_iterator-impl.hh>
+#include <paludis/util/wrapped_output_iterator-impl.hh>
using namespace paludis;
namespace paludis
{
template class Set<std::string>;
+ template class PALUDIS_VISIBLE WrappedForwardIterator<Set<std::string>::ConstIteratorTag, const std::string>;
+ template class PALUDIS_VISIBLE WrappedOutputIterator<Set<std::string>::InserterTag, std::string>;
}
+
diff --git a/paludis/util/set.hh b/paludis/util/set.hh
index 50efd69..6b31134 100644
--- a/paludis/util/set.hh
+++ b/paludis/util/set.hh
@@ -109,7 +109,7 @@ namespace paludis
///\}
};
- extern template class Set<std::string>;
+ extern template class PALUDIS_VISIBLE Set<std::string>;
}
#endif
diff --git a/paludis/version_requirements.cc b/paludis/version_requirements.cc
index fef0d67..ee2025f 100644
--- a/paludis/version_requirements.cc
+++ b/paludis/version_requirements.cc
@@ -1,7 +1,7 @@
/* vim: set sw=4 sts=4 et foldmethod=syntax : */
/*
- * Copyright (c) 2006, 2007, 2008 Ciaran McCreesh
+ * Copyright (c) 2006, 2007, 2008, 2011 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,3 +58,4 @@ namespace paludis
template class WrappedForwardIterator<Sequence<VersionRequirement>::ConstIteratorTag, const VersionRequirement>;
template class WrappedOutputIterator<Sequence<VersionRequirement>::InserterTag, VersionRequirement>;
}
+
diff --git a/paludis/version_requirements.hh b/paludis/version_requirements.hh
index 380adc0..92f9137 100644
--- a/paludis/version_requirements.hh
+++ b/paludis/version_requirements.hh
@@ -1,7 +1,7 @@
/* vim: set sw=4 sts=4 et foldmethod=syntax : */
/*
- * Copyright (c) 2006, 2007, 2008, 2010 Ciaran McCreesh
+ * Copyright (c) 2006, 2007, 2008, 2010, 2011 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
@@ -24,6 +24,9 @@
#include <paludis/version_operator.hh>
#include <paludis/version_spec.hh>
#include <paludis/util/named_value.hh>
+#include <paludis/util/sequence.hh>
+#include <paludis/util/wrapped_forward_iterator.hh>
+#include <paludis/util/wrapped_output_iterator.hh>
/** \file
* Declarations for version requirements classes.
@@ -59,6 +62,10 @@ namespace paludis
NamedValue<n::version_operator, VersionOperator> version_operator;
NamedValue<n::version_spec, VersionSpec> version_spec;
};
+
+ extern template class PALUDIS_VISIBLE Sequence<VersionRequirement>;
+ extern template class PALUDIS_VISIBLE WrappedForwardIterator<Sequence<VersionRequirement>::ConstIteratorTag, const VersionRequirement>;
+ extern template class PALUDIS_VISIBLE WrappedOutputIterator<Sequence<VersionRequirement>::InserterTag, VersionRequirement>;
}
#endif
diff --git a/paludis/version_spec.cc b/paludis/version_spec.cc
index a62e4ac..42e7e61 100644
--- a/paludis/version_spec.cc
+++ b/paludis/version_spec.cc
@@ -777,3 +777,4 @@ namespace paludis
{
template class WrappedForwardIterator<VersionSpec::ConstIteratorTag, const VersionSpecComponent>;
}
+
diff --git a/paludis/version_spec.hh b/paludis/version_spec.hh
index 81973fc..01b09f0 100644
--- a/paludis/version_spec.hh
+++ b/paludis/version_spec.hh
@@ -25,7 +25,7 @@
#include <paludis/util/pimp.hh>
#include <paludis/util/operators.hh>
#include <paludis/util/named_value.hh>
-#include <paludis/util/wrapped_forward_iterator-fwd.hh>
+#include <paludis/util/wrapped_forward_iterator.hh>
#include <iosfwd>
#include <string>
@@ -222,6 +222,8 @@ namespace paludis
ConstIterator begin() const;
ConstIterator end() const;
};
+
+ extern template class PALUDIS_VISIBLE WrappedForwardIterator<VersionSpec::ConstIteratorTag, const VersionSpecComponent>;
}
#endif