00001 // this is for emacs file handling -*- mode: c++; indent-tabs-mode: nil -*- 00002 00003 // -- BEGIN LICENSE BLOCK ---------------------------------------------- 00004 // This file is part of FZIs ic_workspace. 00005 // 00006 // This program is free software licensed under the LGPL 00007 // (GNU LESSER GENERAL PUBLIC LICENSE Version 3). 00008 // You can find a copy of this license in LICENSE folder in the top 00009 // directory of the source code. 00010 // 00011 // © Copyright 2016 FZI Forschungszentrum Informatik, Karlsruhe, Germany 00012 // 00013 // -- END LICENSE BLOCK ------------------------------------------------ 00014 00015 //---------------------------------------------------------------------- 00024 //---------------------------------------------------------------------- 00025 #ifndef ICL_CORE_CONVERT_H_INCLUDED 00026 #define ICL_CORE_CONVERT_H_INCLUDED 00027 00028 namespace icl_core { 00029 00066 template <typename TTo, typename TFrom> 00067 void convert(const TFrom& from, TTo& to) 00068 { 00069 to = static_cast<TTo>(from); 00070 } 00071 00086 template <typename TTo, typename TFrom> 00087 TTo convert(const TFrom& from) 00088 { 00089 TTo to; 00090 convert(from, to); 00091 return to; 00092 } 00093 00094 } 00095 00096 #endif