/usr/include/vtk-5.8/vtkOStreamWrapper.h is in libvtk5-dev 5.8.0-5.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 | /*=========================================================================
Program: Visualization Toolkit
Module: vtkOStreamWrapper.h
Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
All rights reserved.
See Copyright.txt or http://www.kitware.com/Copyright.htm for details.
This software is distributed WITHOUT ANY WARRANTY; without even
the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
PURPOSE. See the above copyright notice for more information.
=========================================================================*/
// .NAME vtkOStreamWrapper - Wrapper for C++ ostream. Internal VTK use only.
// .SECTION Description
// Provides a wrapper around the C++ ostream so that VTK source files
// need not include the full C++ streams library. This is intended to
// prevent cluttering of the translation unit and speed up
// compilation. Experimentation has revealed between 10% and 60% less
// time for compilation depending on the platform. This wrapper is
// used by the macros in vtkSetGet.h.
#ifndef __vtkOStreamWrapper_h
#define __vtkOStreamWrapper_h
#ifndef __VTK_SYSTEM_INCLUDES__INSIDE
Do_not_include_vtkOStreamWrapper_directly__vtkSystemIncludes_includes_it;
#endif
class vtkIndent;
class vtkObjectBase;
class vtkLargeInteger;
class vtkSmartPointerBase;
class vtkStdString;
class VTK_COMMON_EXPORT vtkOStreamWrapper
{
public:
// Description:
// Construct class to reference a real ostream. All methods and
// operators will be forwarded.
vtkOStreamWrapper(ostream& os);
vtkOStreamWrapper(vtkOStreamWrapper& r);
// Description:
virtual ~vtkOStreamWrapper();
// Description:
// Type for a fake endl.
struct EndlType {};
// Description:
// Forward this output operator to the real ostream.
vtkOStreamWrapper& operator << (const EndlType&);
vtkOStreamWrapper& operator << (const vtkIndent&);
vtkOStreamWrapper& operator << (vtkObjectBase&);
vtkOStreamWrapper& operator << (const vtkLargeInteger&);
vtkOStreamWrapper& operator << (const vtkSmartPointerBase&);
vtkOStreamWrapper& operator << (const vtkStdString&);
vtkOStreamWrapper& operator << (ostream&);
vtkOStreamWrapper& operator << (const char*);
vtkOStreamWrapper& operator << (void*);
vtkOStreamWrapper& operator << (char);
vtkOStreamWrapper& operator << (short);
vtkOStreamWrapper& operator << (int);
vtkOStreamWrapper& operator << (long);
vtkOStreamWrapper& operator << (unsigned char);
vtkOStreamWrapper& operator << (unsigned short);
vtkOStreamWrapper& operator << (unsigned int);
vtkOStreamWrapper& operator << (unsigned long);
vtkOStreamWrapper& operator << (float);
vtkOStreamWrapper& operator << (double);
#if defined(VTK_TYPE_USE_LONG_LONG)
vtkOStreamWrapper& operator << (long long);
vtkOStreamWrapper& operator << (unsigned long long);
#endif
#if defined(VTK_TYPE_USE___INT64)
vtkOStreamWrapper& operator << (__int64);
vtkOStreamWrapper& operator << (unsigned __int64);
#endif
// Need to switch on bool type because this wrapper is supposed to
// be as transparent as possible to user code. This example should
// not be used to justify using bool elsewhere in VTK.
#ifdef VTK_COMPILER_HAS_BOOL
vtkOStreamWrapper& operator << (bool);
#endif
// Work-around for IBM Visual Age bug in overload resolution.
#if defined(__IBMCPP__)
vtkOStreamWrapper& WriteInternal(const char*);
vtkOStreamWrapper& WriteInternal(void*);
template <typename T>
vtkOStreamWrapper& operator << (T* p)
{
return this->WriteInternal(p);
}
#endif
vtkOStreamWrapper& operator << (void (*)(void*));
vtkOStreamWrapper& operator << (void* (*)(void*));
vtkOStreamWrapper& operator << (int (*)(void*));
vtkOStreamWrapper& operator << (int* (*)(void*));
vtkOStreamWrapper& operator << (float* (*)(void*));
vtkOStreamWrapper& operator << (const char* (*)(void*));
vtkOStreamWrapper& operator << (void (*)(void*, int*));
// Description:
// Forward the write method to the real stream.
vtkOStreamWrapper& write(const char*, unsigned long);
// Description:
// Get a reference to the real ostream.
ostream& GetOStream();
// Description:
// Allow conversion to the real ostream type. This allows an
// instance of vtkOStreamWrapper to look like ostream when passing to a
// function argument.
operator ostream&();
// Description:
// Forward conversion to bool to the real ostream.
operator int();
// Description:
// Forward the flush method to the real ostream.
void flush();
// Description:
// Implementation detail to allow macros to provide an endl that may
// or may not be used.
static void UseEndl(const EndlType&) {}
protected:
// Reference to the real ostream.
ostream& ostr;
private:
vtkOStreamWrapper& operator=(const vtkOStreamWrapper& r); // Not Implemented.
};
#endif
|