NCBI C++ ToolKit
Classes | Defines | Typedefs | Functions
Fixed-Size Types and Their Limits
CORELIB
+ Collaboration diagram for Fixed-Size Types and Their Limits:

Classes

class  ncbi_numeric_limits< char >
class  ncbi_numeric_limits< signedchar >
class  ncbi_numeric_limits< unsigned char >
class  ncbi_numeric_limits< signedshort >
class  ncbi_numeric_limits< unsigned short >
class  ncbi_numeric_limits< signedint >
class  ncbi_numeric_limits< unsigned int >
class  ncbi_numeric_limits< signedlong >
class  ncbi_numeric_limits< unsigned long >
class  ncbi_numeric_limits< float >
class  ncbi_numeric_limits< double >

Defines

#define NCBI_NO_THREADS
#define NCBI_RESTRICT
#define NCBI_FORCEINLINE
#define NCBI_NORETURN
#define kMin_Char   CHAR_MIN
#define kMax_Char   CHAR_MAX
#define kMin_SChar   SCHAR_MIN
#define kMax_SChar   SCHAR_MAX
#define kMax_UChar   UCHAR_MAX
#define kMin_Short   SHRT_MIN
#define kMax_Short   SHRT_MAX
#define kMax_UShort   USHRT_MAX
#define kMin_Int   INT_MIN
#define kMax_Int   INT_MAX
#define kMax_UInt   UINT_MAX
#define kMin_Float   FLT_MIN;
#define kMax_Float   FLT_MAX;
#define kMin_Double   DBL_MIN;
#define kMax_Double   DBL_MAX;
#define kMin_I1   SCHAR_MIN
#define kMax_I1   SCHAR_MAX
#define kMax_UI1   UCHAR_MAX
#define kMin_I2   SHRT_MIN
#define kMax_I2   SHRT_MAX
#define kMax_UI2   USHRT_MAX
#define kMin_I4   INT_MIN
#define kMax_I4   INT_MAX
#define kMax_UI4   UINT_MAX
#define kMin_I8   NCBI_MIN_I8
#define kMax_I8   NCBI_MAX_I8
#define kMax_UI8   NCBI_MAX_UI8
#define numeric_limits   ncbi_numeric_limits
 Pre-declaration of the "numeric_limits<>" template Forcibly overrides (using preprocessor) the original "numeric_limits<>"!
#define NCBI_NUMERIC_LIMITS(type, alias)
 Auxiliary macro to implement (a limited edition of) the "numeric_limits<>" template.
#define NCBI_NUMERIC_LIMITS_UNSIGNED(type, alias)
#define NCBI_GET_NUMERIC_LIMITS(type)
 Macro to declare specilized get_limits.
#define NCBI_BIG_TYPE   NCBI_INT8_TYPE
#define SIZEOF_NCBI_BIG   8
#define NCBI_CONST_INT8(v)   v
#define NCBI_CONST_UINT8(v)   v
#define NCBI_INT8_FORMAT_SPEC   "d"
#define NCBI_UINT8_FORMAT_SPEC   "u"
#define NCBI_CONST_LONGDOUBLE(v)   v

Typedefs

typedef char Char
 Alias for char.
typedef signed char Schar
 Alias for signed char.
typedef unsigned char Uchar
 Alias for unsigned char.
typedef signed char Int1
 Alias for signed char.
typedef unsigned char Uint1
 Alias for unsigned char.
typedef signed short Int2
 Alias for signed short.
typedef unsigned short Uint2
 Alias for unsigned short.
typedef signed int Int4
 Alias for signed int.
typedef unsigned int Uint4
 Alias for unsigned int.
typedef signed NCBI_INT8_TYPE Int8
 Signed 8 byte sized integer.
typedef unsigned NCBI_INT8_TYPE Uint8
 Unsigned 8 byte sized integer.
typedef NCBI_INT8_TYPE Ncbi_BigScalar
 Define large scalar type.
typedef int intptr_t
typedef unsigned int uintptr_t

Functions

template<typename T >
END_NCBI_SCOPE
ncbi_numeric_limits< T > 
get_limits (const T &)
 Generic template to get STD limits by a variable.
