/usr/include/luabind
NameSizeModeActions
detail/-0755rm
adopt_policy.hpp50910644editdlrm
back_reference.hpp31110644editdlrm
back_reference_fwd.hpp14950644editdlrm
build_information.hpp20150644editdlrm
class.hpp274900644editdlrm
class_info.hpp17040644editdlrm
config.hpp52320644editdlrm
container_policy.hpp49510644editdlrm
copy_policy.hpp13130644editdlrm
dependency_policy.hpp26910644editdlrm
discard_result_policy.hpp25120644editdlrm
error.hpp33450644editdlrm
error_callback_fun.hpp17500644editdlrm
exception_handler.hpp20860644editdlrm
from_stack.hpp14850644editdlrm
function.hpp15190644editdlrm
function_converter.hpp40210644editdlrm
function_introspection.hpp19490644editdlrm
get_main_thread.hpp5220644editdlrm
get_pointer.hpp15540644editdlrm
handle.hpp42180644editdlrm
intrusive_ptr_converter.hpp17890644editdlrm
iterator_policy.hpp29820644editdlrm
luabind.hpp13560644editdlrm
lua_include.hpp26650644editdlrm
lua_state_fwd.hpp13570644editdlrm
make_function.hpp32380644editdlrm
nil.hpp13680644editdlrm
no_dependency.hpp9030644editdlrm
object.hpp12910644editdlrm
object_fwd.hpp3310644editdlrm
open.hpp13710644editdlrm
operator.hpp89930644editdlrm
out_value_policy.hpp120290644editdlrm
prefix.hpp12650644editdlrm
raw_policy.hpp24260644editdlrm
return_reference_to_policy.hpp26610644editdlrm
scope.hpp29440644editdlrm
set_package_preload.hpp24520644editdlrm
shared_ptr_converter.hpp52740644editdlrm
stack.hpp40160644editdlrm
std_shared_ptr_converter.hpp22710644editdlrm
tag_function.hpp16220644editdlrm
typeid.hpp24980644editdlrm
value_wrapper.hpp42410644editdlrm
version.hpp5130644editdlrm
weak_ref.hpp18340644editdlrm
wrapper_base.hpp59870644editdlrm
yield_policy.hpp17340644editdlrm
Edit: /usr/include/luabind/iterator_policy.hpp (2982B)
// Copyright Daniel Wallin 2007. 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) #ifndef LUABIND_ITERATOR_POLICY_071111_HPP # define LUABIND_ITERATOR_POLICY_071111_HPP # include // for LUABIND_ANONYMOUS_FIX # include // for convert_to_lua # include // for index_map, etc # include // for operator new namespace luabind { namespace detail { struct null_type; template struct iterator { static int next(lua_State* L) { iterator* self = static_cast( lua_touserdata(L, lua_upvalueindex(1))); if (self->first != self->last) { convert_to_lua(L, *self->first); ++self->first; } else { lua_pushnil(L); } return 1; } static int destroy(lua_State* L) { iterator* self = static_cast(lua_touserdata(L, 1)); self->~iterator(); (void)self; // MSVC warns about self not being referenced. return 0; } iterator(Iterator first_, Iterator last_) : first(first_) , last(last_) {} Iterator first; Iterator last; }; template int make_range(lua_State* L, Iterator first, Iterator last) { void* storage = lua_newuserdata(L, sizeof(iterator)); lua_createtable(L, 0, 1); lua_pushcclosure(L, iterator::destroy, 0); lua_setfield(L, -2, "__gc"); lua_setmetatable(L, -2); lua_pushcclosure(L, iterator::next, 1); new (storage) iterator(first, last); return 1; } template int make_range(lua_State* L, Container& container) { return make_range(L, container.begin(), container.end()); } struct iterator_converter { typedef iterator_converter type; template void apply(lua_State* L, Container& container) { make_range(L, container); } template void apply(lua_State* L, Container const& container) { make_range(L, container); } }; struct iterator_policy : conversion_policy<0> { static void precall(lua_State*, index_map const&) {} static void postcall(lua_State*, index_map const&) {} template struct apply { typedef iterator_converter type; }; }; }} // namespace luabind::detail namespace luabind { detail::policy_cons const return_stl_iterator = {}; namespace detail { inline void ignore_unused_return_stl_iterator() { (void)return_stl_iterator; } } } // namespace luabind #endif // LUABIND_ITERATOR_POLICY__071111_HPP