37 #ifndef VIGRA_CONFIG_HXX 38 #define VIGRA_CONFIG_HXX 40 #include "configVersion.hxx" 53 #if(_MSC_VER < 1100) // before VisualC++ 5.0 54 #error "Need VisualC++ 5.0, Service Pack 2, or later" 55 #endif // _MSC_VER < 1100 58 #define NO_TYPENAME // no 'typename' keyword 59 #define TEMPLATE_COPY_CONSTRUCTOR_BUG 60 #define NO_STL_MEMBER_TEMPLATES 61 #define NO_INLINE_STATIC_CONST_DEFINITION 62 #define CMATH_NOT_IN_STD 63 #define NO_COVARIANT_RETURN_TYPES 65 #ifdef VIGRA_NO_STD_MINMAX // activate if necessary 69 const T& min(
const T& x,
const T& y)
77 const T& max(
const T& x,
const T& y)
84 #endif // VIGRA_NO_STD_MINMAX 85 #endif // (_MSC_VER < 1300) 88 #pragma warning( disable : 4786 4250 4244 4305) 90 #define NO_PARTIAL_TEMPLATE_SPECIALIZATION 91 #define NO_OUT_OF_LINE_MEMBER_TEMPLATES 94 #ifdef _MSC_EXTENSIONS 95 #ifndef CMATH_NOT_IN_STD 97 #endif // CMATH_NOT_IN_STD 98 inline double abs(
double v) {
return fabs(v); }
99 inline float abs(
float v) {
return fabs(v); }
100 #ifndef CMATH_NOT_IN_STD 102 #endif // CMATH_NOT_IN_STD 103 #endif // _MSC_EXTENSIONS 104 #endif // _MSC_VER < 1310 107 #define VIGRA_NO_WORKING_STRINGSTREAM 111 #define VIGRA_HAS_UNIQUE_PTR 114 #define VIGRA_NEED_BIN_STREAMS 116 #define VIGRA_NO_THREADSAFE_STATIC_INIT // at least up to _MSC_VER <= 1600, probably higher 121 #define VIGRA_SAFE_STATIC(p, v) \ 122 0; while(p == 0) ::vigra::detail::safeStaticInit(&p, v) 124 namespace vigra {
namespace detail {
126 inline void safeStaticInit(T ** p, T * v)
128 if (InterlockedCompareExchangePointer((PVOID *)p, v, 0) != 0)
133 #ifndef VIGRA_ENABLE_ANNOYING_WARNINGS 134 #pragma warning ( disable: 4244 4267) // implicit integer conversion warnings 138 #define VIGRA_EXPORT __declspec(dllexport) 139 #elif defined(VIGRA_STATIC_LIB) 142 #define VIGRA_EXPORT __declspec(dllimport) 152 #if defined(__GNUC__) 153 #if __GNUC__ < 2 || ((__GNUC__ == 2) && (__GNUC_MINOR__ <= 8)) 154 #error "Need at least g++ 2.95" 157 #define VIGRA_NO_WORKING_STRINGSTREAM 159 #define HAS_HASH_CONTAINERS 162 #pragma GCC diagnostic ignored "-Wstrict-aliasing" 163 #pragma GCC diagnostic ignored "-Wshadow" 165 #if defined(__GXX_EXPERIMENTAL_CXX0X__) || __cplusplus >= 201103L 166 #define VIGRA_HAS_UNIQUE_PTR 177 #if defined(__MINGW32__) 178 #define VIGRA_NEED_BIN_STREAMS 181 #define VIGRA_EXPORT __declspec(dllexport) 182 #elif defined(VIGRA_STATIC_LIB) 185 #define VIGRA_EXPORT __declspec(dllimport) 187 #endif // __MINGW32__ 195 #if defined(__sgi) && !defined(__GNUC__) 196 #if _COMPILER_VERSION < 720 197 #error "Need SGI C++ 7.2 or later" 199 #if (_COMPILER_VERSION == 720) || (_COMPILER_VERSION == 721) 200 #define SPECIAL_STDEXCEPTION_DEFINITION_NEEDED 203 typedef std::exception StdException;
206 #define NO_NAMESPACE_STD 207 #endif // _COMPILER_VERSION 208 #define HAS_HASH_CONTAINERS 217 #if defined(__sun) && !defined(__GNUC__) 218 #define VIGRA_HAS_ERF 227 #ifdef CMATH_NOT_IN_STD 230 #define VIGRA_CSTD std 245 #ifdef VIGRA_HAS_UNIQUE_PTR 246 # define VIGRA_UNIQUE_PTR std::unique_ptr 248 # define VIGRA_UNIQUE_PTR std::auto_ptr 251 #ifndef VIGRA_NO_THREADSAFE_STATIC_INIT 255 #define VIGRA_SAFE_STATIC(p, v) v 260 #ifndef SPECIAL_STDEXCEPTION_DEFINITION_NEEDED 261 typedef std::exception StdException;
267 # define doxygen_overloaded_function(fun) fun(...); 269 # define doxygen_overloaded_function(fun) 273 #endif // VIGRA_CONFIG_HXX Definition: array_vector.hxx:903
Definition: accessor.hxx:43
FFTWComplex< R >::NormType abs(const FFTWComplex< R > &a)
absolute value (= magnitude)
Definition: fftw3.hxx:1002