EMPTY_TEMPLATE
ncbi_numeric_limits< char > 
get_limits (const char &)
EMPTY_TEMPLATE
ncbi_numeric_limits< signed
char > 
get_limits (const signed char &)
EMPTY_TEMPLATE
ncbi_numeric_limits< unsigned
char > 
get_limits (const unsigned char &)
EMPTY_TEMPLATE
ncbi_numeric_limits< signed
short > 
get_limits (const signed short &)
EMPTY_TEMPLATE
ncbi_numeric_limits< unsigned
short > 
get_limits (const unsigned short &)
EMPTY_TEMPLATE
ncbi_numeric_limits< signed
int > 
get_limits (const signed int &)
EMPTY_TEMPLATE
ncbi_numeric_limits< unsigned
int > 
get_limits (const unsigned int &)
EMPTY_TEMPLATE
ncbi_numeric_limits< signed
long > 
get_limits (const signed long &)
EMPTY_TEMPLATE
ncbi_numeric_limits< unsigned
long > 
get_limits (const unsigned long &)
EMPTY_TEMPLATE
ncbi_numeric_limits< float > 
get_limits (const float &)
EMPTY_TEMPLATE
ncbi_numeric_limits< double > 
get_limits (const double &)

Detailed Description

FORWARDING_NCBICONF_H


Define Documentation

#define kMax_Char   CHAR_MAX

Definition at line 174 of file ncbi_limits.h.

#define kMax_Double   DBL_MAX;
#define kMax_Float   FLT_MAX;

Definition at line 205 of file ncbi_limits.h.

#define kMax_I1   SCHAR_MAX

Definition at line 212 of file ncbi_limits.h.

#define kMax_I2   SHRT_MAX

Definition at line 215 of file ncbi_limits.h.

#define kMax_I4   INT_MAX
#define kMax_I8   NCBI_MAX_I8
#define kMax_Int   INT_MAX
#define kMax_SChar   SCHAR_MAX

Definition at line 176 of file ncbi_limits.h.

#define kMax_Short   SHRT_MAX

Definition at line 180 of file ncbi_limits.h.

#define kMax_UChar   UCHAR_MAX
#define kMax_UI1   UCHAR_MAX

Definition at line 213 of file ncbi_limits.h.

#define kMax_UI2   USHRT_MAX

Definition at line 216 of file ncbi_limits.h.

Referenced by CCompressionUtil::StoreUI2().

#define kMax_UI4   UINT_MAX
#define kMax_UI8   NCBI_MAX_UI8
#define kMax_UInt   UINT_MAX

Definition at line 185 of file ncbi_limits.h.

Referenced by CArgDescriptions::CPrintUsage::AddDetails(), CSeqMap::BeginResolved(), CSeqVector_CI::CanGetRange(), CBZip2Compression::CompressBuffer(), CZipCompression::CompressBuffer(), CLZOCompression::CompressBuffer(), RowScorer::ComputeBlockScores(), RowScorer::ComputeScore(), CArgDescriptions::CreateArgs(), CBZip2Compression::DecompressBuffer(), CZipCompression::DecompressBuffer(), CLZOCompression::DecompressBuffer(), CRemoteAppJob::Do(), AlignmentUtility::DoLeaveNOut(), AlignmentUtility::DoLeaveOneOut(), CSeqMap::End(), CSeqMap::EndResolved(), CSplign::SAlignedCompartment::GetBox(), CBDB_Cache::GetNextBlobId(), CBMARefinerLOOPhase::GetRangeForRefinement(), SNetScheduleAPIImpl::GetServerParams(), SBDB_CacheUnitStatistics::InitHistorgam(), CBMARefinerCycle::IsConverged(), CCdAnnotationInfo::MapRangesForRow(), SequenceViewerWidget_SequenceArea::MoveRubberband(), CArgs::operator[](), CSemaphore::Post(), CBZip2Compressor::Process(), CBZip2Decompressor::Process(), CLZOCompressor::Process(), CLZODecompressor::Process(), CNSSubmitRemoteJobApp::Run(), CSplign::Run(), CHitFilter< THit >::s_GetSpan(), s_PrintLocAsJavascriptArray(), CSplign::s_TestPolyA(), CSplicedAligner16::ScoreFromTranscript(), CSplicedAligner32::ScoreFromTranscript(), CNWAligner::ScoreFromTranscript(), CTimeout::Set(), SAnnotSelector::SetMaxSize(), NStr::StringToUInt(), ValidateFrozenBlockPositions(), CBDB_ExtBlobMap::x_ComputeSerializationSize(), CArgDescriptions::x_CreateArg(), CSplign::x_FinalizeAlignedCompartment(), CSeqVector::x_GetPacked2naSeqData(), CSeqVector::x_GetPacked4naSeqData(), CSeqVector::x_GetPacked8SeqData(), CSeqVector_CI::x_InitSeg(), CAnnot_Collector::x_NoMoreObjects(), CMergeVolumes::x_ResetMinKey(), CSplign::x_Run(), CSplign::x_RunOnCompartment(), CAnnot_Collector::x_SearchRange(), and CSplign::x_SetPattern().

