Document return values
[ACE_TAO.git] / ACE / ace / config-icc-common.h
blob65a21df7f52eb531d41bad281a19bcfb09e65e30
1 // -*- C++ -*-
2 #ifndef ACE_LINUX_ICC_COMMON_H
3 #define ACE_LINUX_ICC_COMMON_H
4 #include /**/ "ace/pre.h"
6 #if defined (ACE_HAS_CUSTOM_EXPORT_MACROS) && ACE_HAS_CUSTOM_EXPORT_MACROS == 0
7 # undef ACE_HAS_CUSTOM_EXPORT_MACROS
8 # if defined (ACE_GCC_HAS_TEMPLATE_INSTANTIATION_VISIBILITY_ATTRS)
9 # undef ACE_GCC_HAS_TEMPLATE_INSTANTIATION_VISIBILITY_ATTRS
10 # endif /* ACE_GCC_HAS_TEMPLATE_INSTANTIATION_VISIBILITY_ATTRS */
11 # define ACE_GCC_HAS_TEMPLATE_INSTANTIATION_VISIBILITY_ATTRS 0
12 #else
13 # ifndef ACE_HAS_CUSTOM_EXPORT_MACROS
14 # define ACE_HAS_CUSTOM_EXPORT_MACROS
15 # endif /* !ACE_HAS_CUSTOM_EXPORT_MACROS */
16 # define ACE_Proper_Export_Flag __attribute__ ((visibility("default")))
17 # define ACE_Proper_Import_Flag __attribute__ ((visibility("default")))
19 # ifndef ACE_GCC_HAS_TEMPLATE_INSTANTIATION_VISIBILITY_ATTRS
20 # define ACE_GCC_HAS_TEMPLATE_INSTANTIATION_VISIBILITY_ATTRS 1
21 # endif
23 # if defined (ACE_GCC_HAS_TEMPLATE_INSTANTIATION_VISIBILITY_ATTRS) && ACE_GCC_HAS_TEMPLATE_INSTANTIATION_VISIBILITY_ATTRS == 1
24 # define ACE_EXPORT_SINGLETON_DECLARATION(T) template class ACE_Proper_Export_Flag T
25 # define ACE_EXPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) template class ACE_Proper_Export_Flag SINGLETON_TYPE <CLASS, LOCK>;
26 # else /* ACE_GCC_HAS_TEMPLATE_INSTANTIATION_VISIBILITY_ATTRS */
27 # define ACE_EXPORT_SINGLETON_DECLARATION(T) \
28 _Pragma ("GCC visibility push(default)") \
29 template class T \
30 _Pragma ("GCC visibility pop")
31 # define ACE_EXPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) \
32 _Pragma ("GCC visibility push(default)") \
33 template class SINGLETON_TYPE<CLASS, LOCK>; \
34 _Pragma ("GCC visibility pop")
35 # endif /* ACE_GCC_HAS_TEMPLATE_INSTANTIATION_VISIBILITY_ATTRS */
37 // Note that the "__extension__" is needed to prevent g++ from issuing
38 // an error when using its "-pedantic" command line flag.
39 # define ACE_IMPORT_SINGLETON_DECLARATION(T) __extension__ extern template class T
40 # define ACE_IMPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) __extension__ extern template class SINGLETON_TYPE<CLASS, LOCK>;
41 #endif /* ACE_HAS_CUSTOM_EXPORT_MACROS == 0 */
43 #if (defined (i386) || defined (__i386__)) && !defined (ACE_SIZEOF_LONG_DOUBLE)
44 # define ACE_SIZEOF_LONG_DOUBLE 12
45 #endif /* i386 */
47 #if !defined (__MINGW32__) && (defined (i386) || defined (__i386__))
48 // If running an Intel, assume that it's a Pentium so that
49 // ACE_OS::gethrtime () can use the RDTSC instruction. If running a
50 // 486 or lower, be sure to comment this out. (If not running an
51 // Intel CPU, this #define will not be seen because of the i386
52 // protection, so it can be ignored.)
53 # define ACE_HAS_PENTIUM
54 #endif /* i386 */
56 #if (defined (ACE_HAS_PENTIUM) || defined (__amd64__) || defined (__x86_64__))
57 # define ACE_HAS_INTEL_ASSEMBLY
58 #endif
60 #if (__INTEL_COMPILER >= 910)
61 # define ACE_EXPLICIT_TEMPLATE_DESTRUCTOR_TAKES_ARGS
62 #endif
64 #if defined (__ia64)
65 # define ACE_HAS_IA64INTRIN_H
66 # define ACE_HAS_INTRINSIC_INTERLOCKED
67 #else
68 # define ACE_HAS_IA32INTRIN_H
69 #endif
71 // We assume that Intel C++ 15 and higher do have correct C++11 support when
72 // it runs with GCC 4.7 or higher emulation mode
73 #if (__INTEL_COMPILER > 1400) && defined (__INTEL_CXX11_MODE__)
74 # define ACE_HAS_CPP11
75 #endif
77 #include /**/ "ace/post.h"
78 #endif /* ACE_LINUX_ICC_COMMON_H */