iRoCS Toolbox  1.1.0
DirectAccessor.hh
Go to the documentation of this file.
1 /**************************************************************************
2  *
3  * Copyright (C) 2004-2015 Olaf Ronneberger, Florian Pigorsch, Jörg Mechnich,
4  * Thorsten Falk
5  *
6  * Image Analysis Lab, University of Freiburg, Germany
7  *
8  * This program is free software; you can redistribute it and/or modify
9  * it under the terms of the GNU General Public License as published by
10  * the Free Software Foundation; either version 3 of the License, or
11  * (at your option) any later version.
12  *
13  * This program 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. See the
16  * GNU General Public License for more details.
17  *
18  * You should have received a copy of the GNU General Public License
19  * along with this program; if not, write to the Free Software Foundation,
20  * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
21  *
22  **************************************************************************/
23 
24 /**************************************************************************
25 ** Title: Access elements in a container
26 ** $RCSfile$
27 ** $Revision: 492 $$Name$
28 ** $Date: 2004-09-01 16:45:13 +0200 (Wed, 01 Sep 2004) $
29 ** Copyright: GPL $Author: ronneber $
30 ** Description:
31 **
32 **
33 **
34 **-------------------------------------------------------------------------
35 **
36 ** $Log$
37 ** Revision 1.1 2004/09/01 14:43:36 ronneber
38 ** changed IterToPointerTraits stuff to
39 ** DirectAccessor and DereferencingAccessor, to make code more
40 ** intuitive understandable
41 **
42 **
43 **
44 **************************************************************************/
45 
46 #ifndef DIRECTACCESSOR_HH
47 #define DIRECTACCESSOR_HH
48 
49 #ifdef HAVE_CONFIG_H
50 #include <config.hh>
51 #endif
52 
53 #include <iterator>
54 
55 namespace svt
56 {
58  {
59  template< typename Iter>
60  struct Traits
61  {
62  typedef typename std::iterator_traits<Iter>::value_type value_type;
63  };
64 
65  template< typename Iter>
66  typename Traits<Iter>::value_type& operator()( const Iter& iter)
67  {
68  return *iter;
69  }
70  };
71 
72 }
73 
74 #endif
Traits< Iter >::value_type & operator()(const Iter &iter)
std::iterator_traits< Iter >::value_type value_type