From 4e47d16745a8be7135e97833f497d3d282a7b3e4 Mon Sep 17 00:00:00 2001 From: Dan Goodliffe Date: Mon, 25 Feb 2019 21:18:46 +0000 Subject: Mark explicitly instantiated functions as public Fixes link issue with Clang. --- libadhocutil/plugins.impl.h | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/libadhocutil/plugins.impl.h b/libadhocutil/plugins.impl.h index 8a2ca8a..7d70e8d 100644 --- a/libadhocutil/plugins.impl.h +++ b/libadhocutil/plugins.impl.h @@ -92,13 +92,13 @@ namespace AdHoc { #define INSTANTIATEPLUGINOF(...) \ template class AdHoc::PluginOf<__VA_ARGS__>; \ - template void AdHoc::PluginManager::add<__VA_ARGS__>(const std::shared_ptr<__VA_ARGS__> &, const std::string_view &, const std::string_view &, int); \ - template void AdHoc::PluginManager::remove<__VA_ARGS__>(const std::string_view &); \ - template std::shared_ptr> AdHoc::PluginManager::get<__VA_ARGS__>(const std::string_view &) const; \ - template std::shared_ptr<__VA_ARGS__> AdHoc::PluginManager::getImplementation<__VA_ARGS__>(const std::string_view &) const; \ - template std::set>> AdHoc::PluginManager::getAll<__VA_ARGS__>() const; \ - template void AdHoc::PluginManager::addResolver<__VA_ARGS__>(const AdHoc::PluginManager::PluginResolver & f); \ - template void AdHoc::PluginManager::removeResolver<__VA_ARGS__>(); \ + template DLL_PUBLIC void AdHoc::PluginManager::add<__VA_ARGS__>(const std::shared_ptr<__VA_ARGS__> &, const std::string_view &, const std::string_view &, int); \ + template DLL_PUBLIC void AdHoc::PluginManager::remove<__VA_ARGS__>(const std::string_view &); \ + template DLL_PUBLIC std::shared_ptr> AdHoc::PluginManager::get<__VA_ARGS__>(const std::string_view &) const; \ + template DLL_PUBLIC std::shared_ptr<__VA_ARGS__> AdHoc::PluginManager::getImplementation<__VA_ARGS__>(const std::string_view &) const; \ + template DLL_PUBLIC std::set>> AdHoc::PluginManager::getAll<__VA_ARGS__>() const; \ + template DLL_PUBLIC void AdHoc::PluginManager::addResolver<__VA_ARGS__>(const AdHoc::PluginManager::PluginResolver & f); \ + template DLL_PUBLIC void AdHoc::PluginManager::removeResolver<__VA_ARGS__>(); \ #define PLUGINRESOLVER(T, F) \ namespace MAKE_UNIQUE(__plugin__) { \ -- cgit v1.2.3