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 //---------------------------------------------------------------------- 00025 //---------------------------------------------------------------------- 00026 #ifndef ICL_CORE_T_VECTOR_H_INCLUDED 00027 #define ICL_CORE_T_VECTOR_H_INCLUDED 00028 00029 #include <vector> 00030 00031 #include "icl_core/BaseTypes.h" 00032 #include "icl_core/Deprecate.h" 00033 #include "icl_core/TemplateHelper.h" 00034 00035 namespace icl_core { 00036 00037 // \todo Create a wrapper class (and/or additional RT-safe implementations). 00038 template <typename T> 00039 class ICL_CORE_VC_DEPRECATE tVector : public std::vector<T> 00040 { 00041 public: 00042 tVector() : std::vector<T>() { } 00043 tVector(const tVector& c) : std::vector<T>(c) { } 00044 explicit tVector(tSize num, typename ConvertToRef<T>::ToConstRef val = DefaultConstruct<T>::C()) 00045 : std::vector<T>(num, val) 00046 { } 00047 template <typename input_iterator> 00048 tVector(input_iterator start, input_iterator end) : std::vector<T>(start, end) { } 00049 } ICL_CORE_GCC_DEPRECATE; 00050 00051 typedef tVector<tUnsigned8> tUnsigned8Vector; 00052 typedef tVector<tUnsigned16> tUnsigned16Vector; 00053 typedef tVector<tUnsigned32> tUnsigned32Vector; 00054 typedef tVector<tUnsigned64> tUnsigned64Vector; 00055 typedef tVector<tSigned8> tSigned8Vector; 00056 typedef tVector<tSigned16> tSigned16Vector; 00057 typedef tVector<tSigned32> tSigned32Vector; 00058 typedef tVector<tSigned64> tSigned64Vector; 00059 typedef tVector<tFloat> tFloatVector; 00060 typedef tVector<tDouble> tDoubleVector; 00061 00062 } 00063 00064 #endif