#define kMax_UShort   USHRT_MAX

Definition at line 181 of file ncbi_limits.h.

Referenced by CBDB_ExtBlobMap::x_ComputeSerializationSize().

#define kMin_Char   CHAR_MIN

Definition at line 173 of file ncbi_limits.h.

#define kMin_Double   DBL_MIN;

Definition at line 207 of file ncbi_limits.h.

Referenced by AMatrix_base::GetExtremalEntries(), and CArgAllow_Doubles::GetUsage().

#define kMin_Float   FLT_MIN;
#define kMin_I1   SCHAR_MIN

Definition at line 211 of file ncbi_limits.h.

#define kMin_I2   SHRT_MIN

Definition at line 214 of file ncbi_limits.h.

#define kMin_I4   INT_MIN
#define kMin_I8   NCBI_MIN_I8

Definition at line 220 of file ncbi_limits.h.

Referenced by CArgAllow_Int8s::GetUsage().

#define kMin_Int   INT_MIN
#define kMin_SChar   SCHAR_MIN

Definition at line 175 of file ncbi_limits.h.

#define kMin_Short   SHRT_MIN

Definition at line 179 of file ncbi_limits.h.

#define NCBI_BIG_TYPE   NCBI_INT8_TYPE

Definition at line 149 of file ncbitype.h.

#define NCBI_CONST_INT8 (   v)    v

Definition at line 233 of file ncbitype.h.

#define NCBI_CONST_LONGDOUBLE (   v)    v

Definition at line 241 of file ncbitype.h.

Referenced by NStr::StringToDoublePosix().

#define NCBI_CONST_UINT8 (   v)    v

Definition at line 234 of file ncbitype.h.

Referenced by NStr::UInt8ToString_DataSize().

#define NCBI_FORCEINLINE

Definition at line 93 of file ncbiconf_impl.h.

#define NCBI_GET_NUMERIC_LIMITS (   type)
Value:
EMPTY_TEMPLATE \
    inline numeric_limits<type> get_limits(const type&) \
        { return numeric_limits<type>(); }

Macro to declare specilized get_limits.

Definition at line 172 of file ncbi_limits.hpp.

#define NCBI_INT8_FORMAT_SPEC   "d"

Definition at line 235 of file ncbitype.h.

#define NCBI_NO_THREADS

Definition at line 68 of file ncbiconf_impl.h.

#define NCBI_NORETURN

Definition at line 101 of file ncbiconf_impl.h.

