/
usr
/
include
/
luabind
/
detail
/
/usr/include/luabind/detail
mkdir
upload
Name
Size
Mode
Actions
call.hpp
9158
0644
edit
dl
rm
call_function.hpp
18726
0644
edit
dl
rm
call_member.hpp
13721
0644
edit
dl
rm
call_operator_iterate.hpp
2194
0644
edit
dl
rm
class_registry.hpp
2940
0644
edit
dl
rm
class_rep.hpp
6235
0644
edit
dl
rm
constructor.hpp
3691
0644
edit
dl
rm
convert_to_lua.hpp
2924
0644
edit
dl
rm
debug.hpp
2273
0644
edit
dl
rm
decorate_type.hpp
6592
0644
edit
dl
rm
deduce_signature.hpp
2016
0644
edit
dl
rm
enum_maker.hpp
3542
0644
edit
dl
rm
format_signature.hpp
3609
0644
edit
dl
rm
garbage_collector.hpp
1862
0644
edit
dl
rm
has_get_pointer.hpp
2960
0644
edit
dl
rm
inheritance.hpp
4197
0644
edit
dl
rm
instance_holder.hpp
3108
0644
edit
dl
rm
link_compatibility.hpp
1994
0644
edit
dl
rm
make_instance.hpp
2811
0644
edit
dl
rm
most_derived.hpp
1602
0644
edit
dl
rm
object.hpp
33394
0644
edit
dl
rm
object_call.hpp
1899
0644
edit
dl
rm
object_rep.hpp
4471
0644
edit
dl
rm
operator_id.hpp
2465
0644
edit
dl
rm
other.hpp
3290
0644
edit
dl
rm
pcall.hpp
1458
0644
edit
dl
rm
pointee_sizeof.hpp
1840
0644
edit
dl
rm
policy.hpp
28340
0644
edit
dl
rm
primitives.hpp
1856
0644
edit
dl
rm
property.hpp
782
0644
edit
dl
rm
signature_match.hpp
2171
0644
edit
dl
rm
stack_utils.hpp
1640
0644
edit
dl
rm
typetraits.hpp
5439
0644
edit
dl
rm
yes_no.hpp
1324
0644
edit
dl
rm
Edit:
/usr/include/luabind/detail/format_signature.hpp
(3609B)
// Copyright Daniel Wallin 2008. 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_FORMAT_SIGNATURE_081014_HPP # define LUABIND_FORMAT_SIGNATURE_081014_HPP # include <luabind/config.hpp> # include <luabind/lua_include.hpp> # include <luabind/object_fwd.hpp> # include <luabind/typeid.hpp> # include <boost/mpl/begin_end.hpp> # include <boost/mpl/next.hpp> # include <boost/mpl/size.hpp> namespace luabind { namespace detail { namespace mpl = boost::mpl; LUABIND_API std::string get_class_name(lua_State* L, type_id const& i); template <class T, class Enable = void> struct type_to_string { static void get(lua_State* L) { std::string const class_name = get_class_name(L, typeid(T)); lua_pushlstring(L, class_name.c_str(), class_name.size()); } }; template <class T> struct type_to_string<T*> { static void get(lua_State* L) { type_to_string<T>::get(L); lua_pushliteral(L, "*"); lua_concat(L, 2); } }; template <class T> struct type_to_string<T&> { static void get(lua_State* L) { type_to_string<T>::get(L); lua_pushliteral(L, "&"); lua_concat(L, 2); } }; template <class T> struct type_to_string<T const> { static void get(lua_State* L) { type_to_string<T>::get(L); lua_pushliteral(L, " const"); lua_concat(L, 2); } }; # define LUABIND_TYPE_TO_STRING(x) \ template <> \ struct type_to_string<x> \ { \ static void get(lua_State* L) \ { \ lua_pushliteral(L, #x); \ } \ }; # define LUABIND_INTEGRAL_TYPE_TO_STRING(x) \ LUABIND_TYPE_TO_STRING(x) \ LUABIND_TYPE_TO_STRING(unsigned x) LUABIND_INTEGRAL_TYPE_TO_STRING(char) LUABIND_INTEGRAL_TYPE_TO_STRING(short) LUABIND_INTEGRAL_TYPE_TO_STRING(int) LUABIND_INTEGRAL_TYPE_TO_STRING(long) #ifndef BOOST_NO_LONG_LONG LUABIND_INTEGRAL_TYPE_TO_STRING(long long) #endif LUABIND_TYPE_TO_STRING(void) LUABIND_TYPE_TO_STRING(bool) LUABIND_TYPE_TO_STRING(std::string) LUABIND_TYPE_TO_STRING(lua_State) LUABIND_TYPE_TO_STRING(luabind::object) LUABIND_TYPE_TO_STRING(luabind::argument) # undef LUABIND_INTEGRAL_TYPE_TO_STRING # undef LUABIND_TYPE_TO_STRING template <class Base> struct type_to_string<table<Base> > { static void get(lua_State* L) { lua_pushliteral(L, "table"); } }; template <class End> void format_signature_aux(lua_State*, bool, End, End) {} template <class Iter, class End> void format_signature_aux(lua_State* L, bool first, Iter, End end) { if (!first) lua_pushliteral(L, ","); type_to_string<typename Iter::type>::get(L); format_signature_aux(L, false, typename mpl::next<Iter>::type(), end); } template <class Signature> void format_signature(lua_State* L, char const* function, Signature) { typedef typename mpl::begin<Signature>::type first; type_to_string<typename first::type>::get(L); lua_pushliteral(L, " "); lua_pushstring(L, function); lua_pushliteral(L, "("); format_signature_aux( L , true , typename mpl::next<first>::type() , typename mpl::end<Signature>::type() ); lua_pushliteral(L, ")"); int const signature_len = static_cast<int>(mpl::size<Signature>()); lua_concat(L, signature_len * 2 + (signature_len == 1 ? 3 /* zero-argument function: account for ')' */ : 2)); } }} // namespace luabind::detail #endif // LUABIND_FORMAT_SIGNATURE_081014_HPP
Save
cmd:
run