summaryrefslogtreecommitdiffhomepage
path: root/compat
diff options
context:
space:
mode:
authorStanislaw Halik <sthalik@misaki.pl>2018-05-30 07:21:23 +0200
committerStanislaw Halik <sthalik@misaki.pl>2018-05-30 07:26:21 +0200
commit561b89409551119833acf7abbb77d4afd632a657 (patch)
tree7d8617875a958c37310ba2edab1f8e702d823d6a /compat
parent9f1595131f15e47d12c6a633e45d8ef837bddd75 (diff)
compat/linkage: extern template works on GNU now
Diffstat (limited to 'compat')
-rw-r--r--compat/linkage-macros.hpp10
-rw-r--r--compat/macros.hpp12
2 files changed, 13 insertions, 9 deletions
diff --git a/compat/linkage-macros.hpp b/compat/linkage-macros.hpp
index 9e71ac8c..967dfba9 100644
--- a/compat/linkage-macros.hpp
+++ b/compat/linkage-macros.hpp
@@ -11,5 +11,11 @@
# define OTR_GENERIC_IMPORT
#endif
-#define OTR_TEMPLATE_EXPORT template class OTR_GENERIC_EXPORT
-#define OTR_TEMPLATE_IMPORT extern template class OTR_GENERIC_IMPORT
+#define OTR_TEMPLATE_IMPORT(x) extern template class OTR_GENERIC_IMPORT x
+#define OTR_TEMPLATE_EXPORT_(x) template class OTR_GENERIC_EXPORT x
+
+#if defined _MSC_VER
+# define OTR_TEMPLATE_EXPORT OTR_TEMPLATE_EXPORT_
+#else
+# define OTR_TEMPLATE_EXPORT OTR_TEMPLATE_EXPORT_
+#endif
diff --git a/compat/macros.hpp b/compat/macros.hpp
index c0bc66f4..01d9cd83 100644
--- a/compat/macros.hpp
+++ b/compat/macros.hpp
@@ -46,23 +46,21 @@
# define OTR_FUNNAME (__PRETTY_FUNCTION__)
#endif
+#if !defined PP_CAT
+# define PP_CAT(x,y) PP_CAT1(x,y)
+# define PP_CAT1(x,y) x##y
+#endif
+
#if defined __cplusplus
// from now only C++ macros
-# define thunk(...) ([&]() { __VA_ARGS__; })
-
#if defined _MSC_VER
# define OTR_DEPRECATE(msg, decl, body) __declspec(deprecated(msg)) decl body
#else
# define OTR_DEPRECATE(msg, decl, body) decl body __attribute__((deprecated(msg)))
#endif
-#if !defined PP_CAT
-# define PP_CAT(x,y) PP_CAT1(x,y)
-# define PP_CAT1(x,y) x##y
-#endif
-
namespace static_warning_detail {
template<bool> struct test___132;