sprint 1-alpha
sprint/cpptraits.h
Go to the documentation of this file.
00001 /******************************************************************************
00002 *  sprint::cpptraits
00003 *
00004 *   Copyright (C) 2005-2011  Paolo Medici <www.pmx.it>
00005 *
00006 *  This library is free software; you can redistribute it and/or
00007 *  modify it under the terms of the GNU Lesser General Public
00008 *  License as published by the Free Software Foundation; either
00009 *  version 2.1 of the License, or (at your option) any later version.
00010 *
00011 *  This library is distributed in the hope that it will be useful,
00012 *  but WITHOUT ANY WARRANTY; without even the implied warranty of
00013 *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
00014 *  Lesser General Public License for more details.
00015 *
00016 *  You should have received a copy of the GNU Lesser General Public
00017 *  License along with this library; if not, write to the Free Software
00018 *  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
00019 *
00020 *******************************************************************************/
00021 
00022 #ifndef _SPRINT_CPP_TRAITS_H
00023 #define _SPRINT_CPP_TRAITS_H
00024 
00028 namespace sprint {
00029           
00033 class uncopiable {
00034       private:
00035       uncopiable(const uncopiable &_dummy);
00036       const uncopiable& operator=( const uncopiable& );
00037       protected:
00038       uncopiable() {}
00039       ~uncopiable() {}
00040       };          
00041           
00043 template<bool copiable>
00044 class if_copiable;
00045 
00047 template<>
00048 class if_copiable<true> {
00049       public:
00050              if_copiable() {}
00051       };          
00052 
00054 template<>
00055 class if_copiable<false> {
00056       private:
00059              if_copiable(const if_copiable<false> & local) { }
00060       public:
00061              if_copiable() {}
00062       };          
00063           
00064 };
00065 
00066 #endif
00067 
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Defines