5 #ifndef LUABIND_ITERATOR_POLICY__071111_HPP 6 # define LUABIND_ITERATOR_POLICY__071111_HPP 8 # include <luabind/config.hpp> 9 # include <luabind/detail/policy.hpp> 10 # include <luabind/detail/convert_to_lua.hpp> 12 namespace luabind {
namespace detail {
14 template <
class Iterator>
20 lua_touserdata(L, lua_upvalueindex(1)));
22 if (self->first != self->last)
24 convert_to_lua(L, *self->first);
42 iterator(Iterator first, Iterator last)
51 template <
class Iterator>
52 int make_range(
lua_State* L, Iterator first, Iterator last)
57 lua_setfield(L, -2,
"__gc");
58 lua_setmetatable(L, -2);
64 template <
class Container>
65 int make_range(
lua_State* L, Container& container)
67 return make_range(L, container.begin(), container.end());
74 template <
class Container>
75 void apply(
lua_State* L, Container& container)
77 make_range(L, container);
80 template <
class Container>
81 void apply(
lua_State* L, Container
const& container)
83 make_range(L, container);
95 template <
class T,
class Direction>
104 namespace luabind {
namespace {
111 #endif // LUABIND_ITERATOR_POLICY__071111_HPP Definition: policy.hpp:77
Definition: policy.hpp:83
Definition: minilua.c:461
Definition: PEtypes.h:507
Definition: iterator_policy.hpp:96
Definition: primitives.hpp:44
Definition: iterator_policy.hpp:87
Definition: iterator_policy.hpp:70
Definition: iterator_policy.hpp:15
Definition: policy.hpp:104