summaryrefslogtreecommitdiff
path: root/ACE/ace/config-g++-common.h
diff options
context:
space:
mode:
Diffstat (limited to 'ACE/ace/config-g++-common.h')
-rw-r--r--ACE/ace/config-g++-common.h17
1 files changed, 16 insertions, 1 deletions
diff --git a/ACE/ace/config-g++-common.h b/ACE/ace/config-g++-common.h
index 4ced0ef10b6..9d60b39d174 100644
--- a/ACE/ace/config-g++-common.h
+++ b/ACE/ace/config-g++-common.h
@@ -38,7 +38,22 @@
# if __cplusplus > 201103L
# define ACE_HAS_CPP14
# endif
-#endif
+#endif /* __GNUC__ >= 4.7 */
+
+// *NOTE*: this feature may go back further, see e.g.:
+// https://gcc.gnu.org/projects/cxx0x.html
+#if defined (ACE_HAS_CPP11)
+# if (__GNUC__ >= 5 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 3))
+# define ACE_HAS_CPP11_EXTERN_TEMPLATES
+# endif /* __GNUC__ >= 4.3 */
+
+// *NOTE*: suppress a warning, g++ 5.2.1 does not support attributes on template
+// instantiation declarations
+// *TODO*: this probably goes back further than 5.2
+# if (__GNUC__ >= 6 || (__GNUC__ == 5 && __GNUC_MINOR__ >= 2))
+# define ACE_LACKS_CPP11_EXTERN_TEMPLATE_ATTRIBUTES
+# endif /* __GNUC__ >= 5.2 */
+#endif /* ACE_HAS_CPP11 */
#if (defined (i386) || defined (__i386__)) && !defined (ACE_SIZEOF_LONG_DOUBLE)
# define ACE_SIZEOF_LONG_DOUBLE 12