Tulip
4.4.0
Better Visualization Through Research
Main Page
Related Pages
Modules
Classes
Files
Examples
File List
All
Classes
Namespaces
Files
Functions
Variables
Enumerations
Enumerator
Properties
Groups
Pages
Array.h
1
/*
2
*
3
* This file is part of Tulip (www.tulip-software.org)
4
*
5
* Authors: David Auber and the Tulip development Team
6
* from LaBRI, University of Bordeaux 1 and Inria Bordeaux - Sud Ouest
7
*
8
* Tulip is free software; you can redistribute it and/or modify
9
* it under the terms of the GNU Lesser General Public License
10
* as published by the Free Software Foundation, either version 3
11
* of the License, or (at your option) any later version.
12
*
13
* Tulip is distributed in the hope that it will be useful,
14
* but WITHOUT ANY WARRANTY; without even the implied warranty of
15
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
16
* See the GNU General Public License for more details.
17
*
18
*/
19
#ifndef _TLP_GEO_ARRAY_H
20
#define _TLP_GEO_ARRAY_H
21
22
#include <cassert>
23
#include <iostream>
24
#include <tulip/tulipconf.h>
25
26
namespace
tlp {
27
28
/**
29
* @brief Fixed-size array encapsulation.
30
* @ingroup Structures
31
* In debug mode, a bound check is performed at each access.
32
* Stream operators implementations are provided.
33
*
34
* @author : David Auber auber@tulip-software.org
35
*/
36
template
<
typename
Obj,
unsigned
int
SIZE>
37
struct
Array
{
38
/**
39
* @brief array The underlying array of data.
40
*/
41
Obj
array
[SIZE];
42
43
/**
44
* @brief operator [] Read-only accessor.
45
* @param i The index of the element to read.
46
* @return The element at index i.
47
*/
48
inline
Obj
operator[]
(
const
unsigned
int
i)
const
;
49
50
/**
51
* @brief operator [] Write accessor.
52
* @param i The index at which to write a value.
53
* @return A reference to the value at index i.
54
*/
55
inline
Obj&
operator[]
(
const
unsigned
int
i);
56
};
57
58
template
<
typename
Obj,
unsigned
int
SIZE>
59
/**
60
* @brief operator << stream operator to easily print an array, or save it to a file.
61
* @param os The stream to output to.
62
* @param array The array to output.
63
* @return The stream to output to, to chain calls.
64
*/
65
std::ostream& operator<<(std::ostream &os,const Array<Obj,SIZE> &array);
66
67
template
<
typename
Obj,
unsigned
int
SIZE>
68
/**
69
* @brief operator >> stream operator to easily read an array
70
* @param is The stream to read from.
71
* @param array A reference to an array, that will be written to.
72
* @return The stream to read from, to chain calls.
73
*/
74
std::istream&
operator>>
(std::istream &is,
Array<Obj,SIZE>
&array);
75
76
//template <typename Obj,unsigned int SIZE>
77
//QDebug operator<<(QDebug dbg,const Array<Obj,SIZE>& s);
78
}
79
80
#include "cxx/Array.cxx"
81
82
#endif
library
tulip-core
include
tulip
Array.h
Generated on Tue Nov 19 2013 23:02:13 for Tulip by
1.8.2