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>;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
2017-11-20 21:35:25 +01:00
|
|
|
/* ========================= *
|
|
|
|
* --- 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>
|
|
|
|
{
|
2017-12-12 16:16:09 +01:00
|
|
|
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
|