/usr/include/tulip/cxx/Array.cxx is in libtulip-dev 3.1.2-2.3ubuntu3.
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 | //-*-c++-*-
/**
Authors: David Auber, Patrick Mary, Morgan Mathiaut
from the LaBRI Visualization Team
Email : auber@tulip-software.org
Last modification : 13/03/2009
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.
*/
//=================================================================
template <typename Obj,unsigned int SIZE>
Obj tlp::Array<Obj,SIZE>::operator[](const unsigned int i) const {
assert(i<SIZE);
return array[i];
}
//=================================================================
template <typename Obj,unsigned int SIZE>
Obj& tlp::Array<Obj,SIZE>::operator[](const unsigned int i) {
assert(i<SIZE);
return array[i];
}
//=================================================================
template <typename Obj,unsigned int SIZE>
std::ostream& tlp::operator<<(std::ostream &os,const tlp::Array<Obj,SIZE> &a) {
os << "(" ;
for ( unsigned int i=0 ; i<SIZE ; ++i ) {
if( i>0 )
os << ",";
os << a[i];
}
os << ")" ;
return os;
}
//=================================================================
template <typename Obj,unsigned int SIZE>
std::istream & tlp::operator>> (std::istream &is, tlp::Array<Obj,SIZE> & outA) {
char c;
int pos = is.tellg();
is.clear();
if( !(is >> c) || c!='(' ) {
is.seekg(pos);
is.setstate( std::ios::failbit );
return is;
}
for( unsigned int i=0;i<SIZE;++i ) {
if( i>0 && ( !(is >> c) || c!=',' ) ) {
is.seekg(pos);
is.setstate( std::ios::failbit );
return is;
}
bool done = true;
done = ( is >> outA.array[i] );
if( !done ) {
is.seekg(pos);
is.setstate( std::ios::failbit );
return is;
}
}
if( !(is >> c) || c!=')' ) {
is.seekg(pos);
is.setstate( std::ios::failbit );
return is;
}
return is;
}
//=================================================================
|