Changeset 0cb90aa in tol
- Timestamp:
- Dec 11, 2010, 7:39:05 PM (16 years ago)
- Branches:
- 1941-docker-image-to-test, devel, master
- Children:
- 0e3f2d32
- Parents:
- 7519264
- File:
-
- 1 edited
-
tol/stdlib/general/TolCint/tol_cint_casting.cpp (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
-
tol/stdlib/general/TolCint/tol_cint_casting.cpp
r7519264 r0cb90aa 17 17 int columns_; 18 18 double* buffer_; 19 int deleteBuffer_; 19 20 20 Matrix(int rows, int columns, double* buffer )21 Matrix(int rows, int columns, double* buffer, int deleteBuffer=0) 21 22 : rows_(rows), 22 23 columns_(columns), 23 buffer_(buffer) 24 buffer_(buffer), 25 deleteBuffer_(deleteBuffer) 24 26 {} 25 27 26 ~Matrix() {} 28 Matrix(int rows, int columns) 29 : rows_(0), 30 columns_(0), 31 buffer_(NULL), 32 deleteBuffer_(false) 33 { 34 Alloc(rows. columns) 35 } 36 37 ~Matrix() 38 { 39 Free(); 40 } 41 42 void Free() 43 { 44 if(deleteBuffer_ && buffer_) delete [] buffer_; 45 buffer_ = NULL; 46 rows_ = 0; 47 columns_ = 0; 48 deleteBuffer_ = false; 49 } 50 51 void Alloc(int rows, int columns) 52 { 53 Free(); 54 rows_ = rows; 55 columns_ = columns; 56 buffer_ = new double[rows*columns) 57 deleteBuffer_ = true; 58 } 27 59 28 60 //Zero based vector access … … 55 87 int length_; 56 88 char* buffer_; 89 int deleteBuffer_; 57 90 58 Text(int length, char* buffer )91 Text(int length, char* buffer, int deleteBuffer=0) 59 92 : length_(length), 60 buffer_(buffer) 93 buffer_(buffer), 94 deleteBuffer_(deleteBuffer) 61 95 {} 62 96 63 ~Text() {} 97 Text(char* buffer) 98 : length_(strlen(buffer)), 99 buffer_(buffer), 100 deleteBuffer_(0) 101 {} 64 102 65 double& operator() (int i) const 103 ~Text() 104 { 105 Free(); 106 } 107 108 void Free() 109 { 110 if(deleteBuffer_ && buffer_) delete [] buffer_; 111 length_ = 0; 112 buffer_ = NULL; 113 deleteBuffer_ = false; 114 } 115 116 void Alloc(int length) 117 { 118 Free(); 119 length_ = length; 120 buffer_ = new char[length_+1) 121 deleteBuffer_ = true; 122 } 123 124 //Zero based vector access 125 double& operator[] (int i) const 66 126 { 67 127 return(buffer_[i]); 68 128 } 129 //One based vector access 130 double& operator() (int i) const 131 { 132 return(buffer_[i-1]); 133 } 134 //concat operations 135 Text operator + (const Text& right) 136 { 137 int len = length_ + right.length_; 138 char* buf = new char[len+1]; 139 sprintf(buf,"%s%s",buffer_,right.buffer); 140 Text txt(len, buf, 1); 141 return(txt); 142 } 143 Text operator + (const char* right) 144 { 145 int len = length_ + strlen(right); 146 char* buf = new char[len+1]; 147 sprintf(buf,"%s%s",buffer_,right); 148 Text txt(len, buf, 1); 149 return(txt); 150 } 151 Text operator + (int num) 152 { 153 int len = length_ + 64; 154 char* buf = new char[len+1]; 155 sprintf(buf,"%s%ld",buffer_,num); 156 Text txt(len, buf, 1); 157 return(txt); 158 } 159 Text operator + (double num) 160 { 161 int len = length_ + 64; 162 char* buf = new char[len+1]; 163 sprintf(buf,"%s%.16lg",buffer_,n); 164 Text txt(len, buf, 1); 165 return(txt); 166 } 69 167 }; 168 169
Note: See TracChangeset
for help on using the changeset viewer.
