mirror of
https://github.com/pocoproject/poco.git
synced 2025-10-23 00:07:59 +02:00
fix(templates): Corrected explicit template instantiations to avoid multiple instances.
This commit is contained in:
@@ -181,15 +181,14 @@ private:
|
||||
//
|
||||
// We provide an instantiation for char.
|
||||
//
|
||||
// Visual C++ needs a workaround - explicitly importing the template
|
||||
// instantiation - to avoid duplicate symbols due to multiple
|
||||
// instantiations in different libraries.
|
||||
//
|
||||
#if defined(_MSC_VER) && defined(POCO_DLL) && !defined(Foundation_EXPORTS)
|
||||
template class Foundation_API BasicBufferedBidirectionalStreamBuf<char, std::char_traits<char>>;
|
||||
|
||||
#if defined(POCO_OS_FAMILY_WINDOWS)
|
||||
extern template class BasicBufferedBidirectionalStreamBuf<char, std::char_traits<char>>;
|
||||
#else
|
||||
extern template class Foundation_API BasicBufferedBidirectionalStreamBuf<char, std::char_traits<char>>;
|
||||
#endif
|
||||
using BufferedBidirectionalStreamBuf
|
||||
= BasicBufferedBidirectionalStreamBuf<char, std::char_traits<char>>;
|
||||
|
||||
using BufferedBidirectionalStreamBuf = BasicBufferedBidirectionalStreamBuf<char, std::char_traits<char>>;
|
||||
|
||||
} // namespace Poco
|
||||
|
||||
|
@@ -160,18 +160,17 @@ private:
|
||||
BasicBufferedStreamBuf& operator = (const BasicBufferedStreamBuf&);
|
||||
};
|
||||
|
||||
|
||||
//
|
||||
// We provide an instantiation for char.
|
||||
//
|
||||
// Visual C++ needs a workaround - explicitly importing the template
|
||||
// instantiation - to avoid duplicate symbols due to multiple
|
||||
// instantiations in different libraries.
|
||||
//
|
||||
#if defined(_MSC_VER) && defined(POCO_DLL) && !defined(Foundation_EXPORTS)
|
||||
template class Foundation_API BasicBufferedStreamBuf<char, std::char_traits<char>>;
|
||||
|
||||
#if defined(POCO_OS_FAMILY_WINDOWS)
|
||||
extern template class BasicBufferedStreamBuf<char, std::char_traits<char>>;
|
||||
#else
|
||||
extern template class Foundation_API BasicBufferedStreamBuf<char, std::char_traits<char>>;
|
||||
#endif
|
||||
typedef BasicBufferedStreamBuf<char, std::char_traits<char>> BufferedStreamBuf;
|
||||
|
||||
using BufferedStreamBuf = BasicBufferedStreamBuf<char, std::char_traits<char>>;
|
||||
|
||||
|
||||
} // namespace Poco
|
||||
|
@@ -163,15 +163,14 @@ private:
|
||||
//
|
||||
// We provide an instantiation for char.
|
||||
//
|
||||
// Visual C++ needs a workaround - explicitly importing the template
|
||||
// instantiation - to avoid duplicate symbols due to multiple
|
||||
// instantiations in different libraries.
|
||||
//
|
||||
#if defined(_MSC_VER) && defined(POCO_DLL) && !defined(Foundation_EXPORTS)
|
||||
template class Foundation_API BasicUnbufferedStreamBuf<char, std::char_traits<char>>;
|
||||
#endif
|
||||
typedef BasicUnbufferedStreamBuf<char, std::char_traits<char>> UnbufferedStreamBuf;
|
||||
|
||||
#if defined(POCO_OS_FAMILY_WINDOWS)
|
||||
extern template class BasicUnbufferedStreamBuf<char, std::char_traits<char>>;
|
||||
#else
|
||||
extern template class Foundation_API BasicUnbufferedStreamBuf<char, std::char_traits<char>>;
|
||||
#endif
|
||||
|
||||
using UnbufferedStreamBuf = BasicUnbufferedStreamBuf<char, std::char_traits<char>>;
|
||||
|
||||
} // namespace Poco
|
||||
|
||||
|
Reference in New Issue
Block a user