140 lines
3.5 KiB
C
140 lines
3.5 KiB
C
|
#ifndef __RWDISPAT_H
|
|||
|
#define __RWDISPAT_H
|
|||
|
#pragma option push -b -a8 -pc -Vx- -Ve- -w-inl -w-aus -w-sig
|
|||
|
// -*- C++ -*-
|
|||
|
/***************************************************************************
|
|||
|
*
|
|||
|
* rwdispatch.h - functions used for method selection in containers
|
|||
|
*
|
|||
|
***************************************************************************
|
|||
|
*
|
|||
|
* Copyright (c) 1994-1999 Rogue Wave Software, Inc. All Rights Reserved.
|
|||
|
*
|
|||
|
* This computer software is owned by Rogue Wave Software, Inc. and is
|
|||
|
* protected by U.S. copyright laws and other laws and by international
|
|||
|
* treaties. This computer software is furnished by Rogue Wave Software,
|
|||
|
* Inc. pursuant to a written license agreement and may be used, copied,
|
|||
|
* transmitted, and stored only in accordance with the terms of such
|
|||
|
* license and with the inclusion of the above copyright notice. This
|
|||
|
* computer software or any other copies thereof may not be provided or
|
|||
|
* otherwise made available to any other person.
|
|||
|
*
|
|||
|
* U.S. Government Restricted Rights. This computer software is provided
|
|||
|
* with Restricted Rights. Use, duplication, or disclosure by the
|
|||
|
* Government is subject to restrictions as set forth in subparagraph (c)
|
|||
|
* (1) (ii) of The Rights in Technical Data and Computer Software clause
|
|||
|
* at DFARS 252.227-7013 or subparagraphs (c) (1) and (2) of the
|
|||
|
* Commercial Computer Software <EFBFBD> Restricted Rights at 48 CFR 52.227-19,
|
|||
|
* as applicable. Manufacturer is Rogue Wave Software, Inc., 5500
|
|||
|
* Flatiron Parkway, Boulder, Colorado 80301 USA.
|
|||
|
*
|
|||
|
**************************************************************************/
|
|||
|
|
|||
|
#ifndef __RWDISPATCH__
|
|||
|
#define __RWDISPATCH__
|
|||
|
|
|||
|
template <class _T>
|
|||
|
inline bool _RW_is_integral_type(_T)
|
|||
|
{ return false; }
|
|||
|
|
|||
|
inline bool _RW_is_integral_type(int)
|
|||
|
{ return true; }
|
|||
|
|
|||
|
inline bool _RW_is_integral_type(unsigned int)
|
|||
|
{ return true; }
|
|||
|
|
|||
|
inline bool _RW_is_integral_type(short)
|
|||
|
{ return true; }
|
|||
|
|
|||
|
inline bool _RW_is_integral_type(unsigned short)
|
|||
|
{ return true; }
|
|||
|
|
|||
|
inline bool _RW_is_integral_type(long)
|
|||
|
{ return true; }
|
|||
|
|
|||
|
inline bool _RW_is_integral_type(unsigned long)
|
|||
|
{ return true; }
|
|||
|
|
|||
|
inline bool _RW_is_integral_type(char)
|
|||
|
{ return true; }
|
|||
|
|
|||
|
inline bool _RW_is_integral_type(unsigned char)
|
|||
|
{ return true; }
|
|||
|
|
|||
|
#ifndef _RWSTD_NO_BOOL
|
|||
|
inline bool _RW_is_integral_type(bool)
|
|||
|
{ return true; }
|
|||
|
#endif
|
|||
|
|
|||
|
#ifndef _RWSTD_NO_OVERLOAD_WCHAR
|
|||
|
inline bool _RW_is_integral_type(wchar_t)
|
|||
|
{ return true; }
|
|||
|
#endif
|
|||
|
|
|||
|
struct _RW_is_integer {};
|
|||
|
struct _RW_is_not_integer {};
|
|||
|
|
|||
|
template <class _T>
|
|||
|
struct _RWdispatch {
|
|||
|
typedef _RW_is_not_integer _RWtype;
|
|||
|
};
|
|||
|
|
|||
|
_RWSTD_TEMPLATE
|
|||
|
struct _RWdispatch<int> {
|
|||
|
typedef _RW_is_integer _RWtype;
|
|||
|
};
|
|||
|
|
|||
|
_RWSTD_TEMPLATE
|
|||
|
struct _RWdispatch<unsigned int> {
|
|||
|
typedef _RW_is_integer _RWtype;
|
|||
|
};
|
|||
|
|
|||
|
_RWSTD_TEMPLATE
|
|||
|
struct _RWdispatch<long> {
|
|||
|
typedef _RW_is_integer _RWtype;
|
|||
|
};
|
|||
|
|
|||
|
_RWSTD_TEMPLATE
|
|||
|
struct _RWdispatch<unsigned long> {
|
|||
|
typedef _RW_is_integer _RWtype;
|
|||
|
};
|
|||
|
|
|||
|
_RWSTD_TEMPLATE
|
|||
|
struct _RWdispatch<short> {
|
|||
|
typedef _RW_is_integer _RWtype;
|
|||
|
};
|
|||
|
|
|||
|
_RWSTD_TEMPLATE
|
|||
|
struct _RWdispatch<unsigned short> {
|
|||
|
typedef _RW_is_integer _RWtype;
|
|||
|
};
|
|||
|
|
|||
|
_RWSTD_TEMPLATE
|
|||
|
struct _RWdispatch<char> {
|
|||
|
typedef _RW_is_integer _RWtype;
|
|||
|
};
|
|||
|
|
|||
|
_RWSTD_TEMPLATE
|
|||
|
struct _RWdispatch<unsigned char> {
|
|||
|
typedef _RW_is_integer _RWtype;
|
|||
|
};
|
|||
|
|
|||
|
#ifndef _RWSTD_NO_BOOL
|
|||
|
_RWSTD_TEMPLATE
|
|||
|
struct _RWdispatch<bool> {
|
|||
|
typedef _RW_is_integer _RWtype;
|
|||
|
};
|
|||
|
#endif
|
|||
|
|
|||
|
#ifndef _RWSTD_NO_OVERLOAD_WCHAR
|
|||
|
_RWSTD_TEMPLATE
|
|||
|
struct _RWdispatch<wchar_t> {
|
|||
|
typedef _RW_is_integer _RWtype;
|
|||
|
};
|
|||
|
#endif
|
|||
|
|
|||
|
#endif //__RWDISPATCH__
|
|||
|
|
|||
|
#pragma option pop
|
|||
|
#endif /* __RWDISPAT_H */
|