cnorxz/src/helper_tools.h

32 lines
642 B
C
Raw Normal View History

2017-11-20 20:53:48 +01:00
2017-11-20 21:00:52 +01:00
#ifndef __helper_tools_h__
#define __helper_tools_h__
2017-11-20 20:53:48 +01:00
#include "base_def.h"
namespace MultiArrayTools
{
template <class RangeType>
auto getIndex(std::shared_ptr<RangeType> range)
-> std::shared_ptr<typename RangeType::IndexType>;
}
/* ========================= *
* --- TEMPLATE CODE --- *
* ========================= */
2017-11-20 20:53:48 +01:00
namespace MultiArrayTools
{
template <class RangeType>
auto getIndex(std::shared_ptr<RangeType> range)
-> std::shared_ptr<typename RangeType::IndexType>
{
return std::dynamic_pointer_cast<IndexWrapper<typename RangeType::IndexType> >
( range->index() )->get();
2017-11-20 20:53:48 +01:00
}
}
2017-11-20 21:00:52 +01:00
#endif