1/*
2 * prp_all_zero.hpp
3 *
4 * Created on: Mar 3, 2016
5 * Author: i-bird
6 */
7
8#ifndef OPENFPM_DATA_SRC_PACKER_UNPACKER_PRP_ALL_ZERO_HPP_
9#define OPENFPM_DATA_SRC_PACKER_UNPACKER_PRP_ALL_ZERO_HPP_
10
11#include "util/variadic_to_vmpl.hpp"
12
13//! Structure to convert a variadic template into boost::mpl::vector
14template<typename T, bool is_zero, int ... prp>
15struct prp_all_zero
16{
17 //! mpl vector
18 typedef typename to_boost_vmpl<prp...>::type type;
19};
20
21//! Structure to convert a variadic template into boost::mpl::vector
22//! when sizeof...(prp) == 0
23template<typename T, int ... prp>
24struct prp_all_zero<T,true,prp ... >
25{
26 //! mpl vector
27 typedef typename boost::mpl::range_c<int,0, boost::mpl::size<typename T::type>::type::value >::type type;
28};
29
30
31#endif /* OPENFPM_DATA_SRC_PACKER_UNPACKER_PRP_ALL_ZERO_HPP_ */
32