37 #ifndef VIGRA_CONFIG_HXX 38 #define VIGRA_CONFIG_HXX 40 #include "config_version.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_NO_UNIQUE_PTR 115 #define VIGRA_NO_VARIADIC_TEMPLATES 118 #define VIGRA_NEED_BIN_STREAMS 120 #define VIGRA_NO_THREADSAFE_STATIC_INIT // at least up to _MSC_VER <= 1600, probably higher 125 #define VIGRA_SAFE_STATIC(p, v) \ 126 0; while(p == 0) ::vigra::detail::safeStaticInit(&p, v) 128 namespace vigra {
namespace detail {
130 inline void safeStaticInit(T ** p, T * v)
132 if (InterlockedCompareExchangePointer((PVOID *)p, v, 0) != 0)
137 #ifndef VIGRA_ENABLE_ANNOYING_WARNINGS 138 #pragma warning ( disable: 4244 4267) // implicit integer conversion warnings 142 #define VIGRA_EXPORT __declspec(dllexport) 143 #elif defined(VIGRA_STATIC_LIB) 146 #define VIGRA_EXPORT __declspec(dllimport) 156 #if defined(__GNUC__) && !defined(__clang__) 157 #if __GNUC__ < 2 || ((__GNUC__ == 2) && (__GNUC_MINOR__ <= 8)) 158 #error "Need at least g++ 2.95" 161 #define VIGRA_NO_WORKING_STRINGSTREAM 163 #define HAS_HASH_CONTAINERS 166 #pragma GCC diagnostic ignored "-Wshadow" 168 #if defined(__GXX_EXPERIMENTAL_CXX0X__) || __cplusplus >= 201103L 169 #if defined(__APPLE__) 170 #define VIGRA_NO_UNIQUE_PTR 174 #define VIGRA_NO_UNIQUE_PTR 175 #define VIGRA_SHARED_PTR_IN_TR1 184 #if defined(__clang__) 187 #if defined(__apple_build_version__) 190 #define VIGRA_NO_UNIQUE_PTR 191 #if __cplusplus >= 201103L 194 #if !((__clang_major__ >= 4) && defined(_LIBCPP_VERSION)) 195 #define VIGRA_SHARED_PTR_IN_TR1 199 #define VIGRA_NO_UNIQUE_PTR 200 #if !defined(_LIBCPP_VERSION) 201 #define VIGRA_SHARED_PTR_IN_TR1 208 #if __cplusplus >= 201103L 209 #if (__clang_major__ < 3) || ((__clang_major__ == 3) && (__clang_minor__ < 3)) 210 #define VIGRA_SHARED_PTR_IN_TR1 211 #define VIGRA_NO_UNIQUE_PTR 215 #define VIGRA_NO_UNIQUE_PTR 216 #define VIGRA_SHARED_PTR_IN_TR1 227 #if defined(__MINGW32__) 228 #define VIGRA_NEED_BIN_STREAMS 231 #define VIGRA_EXPORT __declspec(dllexport) 232 #elif defined(VIGRA_STATIC_LIB) 235 #define VIGRA_EXPORT __declspec(dllimport) 237 #endif // __MINGW32__ 245 #if defined(__sgi) && !defined(__GNUC__) 246 #if _COMPILER_VERSION < 720 247 #error "Need SGI C++ 7.2 or later" 249 #if (_COMPILER_VERSION == 720) || (_COMPILER_VERSION == 721) 250 #define SPECIAL_STDEXCEPTION_DEFINITION_NEEDED 253 typedef std::exception StdException;
256 #define NO_NAMESPACE_STD 257 #endif // _COMPILER_VERSION 258 #define HAS_HASH_CONTAINERS 267 #if defined(__sun) && !defined(__GNUC__) 268 #define VIGRA_HAS_ERF 277 #ifdef CMATH_NOT_IN_STD 280 #define VIGRA_CSTD std 295 #ifdef VIGRA_NO_UNIQUE_PTR 296 # define VIGRA_UNIQUE_PTR std::auto_ptr 298 # ifdef _GLIBCXX_INCLUDE_AS_TR1 299 # define VIGRA_UNIQUE_PTR std::tr1::unique_ptr 301 # define VIGRA_UNIQUE_PTR std::unique_ptr 305 #ifdef VIGRA_SHARED_PTR_IN_TR1 306 # define VIGRA_SHARED_PTR std::tr1::shared_ptr 308 # define VIGRA_SHARED_PTR std::shared_ptr 311 #ifndef VIGRA_NO_THREADSAFE_STATIC_INIT 315 #define VIGRA_SAFE_STATIC(p, v) v 320 #ifndef SPECIAL_STDEXCEPTION_DEFINITION_NEEDED 321 typedef std::exception StdException;
327 # define doxygen_overloaded_function(fun) fun(...); 329 # define doxygen_overloaded_function(fun) 333 #endif // VIGRA_CONFIG_HXX Definition: array_vector.hxx:954
Definition: accessor.hxx:43
FFTWComplex< R >::NormType abs(const FFTWComplex< R > &a)
absolute value (= magnitude)
Definition: fftw3.hxx:1002