mirror of
https://github.com/saitohirga/WSJT-X.git
synced 2024-11-09 02:26:06 -05:00
4ebe6417a5
git-subtree-dir: boost git-subtree-split: b4feb19f287ee92d87a9624b5d36b7cf46aeadeb
71 lines
1.6 KiB
C++
71 lines
1.6 KiB
C++
// Copyright 2002 The Trustees of Indiana University.
|
|
|
|
// Use, modification and distribution is subject to the Boost Software
|
|
// License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
|
|
// http://www.boost.org/LICENSE_1_0.txt)
|
|
|
|
// Boost.MultiArray Library
|
|
// Authors: Ronald Garcia
|
|
// Jeremy Siek
|
|
// Andrew Lumsdaine
|
|
// See http://www.boost.org/libs/multi_array for documentation.
|
|
|
|
#ifndef RANGE_LIST_RG072501_HPP
|
|
#define RANGE_LIST_RG072501_HPP
|
|
//
|
|
// range_list.hpp - helper to build boost::arrays for *_set types
|
|
//
|
|
|
|
#include "boost/array.hpp"
|
|
|
|
namespace boost {
|
|
namespace detail {
|
|
namespace multi_array {
|
|
|
|
/////////////////////////////////////////////////////////////////////////
|
|
// choose range list begins
|
|
//
|
|
|
|
struct choose_range_list_n {
|
|
template <typename T, std::size_t NumRanges>
|
|
struct bind {
|
|
typedef boost::array<T,NumRanges> type;
|
|
};
|
|
};
|
|
|
|
struct choose_range_list_zero {
|
|
template <typename T, std::size_t NumRanges>
|
|
struct bind {
|
|
typedef boost::array<T,1> type;
|
|
};
|
|
};
|
|
|
|
|
|
template <std::size_t NumRanges>
|
|
struct range_list_gen_helper {
|
|
typedef choose_range_list_n choice;
|
|
};
|
|
|
|
template <>
|
|
struct range_list_gen_helper<0> {
|
|
typedef choose_range_list_zero choice;
|
|
};
|
|
|
|
template <typename T, std::size_t NumRanges>
|
|
struct range_list_generator {
|
|
private:
|
|
typedef typename range_list_gen_helper<NumRanges>::choice Choice;
|
|
public:
|
|
typedef typename Choice::template bind<T,NumRanges>::type type;
|
|
};
|
|
|
|
//
|
|
// choose range list ends
|
|
/////////////////////////////////////////////////////////////////////////
|
|
|
|
} // namespace multi_array
|
|
} // namespace detail
|
|
} // namespace boost
|
|
|
|
#endif // RANGE_LIST_RG072501_HPP
|