Main Page   Class Hierarchy   Alphabetical List   Compound List   File List   Compound Members   File Members   Related Pages  

Common/vtkIdType.h

Go to the documentation of this file.
00001 /*=========================================================================
00002 
00003   Program:   Visualization Toolkit
00004   Module:    $RCSfile: vtkIdType.h,v $
00005   Language:  C++
00006 
00007   Copyright (c) 1993-2002 Ken Martin, Will Schroeder, Bill Lorensen 
00008   All rights reserved.
00009   See Copyright.txt or http://www.kitware.com/Copyright.htm for details.
00010 
00011      This software is distributed WITHOUT ANY WARRANTY; without even 
00012      the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR 
00013      PURPOSE.  See the above copyright notice for more information.
00014 
00015 =========================================================================*/
00043 #ifndef __vtkIdType_h
00044 #define __vtkIdType_h
00045 
00046 #ifndef __VTK_SYSTEM_INCLUDES__INSIDE
00047 Do_not_include_vtkIdType_directly__vtkSystemIncludes_includes_it;
00048 #endif
00049 
00050 // Choose an implementation for vtkIdType.
00051 #define VTK_HAS_ID_TYPE
00052 #ifdef VTK_USE_64BIT_IDS
00053 # define VTK_ID_TYPE_IS_NOT_BASIC_TYPE
00054 # define VTK_SIZEOF_ID_TYPE 8
00055 # ifdef _WIN32
00056 typedef __int64 vtkIdType;
00057 #  define VTK_NEED_ID_TYPE_STREAM_OPERATORS
00058 # else // _WIN32
00059 typedef long long vtkIdType;
00060 #  define VTK_NEED_ID_TYPE_STREAM_OPERATORS
00061 # endif // _WIN32
00062 #else // VTK_USE_64BIT_IDS
00063 # define VTK_SIZEOF_ID_TYPE VTK_SIZEOF_INT
00064 typedef int vtkIdType;
00065 #endif // VTK_USE_64BIT_IDS
00066 
00067 // Define a wrapper class so that we can define streaming operators
00068 // for vtkIdType without conflicting with other libraries'
00069 // implementations.
00070 class VTK_COMMON_EXPORT vtkIdTypeHolder
00071 {
00072 public:
00073   vtkIdTypeHolder(vtkIdType& v): Value(v) {}
00074   vtkIdType& Value;
00075 private:
00076   vtkIdTypeHolder& operator=(const vtkIdTypeHolder&); // Not Implemented.
00077 };
00078 VTK_COMMON_EXPORT ostream& operator << (ostream& os, vtkIdTypeHolder idh);
00079 VTK_COMMON_EXPORT istream& operator >> (istream& is, vtkIdTypeHolder idh);
00080 
00081 #endif