⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 compiler.h

📁 A C++ class library for scientific computing
💻 H
字号:
/*************************************************************************** * blitz/compiler.h      Compiler specific directives and kludges * * Copyright (C) 1997-2001 Todd Veldhuizen <tveldhui@oonumerics.org> * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License * as published by the Free Software Foundation; either version 2 * of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the * GNU General Public License for more details. * * Suggestions:          blitz-dev@oonumerics.org * Bugs:                 blitz-bugs@oonumerics.org * * For more information, please see the Blitz++ Home Page: *    http://oonumerics.org/blitz/ * ***************************************************************************/#ifndef BZ_COMPILER_H#define BZ_COMPILER_H// The file <blitz/bzconfig.h> is used to select a compiler-specific// config.h file that is generated automatically by configure.#include <blitz/bzconfig.h>/* * Define some kludges. */#ifndef BZ_HAVE_TEMPLATES    #error  In <blitz/config.h>: A working template implementation is required by Blitz++ (you may need to rerun the compiler/bzconfig script)#endif#ifndef BZ_HAVE_MEMBER_TEMPLATES  #error  In <blitz/config.h>: Your compiler does not support member templates.  (you may need to rerun the compiler/bzconfig script)#endif#ifndef BZ_HAVE_FULL_SPECIALIZATION_SYNTAX  #error In <blitz/config.h>: Your compiler does not support template<> full specialization syntax.  You may need to rerun the compiler/bzconfig script.#endif#ifndef BZ_HAVE_PARTIAL_ORDERING  #error In <blitz/config.h>: Your compiler does not support partial ordering (you may need to rerun the compiler/bzconfig script)#endif#ifndef BZ_HAVE_PARTIAL_SPECIALIZATION  #error In <blitz/config.h>: Your compiler does not support partial specialization (you may need to rerun the compiler/bzconfig script)#endif#ifdef BZ_HAVE_NAMESPACES    #define BZ_NAMESPACE(X)        namespace X {    #define BZ_NAMESPACE_END       }    #define BZ_USING_NAMESPACE(X)  using namespace X;#else    #define BZ_NAMESPACE(X)    #define BZ_NAMESPACE_END    #define BZ_USING_NAMESPACE(X)#endif#ifdef BZ_HAVE_TEMPLATE_QUALIFIED_RETURN_TYPE  #define BZ_USE_NUMTRAIT#endif#ifdef BZ_HAVE_DEFAULT_TEMPLATE_PARAMETERS    #define BZ_TEMPLATE_DEFAULT(X)   = X#else    #define BZ_TEMPLATE_DEFAULT#endif#ifndef BZ_HAVE_EXPLICIT    #define explicit   #endif#ifdef BZ_HAVE_TYPENAME    #define _bz_typename     typename#else    #define _bz_typename#endif#ifndef BZ_HAVE_MUTABLE    #define mutable#endif#ifdef BZ_DISABLE_RESTRICT #undef BZ_HAVE_NCEG_RESTRICT#endif#ifndef BZ_HAVE_NCEG_RESTRICT    #if defined(BZ_HAVE_NCEG_RESTRICT_EGCS)        #define restrict     __restrict__    #else        #define restrict    #endif#endif#if !defined(BZ_HAVE_BOOL) && !defined(BZ_NO_BOOL_KLUDGE)    #define bool    int    #define true    1    #define false   0#endif#ifdef BZ_HAVE_ENUM_COMPUTATIONS_WITH_CAST    #define BZ_ENUM_CAST(X)   (int)X#elif defined(BZ_HAVE_ENUM_COMPUTATIONS)    #define BZ_ENUM_CAST(X)   X#else    #error In <blitz/config.h>: Your compiler does not support enum computations.  You may have to rerun compiler/bzconfig.#endif#if defined(BZ_MATH_FN_IN_NAMESPACE_STD)  #define BZ_MATHFN_SCOPE(x) std::x#elif defined(BZ_HAVE_NAMESPACES)  #define BZ_MATHFN_SCOPE(x) ::x#else  #define BZ_MATHFN_SCOPE(x) x#endif#if defined(BZ_HAVE_COMPLEX_MATH_IN_NAMESPACE_STD)  #define BZ_CMATHFN_SCOPE(x) std::x#elif defined(BZ_HAVE_NAMESPACES)  #define BZ_CMATHFN_SCOPE(x) ::x#else  #define BZ_CMATHFN_SCOPE(x) x#endif#if defined(BZ_HAVE_NAMESPACES)  #define BZ_IEEEMATHFN_SCOPE(x) ::x#else  #define BZ_IEEEMATHFN_SCOPE(x) x#endif#if defined(BZ_HAVE_NAMESPACES)  #define BZ_BLITZ_SCOPE(x) blitz::x#else  #define BZ_BLITZ_SCOPE(x) ::x#endif#if defined(BZ_HAVE_NAMESPACES) && defined(BZ_HAVE_STD)  #define BZ_STD_SCOPE(x) std::x#else  #define BZ_STD_SCOPE(x) ::x#endif#endif // BZ_COMPILER_H

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -