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 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__) && !defined(__clang__) 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 "-Wshadow" 164 #if defined(__GXX_EXPERIMENTAL_CXX0X__) || __cplusplus >= 201103L 165 #if defined(__APPLE__) 166 #define VIGRA_NO_UNIQUE_PTR 170 #define VIGRA_NO_UNIQUE_PTR 171 #define VIGRA_SHARED_PTR_IN_TR1 180 #if defined(__clang__) 183 #if defined(__apple_build_version__) 186 #define VIGRA_NO_UNIQUE_PTR 187 #if __cplusplus >= 201103L 190 #if !((__clang_major__ >= 4) && defined(_LIBCPP_VERSION)) 191 #define VIGRA_SHARED_PTR_IN_TR1 195 #define VIGRA_NO_UNIQUE_PTR 196 #if !defined(_LIBCPP_VERSION) 197 #define VIGRA_SHARED_PTR_IN_TR1 204 #if __cplusplus >= 201103L 205 #if (__clang_major__ < 3) || ((__clang_major__ == 3) && (__clang_minor__ < 3)) 206 #define VIGRA_SHARED_PTR_IN_TR1 207 #define VIGRA_NO_UNIQUE_PTR 211 #define VIGRA_NO_UNIQUE_PTR 212 #define VIGRA_SHARED_PTR_IN_TR1 223 #if defined(__MINGW32__) 224 #define VIGRA_NEED_BIN_STREAMS 227 #define VIGRA_EXPORT __declspec(dllexport) 228 #elif defined(VIGRA_STATIC_LIB) 231 #define VIGRA_EXPORT __declspec(dllimport) 233 #endif // __MINGW32__ 241 #if defined(__sgi) && !defined(__GNUC__) 242 #if _COMPILER_VERSION < 720 243 #error "Need SGI C++ 7.2 or later" 245 #if (_COMPILER_VERSION == 720) || (_COMPILER_VERSION == 721) 246 #define SPECIAL_STDEXCEPTION_DEFINITION_NEEDED 249 typedef std::exception StdException;
252 #define NO_NAMESPACE_STD 253 #endif // _COMPILER_VERSION 254 #define HAS_HASH_CONTAINERS 263 #if defined(__sun) && !defined(__GNUC__) 264 #define VIGRA_HAS_ERF 273 #ifdef CMATH_NOT_IN_STD 276 #define VIGRA_CSTD std 291 #ifdef VIGRA_NO_UNIQUE_PTR 292 # define VIGRA_UNIQUE_PTR std::auto_ptr 294 # ifdef _GLIBCXX_INCLUDE_AS_TR1 295 # define VIGRA_UNIQUE_PTR std::tr1::unique_ptr 297 # define VIGRA_UNIQUE_PTR std::unique_ptr 301 #ifdef VIGRA_SHARED_PTR_IN_TR1 302 # define VIGRA_SHARED_PTR std::tr1::shared_ptr 304 # define VIGRA_SHARED_PTR std::shared_ptr 307 #ifndef VIGRA_NO_THREADSAFE_STATIC_INIT 311 #define VIGRA_SAFE_STATIC(p, v) v 316 #ifndef SPECIAL_STDEXCEPTION_DEFINITION_NEEDED 317 typedef std::exception StdException;
323 # define doxygen_overloaded_function(fun) fun(...); 325 # define doxygen_overloaded_function(fun) 329 #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