williamr@2: // Copyright 2002 The Trustees of Indiana University. williamr@2: williamr@2: // Use, modification and distribution is subject to the Boost Software williamr@2: // License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at williamr@2: // http://www.boost.org/LICENSE_1_0.txt) williamr@2: williamr@2: // Boost.MultiArray Library williamr@2: // Authors: Ronald Garcia williamr@2: // Jeremy Siek williamr@2: // Andrew Lumsdaine williamr@2: // See http://www.boost.org/libs/multi_array for documentation. williamr@2: williamr@2: #ifndef RANGE_LIST_RG072501_HPP williamr@2: #define RANGE_LIST_RG072501_HPP williamr@2: // williamr@2: // range_list.hpp - helper to build boost::arrays for *_set types williamr@2: // williamr@2: williamr@2: #include "boost/array.hpp" williamr@2: williamr@2: namespace boost { williamr@2: namespace detail { williamr@2: namespace multi_array { williamr@2: williamr@2: ///////////////////////////////////////////////////////////////////////// williamr@2: // choose range list begins williamr@2: // williamr@2: williamr@2: struct choose_range_list_n { williamr@2: template williamr@2: struct bind { williamr@2: typedef boost::array type; williamr@2: }; williamr@2: }; williamr@2: williamr@2: struct choose_range_list_zero { williamr@2: template williamr@2: struct bind { williamr@2: typedef boost::array type; williamr@2: }; williamr@2: }; williamr@2: williamr@2: williamr@2: template williamr@2: struct range_list_gen_helper { williamr@2: typedef choose_range_list_n choice; williamr@2: }; williamr@2: williamr@2: template <> williamr@2: struct range_list_gen_helper<0> { williamr@2: typedef choose_range_list_zero choice; williamr@2: }; williamr@2: williamr@2: template williamr@2: struct range_list_generator { williamr@2: private: williamr@2: typedef typename range_list_gen_helper::choice Choice; williamr@2: public: williamr@2: typedef typename Choice::template bind::type type; williamr@2: }; williamr@2: williamr@2: // williamr@2: // choose range list ends williamr@2: ///////////////////////////////////////////////////////////////////////// williamr@2: williamr@2: } // namespace multi_array williamr@2: } // namespace detail williamr@2: } // namespace boost williamr@2: williamr@2: #endif // RANGE_LIST_RG072501_HPP