blitz  Version 1.0.2
etbase.h
Go to the documentation of this file.
1 // -*- C++ -*-
2 /***************************************************************************
3  * blitz/etbase.h Declaration of the ETBase<T> class
4  *
5  * $Id$
6  *
7  * Copyright (C) 1997-2011 Todd Veldhuizen <tveldhui@acm.org>
8  *
9  * This file is a part of Blitz.
10  *
11  * Blitz is free software: you can redistribute it and/or modify
12  * it under the terms of the GNU Lesser General Public License
13  * as published by the Free Software Foundation, either version 3
14  * of the License, or (at your option) any later version.
15  *
16  * Blitz is distributed in the hope that it will be useful,
17  * but WITHOUT ANY WARRANTY; without even the implied warranty of
18  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
19  * GNU Lesser General Public License for more details.
20  *
21  * You should have received a copy of the GNU Lesser General Public
22  * License along with Blitz. If not, see <http://www.gnu.org/licenses/>.
23  *
24  * Suggestions: blitz-devel@lists.sourceforge.net
25  * Bugs: blitz-support@lists.sourceforge.net
26  *
27  * For more information, please see the Blitz++ Home Page:
28  * https://sourceforge.net/projects/blitz/
29  *
30  ***************************************************************************/
31 
32 #ifndef BZ_ETBASE_H
33 #define BZ_ETBASE_H
34 
35 namespace blitz {
36 
37 template<typename T>
38 class ETBase {
39 public:
40  typedef T T_unwrapped;
41 
42  ETBase()
43  { }
44 
45  ETBase(const ETBase<T>&)
46  { }
47 
48  T& unwrap() { return static_cast<T&>(*this); }
49 
50  const T& unwrap() const { return static_cast<const T&>(*this); }
51 
52  ETBase<T>& wrap() { return static_cast<ETBase<T>&>(*this); }
53 
54  const ETBase<T>& wrap() const { return static_cast<const ETBase<T>&>(*this); }
55 };
56 
57 }
58 
59 #endif // BZ_ETBASE_H
60 
const T & unwrap() const
Definition: etbase.h:50
ETBase()
Definition: etbase.h:42
ETBase< T > & wrap()
Definition: etbase.h:52
T T_unwrapped
Definition: etbase.h:40
Definition: et-forward.h:10
T & unwrap()
Definition: etbase.h:48
const ETBase< T > & wrap() const
Definition: etbase.h:54
Definition: array-impl.h:66
ETBase(const ETBase< T > &)
Definition: etbase.h:45