typedescr.hh
Go to the documentation of this file.
/* -*- mia-c++ -*-
*
* This file is part of MIA - a toolbox for medical image analysis
* Copyright (c) Leipzig, Madrid 1999-2017 Gert Wollny
*
* MIA is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with MIA; if not, see <http://www.gnu.org/licenses/>.
*
*/
#ifndef mia_core_typedescr_hh
#define mia_core_typedescr_hh
#include <cstdint>
#include <mia/core/defines.hh>
#include <string>
#include <vector>
NS_MIA_BEGIN
struct EXPORT_CORE timestep_type {
static const char *type_descr;
};
template <typename T>
struct __type_descr {
static const char *const value;
};
#define DECLARE_TYPE_DESCR(type) \
template <> \
struct EXPORT_CORE __type_descr<type> { \
static const char * const value; \
}
#define DEFINE_TYPE_DESCR(type) const char * const __type_descr<type>::value = #type;
#define DEFINE_TYPE_DESCR2(type, name) const char * const __type_descr<type>::value = name;
DECLARE_TYPE_DESCR(int8_t);
DECLARE_TYPE_DESCR(uint8_t);
DECLARE_TYPE_DESCR(int16_t);
DECLARE_TYPE_DESCR(int32_t);
DECLARE_TYPE_DESCR(int64_t);
DECLARE_TYPE_DESCR(uint16_t);
DECLARE_TYPE_DESCR(uint32_t);
DECLARE_TYPE_DESCR(uint64_t);
DECLARE_TYPE_DESCR(float);
DECLARE_TYPE_DESCR(double);
DECLARE_TYPE_DESCR(bool);
DECLARE_TYPE_DESCR(std::string);
DECLARE_TYPE_DESCR(std::vector<int16_t>);
DECLARE_TYPE_DESCR(std::vector<int32_t>);
DECLARE_TYPE_DESCR(std::vector<int64_t>);
DECLARE_TYPE_DESCR(std::vector<uint32_t>);
DECLARE_TYPE_DESCR(std::vector<uint16_t>);
DECLARE_TYPE_DESCR(std::vector<uint64_t>);
DECLARE_TYPE_DESCR(std::vector<float>);
DECLARE_TYPE_DESCR(std::vector<double>);
DECLARE_TYPE_DESCR(std::vector<bool>);
DECLARE_TYPE_DESCR(std::vector<std::string>);
NS_MIA_END
#endif
defines.hh
NS_MIA_BEGIN
#define NS_MIA_BEGIN
conveniance define to start the mia namespace
Definition defines.hh:33
EXPORT_CORE
#define EXPORT_CORE
Macro to manage Visual C++ style dllimport/dllexport.
Definition defines.hh:101
NS_MIA_END
#define NS_MIA_END
conveniance define to end the mia namespace
Definition defines.hh:36
type_descr
const char *const TSparseSolver< F >::type_descr
Definition sparse_solver.hh:141