00001 // -*- C++ -*- 00002 /*************************************************************************** 00003 * blitz/etbase.h Declaration of the ETBase<T> class 00004 * 00005 * $Id: etbase.h,v 1.5 2003/12/30 23:03:29 julianc Exp $ 00006 * 00007 * Copyright (C) 1997-2001 Todd Veldhuizen <tveldhui@oonumerics.org> 00008 * 00009 * This program is free software; you can redistribute it and/or 00010 * modify it under the terms of the GNU General Public License 00011 * as published by the Free Software Foundation; either version 2 00012 * of the License, or (at your option) any later version. 00013 * 00014 * This program is distributed in the hope that it will be useful, 00015 * but WITHOUT ANY WARRANTY; without even the implied warranty of 00016 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 00017 * GNU General Public License for more details. 00018 * 00019 * Suggestions: blitz-dev@oonumerics.org 00020 * Bugs: blitz-bugs@oonumerics.org 00021 * 00022 * For more information, please see the Blitz++ Home Page: 00023 * http://oonumerics.org/blitz/ 00024 * 00025 ***************************************************************************/ 00026 00027 #ifndef BZ_ETBASE_H 00028 #define BZ_ETBASE_H 00029 00030 BZ_NAMESPACE(blitz) 00031 00032 template<typename T> 00033 class ETBase { 00034 public: 00035 ETBase() 00036 { } 00037 00038 ETBase(const ETBase<T>&) 00039 { } 00040 00041 T& unwrap() { return static_cast<T&>(*this); } 00042 00043 const T& unwrap() const { return static_cast<const T&>(*this); } 00044 }; 00045 00046 BZ_NAMESPACE_END 00047 00048 #endif // BZ_ETBASE_H 00049