#define NCBI_NUMERIC_LIMITS (   type,
  alias 
)
Value:
template <> \
  class numeric_limits<type> \
  { \
  public: \
      static inline type min() THROWS_NONE { return kMin_##alias; } \
      static inline type max() THROWS_NONE { return kMax_##alias; } \
  }

Auxiliary macro to implement (a limited edition of) the "numeric_limits<>" template.

Definition at line 93 of file ncbi_limits.hpp.

#define NCBI_NUMERIC_LIMITS_UNSIGNED (   type,
  alias 
)
Value:
template <> \
  class numeric_limits<type> \
  { \
  public: \
      static inline type min() THROWS_NONE { return 0; } \
      static inline type max() THROWS_NONE { return kMax_##alias; } \
  }

Definition at line 102 of file ncbi_limits.hpp.

#define NCBI_RESTRICT

Definition at line 86 of file ncbiconf_impl.h.

#define NCBI_UINT8_FORMAT_SPEC   "u"
#define numeric_limits   ncbi_numeric_limits

Pre-declaration of the "numeric_limits<>" template Forcibly overrides (using preprocessor) the original "numeric_limits<>"!

Definition at line 84 of file ncbi_limits.hpp.

#define SIZEOF_NCBI_BIG   8

Definition at line 150 of file ncbitype.h.


Typedef Documentation

typedef char Char

Alias for char.

Definition at line 89 of file ncbitype.h.

typedef signed char Int1

Alias for signed char.

Definition at line 112 of file ncbitype.h.

typedef signed short Int2

Alias for signed short.

Definition at line 114 of file ncbitype.h.

typedef signed int Int4

Alias for signed int.

Definition at line 116 of file ncbitype.h.

typedef signed NCBI_INT8_TYPE Int8

Signed 8 byte sized integer.

Definition at line 139 of file ncbitype.h.

typedef int intptr_t

Definition at line 181 of file ncbitype.h.

typedef NCBI_INT8_TYPE Ncbi_BigScalar

Define large scalar type.

This is platform dependent. It could be an Int8, long double, double or void*.

Definition at line 176 of file ncbitype.h.

typedef signed char Schar

Alias for signed char.

Definition at line 90 of file ncbitype.h.

typedef unsigned char Uchar

Alias for unsigned char.

Definition at line 91 of file ncbitype.h.

typedef unsigned char Uint1

Alias for unsigned char.

Definition at line 113 of file ncbitype.h.

typedef unsigned short Uint2

Alias for unsigned short.

Definition at line 115 of file ncbitype.h.

typedef unsigned int Uint4

Alias for unsigned int.

Definition at line 117 of file ncbitype.h.

typedef unsigned NCBI_INT8_TYPE Uint8

Unsigned 8 byte sized integer.

Definition at line 142 of file ncbitype.h.

typedef unsigned int uintptr_t

Definition at line 193 of file ncbitype.h.


Function Documentation

template<typename T >
END_NCBI_SCOPE ncbi_numeric_limits<T> get_limits ( const T &  ) [inline]

Generic template to get STD limits by a variable.

Typical use:

     int a = 10; 
     get_limits(a).max();
    
Note:
Causes a compile-time failure if used instead of the specialized implementations.

Definition at line 165 of file ncbi_limits.hpp.

Referenced by CMemoryFile::Extend(), and CMemoryFileMap::Map().

EMPTY_TEMPLATE ncbi_numeric_limits< char > get_limits ( const char &  ) [inline]

Definition at line 177 of file ncbi_limits.hpp.

EMPTY_TEMPLATE ncbi_numeric_limits< signed char > get_limits ( const signed char &  ) [inline]

Definition at line 178 of file ncbi_limits.hpp.

EMPTY_TEMPLATE ncbi_numeric_limits< unsigned char > get_limits ( const unsigned char &  ) [inline]

Definition at line 179 of file ncbi_limits.hpp.

EMPTY_TEMPLATE ncbi_numeric_limits< signed short > get_limits ( const signed short &  ) [inline]

Definition at line 181 of file ncbi_limits.hpp.

EMPTY_TEMPLATE ncbi_numeric_limits< unsigned short > get_limits ( const unsigned short &  ) [inline]

Definition at line 182 of file ncbi_limits.hpp.

EMPTY_TEMPLATE ncbi_numeric_limits< signed int > get_limits ( const signed int &  ) [inline]

Definition at line 184 of file ncbi_limits.hpp.

EMPTY_TEMPLATE ncbi_numeric_limits< unsigned int > get_limits ( const unsigned int &  ) [inline]

Definition at line 185 of file ncbi_limits.hpp.

EMPTY_TEMPLATE ncbi_numeric_limits< signed long > get_limits ( const signed long &  ) [inline]

Definition at line 187 of file ncbi_limits.hpp.

EMPTY_TEMPLATE ncbi_numeric_limits< unsigned long > get_limits ( const unsigned long &  ) [inline]

Definition at line 188 of file ncbi_limits.hpp.

EMPTY_TEMPLATE ncbi_numeric_limits< float > get_limits ( const float &  ) [inline]

Definition at line 190 of file ncbi_limits.hpp.

EMPTY_TEMPLATE ncbi_numeric_limits< double > get_limits ( const double &  ) [inline]

Definition at line 191 of file ncbi_limits.hpp.

Modified on Wed May 23 13:01:13 2012 by modify_doxy.py rev. 337098