include/wrenbind17/index.hpp #
Namespaces #
| Name | 
|---|
| wrenbind17 | 
Source code #
#pragma once
#include <memory>
namespace wrenbind17 {
#ifndef DOXYGEN_SHOULD_SKIP_THIS
    namespace detail {
        template <size_t... Is>
        struct index_list {};
        // Declare primary template for index range builder
        template <size_t MIN, size_t N, size_t... Is>
        struct range_builder;
        // Base step
        template <size_t MIN, size_t... Is>
        struct range_builder<MIN, MIN, Is...> {
            typedef index_list<Is...> type;
        };
        // Induction step
        template <size_t MIN, size_t N, size_t... Is>
        struct range_builder : public range_builder<MIN, N - 1, N - 1, Is...> {};
        // Meta-function that returns a [MIN, MAX) index range
        template <size_t MIN, size_t MAX>
        using index_range = typename detail::range_builder<MIN, MAX>::type;
    } // namespace detail
#endif
} // namespace wrenbind17
Updated on 17 October 2023 at 12:26:25 UTC