📄 promote-old.h
字号:
/***********************************************************************
* promote.h Arithmetic type promotion trait class
* Author: Todd Veldhuizen (tveldhui@seurat.uwaterloo.ca)
*
* Copyright (C) 1997,1998 Todd Veldhuizen <tveldhui@seurat.uwaterloo.ca>
*
* 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-suggest@cybervision.com
* Bugs: blitz-bugs@cybervision.com
*
* For more information, please see the Blitz++ Home Page:
* http://seurat.uwaterloo.ca/blitz/
*
***************************************************************************
*/
// Generated: genpromote.cpp Aug 7 1997 14:59:32
template<class A, class B>
class promote_trait {
public:
typedef A T_promote;
};
template<>
class promote_trait<char, char> {
public:
typedef int T_promote;
};
template<>
class promote_trait<char, unsigned char> {
public:
typedef int T_promote;
};
template<>
class promote_trait<char, short int> {
public:
typedef int T_promote;
};
template<>
class promote_trait<char, short unsigned int> {
public:
typedef unsigned int T_promote;
};
template<>
class promote_trait<char, int> {
public:
typedef int T_promote;
};
template<>
class promote_trait<char, unsigned int> {
public:
typedef unsigned int T_promote;
};
template<>
class promote_trait<char, long> {
public:
typedef long T_promote;
};
template<>
class promote_trait<char, unsigned long> {
public:
typedef unsigned long T_promote;
};
template<>
class promote_trait<char, float> {
public:
typedef float T_promote;
};
template<>
class promote_trait<char, double> {
public:
typedef double T_promote;
};
template<>
class promote_trait<char, long double> {
public:
typedef long double T_promote;
};
#ifdef BZ_HAVE_COMPLEX
template<>
class promote_trait<char, complex<float> > {
public:
typedef complex<float> T_promote;
};
#endif
#ifdef BZ_HAVE_COMPLEX
template<>
class promote_trait<char, complex<double> > {
public:
typedef complex<double> T_promote;
};
#endif
#ifdef BZ_HAVE_COMPLEX
template<>
class promote_trait<char, complex<long double> > {
public:
typedef complex<long double> T_promote;
};
#endif
template<>
class promote_trait<unsigned char, char> {
public:
typedef int T_promote;
};
template<>
class promote_trait<unsigned char, unsigned char> {
public:
typedef int T_promote;
};
template<>
class promote_trait<unsigned char, short int> {
public:
typedef int T_promote;
};
template<>
class promote_trait<unsigned char, short unsigned int> {
public:
typedef unsigned int T_promote;
};
template<>
class promote_trait<unsigned char, int> {
public:
typedef int T_promote;
};
template<>
class promote_trait<unsigned char, unsigned int> {
public:
typedef unsigned int T_promote;
};
template<>
class promote_trait<unsigned char, long> {
public:
typedef long T_promote;
};
template<>
class promote_trait<unsigned char, unsigned long> {
public:
typedef unsigned long T_promote;
};
template<>
class promote_trait<unsigned char, float> {
public:
typedef float T_promote;
};
template<>
class promote_trait<unsigned char, double> {
public:
typedef double T_promote;
};
template<>
class promote_trait<unsigned char, long double> {
public:
typedef long double T_promote;
};
#ifdef BZ_HAVE_COMPLEX
template<>
class promote_trait<unsigned char, complex<float> > {
public:
typedef complex<float> T_promote;
};
#endif
#ifdef BZ_HAVE_COMPLEX
template<>
class promote_trait<unsigned char, complex<double> > {
public:
typedef complex<double> T_promote;
};
#endif
#ifdef BZ_HAVE_COMPLEX
template<>
class promote_trait<unsigned char, complex<long double> > {
public:
typedef complex<long double> T_promote;
};
#endif
template<>
class promote_trait<short int, char> {
public:
typedef int T_promote;
};
template<>
class promote_trait<short int, unsigned char> {
public:
typedef int T_promote;
};
template<>
class promote_trait<short int, short int> {
public:
typedef int T_promote;
};
template<>
class promote_trait<short int, short unsigned int> {
public:
typedef unsigned int T_promote;
};
template<>
class promote_trait<short int, int> {
public:
typedef int T_promote;
};
template<>
class promote_trait<short int, unsigned int> {
public:
typedef unsigned int T_promote;
};
template<>
class promote_trait<short int, long> {
public:
typedef long T_promote;
};
template<>
class promote_trait<short int, unsigned long> {
public:
typedef unsigned long T_promote;
};
template<>
class promote_trait<short int, float> {
public:
typedef float T_promote;
};
template<>
class promote_trait<short int, double> {
public:
typedef double T_promote;
};
template<>
class promote_trait<short int, long double> {
public:
typedef long double T_promote;
};
#ifdef BZ_HAVE_COMPLEX
template<>
class promote_trait<short int, complex<float> > {
public:
typedef complex<float> T_promote;
};
#endif
#ifdef BZ_HAVE_COMPLEX
template<>
class promote_trait<short int, complex<double> > {
public:
typedef complex<double> T_promote;
};
#endif
#ifdef BZ_HAVE_COMPLEX
template<>
class promote_trait<short int, complex<long double> > {
public:
typedef complex<long double> T_promote;
};
#endif
template<>
class promote_trait<short unsigned int, char> {
public:
typedef unsigned int T_promote;
};
template<>
class promote_trait<short unsigned int, unsigned char> {
public:
typedef unsigned int T_promote;
};
template<>
class promote_trait<short unsigned int, short int> {
public:
typedef unsigned int T_promote;
};
template<>
class promote_trait<short unsigned int, short unsigned int> {
public:
typedef unsigned int T_promote;
};
template<>
class promote_trait<short unsigned int, int> {
public:
typedef unsigned int T_promote;
};
template<>
class promote_trait<short unsigned int, unsigned int> {
public:
typedef unsigned int T_promote;
};
template<>
class promote_trait<short unsigned int, long> {
public:
typedef long T_promote;
};
template<>
class promote_trait<short unsigned int, unsigned long> {
public:
typedef unsigned long T_promote;
};
template<>
class promote_trait<short unsigned int, float> {
public:
typedef float T_promote;
};
template<>
class promote_trait<short unsigned int, double> {
public:
typedef double T_promote;
};
template<>
class promote_trait<short unsigned int, long double> {
public:
typedef long double T_promote;
};
#ifdef BZ_HAVE_COMPLEX
template<>
class promote_trait<short unsigned int, complex<float> > {
public:
typedef complex<float> T_promote;
};
#endif
#ifdef BZ_HAVE_COMPLEX
template<>
class promote_trait<short unsigned int, complex<double> > {
public:
typedef complex<double> T_promote;
};
#endif
#ifdef BZ_HAVE_COMPLEX
template<>
class promote_trait<short unsigned int, complex<long double> > {
public:
typedef complex<long double> T_promote;
};
#endif
template<>
class promote_trait<int, char> {
public:
typedef int T_promote;
};
template<>
class promote_trait<int, unsigned char> {
public:
typedef int T_promote;
};
template<>
class promote_trait<int, short int> {
public:
typedef int T_promote;
};
template<>
class promote_trait<int, short unsigned int> {
public:
typedef unsigned int T_promote;
};
template<>
class promote_trait<int, int> {
public:
typedef int T_promote;
};
template<>
class promote_trait<int, unsigned int> {
public:
typedef unsigned int T_promote;
};
template<>
class promote_trait<int, long> {
public:
typedef long T_promote;
};
template<>
class promote_trait<int, unsigned long> {
public:
typedef unsigned long T_promote;
};
template<>
class promote_trait<int, float> {
public:
typedef float T_promote;
};
template<>
class promote_trait<int, double> {
public:
typedef double T_promote;
};
template<>
class promote_trait<int, long double> {
public:
typedef long double T_promote;
};
#ifdef BZ_HAVE_COMPLEX
template<>
class promote_trait<int, complex<float> > {
public:
typedef complex<float> T_promote;
};
#endif
#ifdef BZ_HAVE_COMPLEX
template<>
class promote_trait<int, complex<double> > {
public:
typedef complex<double> T_promote;
};
#endif
#ifdef BZ_HAVE_COMPLEX
template<>
class promote_trait<int, complex<long double> > {
public:
typedef complex<long double> T_promote;
};
#endif
template<>
class promote_trait<unsigned int, char> {
public:
typedef unsigned int T_promote;
};
template<>
class promote_trait<unsigned int, unsigned char> {
public:
typedef unsigned int T_promote;
};
template<>
class promote_trait<unsigned int, short int> {
public:
typedef unsigned int T_promote;
};
template<>
class promote_trait<unsigned int, short unsigned int> {
public:
typedef unsigned int T_promote;
};
template<>
class promote_trait<unsigned int, int> {
public:
typedef unsigned int T_promote;
};
template<>
class promote_trait<unsigned int, unsigned int> {
public:
typedef unsigned int T_promote;
};
template<>
class promote_trait<unsigned int, long> {
public:
typedef long T_promote;
};
template<>
class promote_trait<unsigned int, unsigned long> {
public:
typedef unsigned long T_promote;
};
template<>
class promote_trait<unsigned int, float> {
public:
typedef float T_promote;
};
template<>
class promote_trait<unsigned int, double> {
public:
typedef double T_promote;
};
template<>
class promote_trait<unsigned int, long double> {
public:
typedef long double T_promote;
};
#ifdef BZ_HAVE_COMPLEX
template<>
class promote_trait<unsigned int, complex<float> > {
public:
typedef complex<float> T_promote;
};
#endif
#ifdef BZ_HAVE_COMPLEX
template<>
class promote_trait<unsigned int, complex<double> > {
public:
typedef complex<double> T_promote;
};
#endif
#ifdef BZ_HAVE_COMPLEX
template<>
class promote_trait<unsigned int, complex<long double> > {
public:
typedef complex<long double> T_promote;
};
#endif
template<>
class promote_trait<long, char> {
public:
typedef long T_promote;
};
template<>
class promote_trait<long, unsigned char> {
public:
typedef long T_promote;
};
template<>
class promote_trait<long, short int> {
public:
typedef long T_promote;
};
template<>
class promote_trait<long, short unsigned int> {
public:
typedef long T_promote;
};
template<>
class promote_trait<long, int> {
public:
typedef long T_promote;
};
template<>
class promote_trait<long, unsigned int> {
public:
typedef long T_promote;
};
template<>
class promote_trait<long, long> {
public:
typedef long T_promote;
};
template<>
class promote_trait<long, unsigned long> {
public:
typedef unsigned long T_promote;
};
template<>
class promote_trait<long, float> {
public:
typedef float T_promote;
};
template<>
class promote_trait<long, double> {
public:
typedef double T_promote;
};
template<>
class promote_trait<long, long double> {
public:
typedef long double T_promote;
};
#ifdef BZ_HAVE_COMPLEX
template<>
class promote_trait<long, complex<float> > {
public:
typedef complex<float> T_promote;
};
#endif
#ifdef BZ_HAVE_COMPLEX
template<>
class promote_trait<long, complex<double> > {
public:
typedef complex<double> T_promote;
};
#endif
#ifdef BZ_HAVE_COMPLEX
template<>
class promote_trait<long, complex<long double> > {
public:
typedef complex<long double> T_promote;
};
#endif
template<>
class promote_trait<unsigned long, char> {
public:
typedef unsigned long T_promote;
};
template<>
class promote_trait<unsigned long, unsigned char> {
public:
typedef unsigned long T_promote;
};
template<>
class promote_trait<unsigned long, short int> {
public:
typedef unsigned long T_promote;
};
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -