Re: luabind 0.9 compile error with clang 3.2
Ryan Pavlik <[email protected]> Thu, 3 Jan 2013 15:19:01 -0600
| Newsgroups | gmane.comp.lang.lua.bind.user |
|---|---|
| Message-ID | <CABMFTE-QvB3PT4x6Hcizp8oT4qkTfDY=8nO0j-s8u3V9OYrs0Q@mail.gmail.com> |
Which repository/commit are you using? I've been compiling using clang trunk without issue, on my github branch: http://github.com/rpavlik/luabind Ryan On Mon, Dec 31, 2012 at 11:21 AM, Tomasz Mikolajczyk < [email protected]> wrote: > Hi. > > The latest clang 3.2 detected an ambiguous forward declarations in > detail/format_signature.hpp file: > > {{{ > In file included from /home/tomaszmi/src/stack_content_by_name.cpp:27: > In file included from /home/tomaszmi/luabind/luabind.hpp:28: > In file included from /home/tomaszmi/luabind/class.hpp:94: > In file included from /home/tomaszmi/luabind/function.hpp:8: > In file included from /home/tomaszmi/luabind/make_function.hpp:13: > /home/tomaszmi/luabind/detail/format_signature.hpp:95:33: error: > reference to 'object' is ambiguous > LUABIND_TYPE_TO_STRING(luabind::object) > ^ > /home/tomaszmi/luabind/detail/format_signature.hpp:73:27: note: > expanded from macro 'LUABIND_TYPE_TO_STRING' > struct type_to_string<x> \ > ^ > /home/tomaszmi/luabind/object.hpp:826:12: note: candidate found by > name lookup is 'luabind::object' > using adl::object; > ^ > /home/tomaszmi/luabind/detail/format_signature.hpp:18:7: note: > candidate found by name lookup is 'luabind::object' > class object; > ^ > /home/tomaszmi/luabind/detail/format_signature.hpp:96:33: error: > reference to 'argument' is ambiguous > LUABIND_TYPE_TO_STRING(luabind::argument) > ^ > /home/tomaszmi/luabind/detail/format_signature.hpp:73:27: note: > expanded from macro 'LUABIND_TYPE_TO_STRING' > struct type_to_string<x> \ > ^ > /home/tomaszmi/luabind/object.hpp:827:12: note: candidate found by > name lookup is 'luabind::argument' > using adl::argument; > ^ > /home/tomaszmi/luabind/detail/format_signature.hpp:19:7: note: > candidate found by name lookup is 'luabind::argument' > class argument; > ^ > /home/tomaszmi/luabind/detail/format_signature.hpp:102:23: error: > reference to 'table' is ambiguous > struct type_to_string<table<Base> > > ^ > /home/tomaszmi/luabind/object.hpp:1189:12: note: candidate found by > name lookup is 'luabind::table' > using adl::table; > ^ > /home/tomaszmi/luabind/detail/format_signature.hpp:21:8: note: > candidate found by name lookup is 'luabind::table' > struct table; > ^ > /home/tomaszmi/luabind/detail/format_signature.hpp:102:29: error: > 'Base' does not refer to a value > struct type_to_string<table<Base> > > ^ > /home/tomaszmi/luabind/detail/format_signature.hpp:101:17: note: declared > here > template <class Base> > ^ > In file included from /home/tomaszmi/src/stack_content_by_name.cpp:27: > In file included from /home/tomaszmi/luabind/luabind.hpp:28: > In file included from /home/tomaszmi/luabind/class.hpp:94: > In file included from /home/tomaszmi/luabind/function.hpp:8: > /home/tomaszmi/luabind/make_function.hpp:95:15: error: reference to > 'object' is ambiguous > LUABIND_API object make_function_aux( > ^ > /home/tomaszmi/luabind/object.hpp:826:12: note: candidate found by > name lookup is 'luabind::object' > using adl::object; > ^ > /home/tomaszmi/luabind/detail/format_signature.hpp:18:7: note: > candidate found by name lookup is 'luabind::object' > class object; > ^ > In file included from /home/tomaszmi/src/stack_content_by_name.cpp:27: > In file included from /home/tomaszmi/luabind/luabind.hpp:28: > In file included from /home/tomaszmi/luabind/class.hpp:94: > In file included from /home/tomaszmi/luabind/function.hpp:8: > /home/tomaszmi/luabind/make_function.hpp:99:33: error: reference to > 'object' is ambiguous > LUABIND_API void add_overload(object const&, char const*, object const&); > ^ > /home/tomaszmi/luabind/object.hpp:826:12: note: candidate found by > name lookup is 'luabind::object' > using adl::object; > ^ > /home/tomaszmi/luabind/detail/format_signature.hpp:18:7: note: > candidate found by name lookup is 'luabind::object' > class object; > ^ > In file included from /home/tomaszmi/src/stack_content_by_name.cpp:27: > In file included from /home/tomaszmi/luabind/luabind.hpp:28: > In file included from /home/tomaszmi/luabind/class.hpp:94: > In file included from /home/tomaszmi/luabind/function.hpp:8: > /home/tomaszmi/luabind/make_function.hpp:99:33: error: reference to > 'object' is ambiguous > LUABIND_API void add_overload(object const&, char const*, object const&); > ^ > /home/tomaszmi/luabind/object.hpp:826:12: note: candidate found by > name lookup is 'luabind::object' > using adl::object; > ^ > /home/tomaszmi/luabind/detail/format_signature.hpp:18:7: note: > candidate found by name lookup is 'luabind::object' > class object; > ^ > In file included from /home/tomaszmi/src/stack_content_by_name.cpp:27: > In file included from /home/tomaszmi/luabind/luabind.hpp:28: > In file included from /home/tomaszmi/luabind/class.hpp:94: > In file included from /home/tomaszmi/luabind/function.hpp:8: > /home/tomaszmi/luabind/make_function.hpp:99:61: error: reference to > 'object' is ambiguous > LUABIND_API void add_overload(object const&, char const*, object const&); > ^ > /home/tomaszmi/luabind/object.hpp:826:12: note: candidate found by > name lookup is 'luabind::object' > using adl::object; > ^ > /home/tomaszmi/luabind/detail/format_signature.hpp:18:7: note: > candidate found by name lookup is 'luabind::object' > class object; > ^ > In file included from /home/tomaszmi/src/stack_content_by_name.cpp:27: > In file included from /home/tomaszmi/luabind/luabind.hpp:28: > In file included from /home/tomaszmi/luabind/class.hpp:94: > In file included from /home/tomaszmi/luabind/function.hpp:8: > /home/tomaszmi/luabind/make_function.hpp:104:1: error: reference to > 'object' is ambiguous > object make_function(lua_State* L, F f, Signature, Policies) > ^ > /home/tomaszmi/luabind/object.hpp:826:12: note: candidate found by > name lookup is 'luabind::object' > using adl::object; > ^ > /home/tomaszmi/luabind/detail/format_signature.hpp:18:7: note: > candidate found by name lookup is 'luabind::object' > class object; > ^ > In file included from /home/tomaszmi/src/stack_content_by_name.cpp:27: > In file included from /home/tomaszmi/luabind/luabind.hpp:28: > In file included from /home/tomaszmi/luabind/class.hpp:94: > In file included from /home/tomaszmi/luabind/function.hpp:8: > /home/tomaszmi/luabind/make_function.hpp:104:8: error: incomplete > result type 'luabind::object' in function definition > object make_function(lua_State* L, F f, Signature, Policies) > ^ > /home/tomaszmi/luabind/detail/format_signature.hpp:18:7: note: forward > declaration of 'luabind::object' > class object; > ^ > In file included from /home/tomaszmi/src/stack_content_by_name.cpp:27: > In file included from /home/tomaszmi/luabind/luabind.hpp:28: > In file included from /home/tomaszmi/luabind/class.hpp:94: > In file included from /home/tomaszmi/luabind/function.hpp:8: > /home/tomaszmi/luabind/make_function.hpp:115:1: error: reference to > 'object' is ambiguous > object make_function(lua_State* L, F f) > ^ > /home/tomaszmi/luabind/object.hpp:826:12: note: candidate found by > name lookup is 'luabind::object' > using adl::object; > ^ > /home/tomaszmi/luabind/detail/format_signature.hpp:18:7: note: > candidate found by name lookup is 'luabind::object' > class object; > ^ > In file included from /home/tomaszmi/src/stack_content_by_name.cpp:27: > In file included from /home/tomaszmi/luabind/luabind.hpp:28: > In file included from /home/tomaszmi/luabind/class.hpp:94: > In file included from /home/tomaszmi/luabind/function.hpp:8: > /home/tomaszmi/luabind/make_function.hpp:115:8: error: incomplete > result type 'luabind::object' in function definition > object make_function(lua_State* L, F f) > ^ > /home/tomaszmi/luabind/detail/format_signature.hpp:18:7: note: forward > declaration of 'luabind::object' > class object; > ^ > In file included from /home/tomaszmi/src/stack_content_by_name.cpp:27: > In file included from /home/tomaszmi/luabind/luabind.hpp:28: > In file included from /home/tomaszmi/luabind/class.hpp:94: > In file included from /home/tomaszmi/luabind/function.hpp:10: > /home/tomaszmi/luabind/detail/call_function.hpp:224:26: error: > reference to 'object' is ambiguous > friend class luabind::object; > ^ > /home/tomaszmi/luabind/object.hpp:826:12: note: candidate found by > name lookup is 'luabind::object' > using adl::object; > ^ > /home/tomaszmi/luabind/detail/format_signature.hpp:18:7: note: > candidate found by name lookup is 'luabind::object' > class object; > ^ > In file included from /home/tomaszmi/src/stack_content_by_name.cpp:27: > In file included from /home/tomaszmi/luabind/luabind.hpp:28: > In file included from /home/tomaszmi/luabind/class.hpp:94: > In file included from /home/tomaszmi/luabind/function.hpp:10: > In file included from /home/tomaszmi/luabind/detail/call_function.hpp:320: > In file included from > /home/tomaszmi/boost/preprocessor/iteration/detail/iter/forward1.hpp:47: > /home/tomaszmi/luabind/detail/call_function.hpp:361:25: error: > reference to 'object' is ambiguous > call_function(luabind::object const& obj > BOOST_PP_COMMA_IF(BOOST_PP_ITERATION()) > BOOST_PP_ENUM(BOOST_PP_ITERATION(), LUABIND_OPERATOR_PARAMS, _) ) > ^ > /home/tomaszmi/luabind/object.hpp:826:12: note: candidate found by > name lookup is 'luabind::object' > using adl::object; > ^ > /home/tomaszmi/luabind/detail/format_signature.hpp:18:7: note: > candidate found by name lookup is 'luabind::object' > class object; > ^ > In file included from /home/tomaszmi/src/stack_content_by_name.cpp:27: > In file included from /home/tomaszmi/luabind/luabind.hpp:28: > In file included from /home/tomaszmi/luabind/class.hpp:94: > In file included from /home/tomaszmi/luabind/function.hpp:10: > In file included from /home/tomaszmi/luabind/detail/call_function.hpp:320: > In file included from > /home/tomaszmi/boost/preprocessor/iteration/detail/iter/forward1.hpp:47: > /home/tomaszmi/luabind/detail/call_function.hpp:373:6: error: member > access into incomplete type 'const luabind::object' > obj.push(obj.interpreter()); > ^ > /home/tomaszmi/luabind/detail/format_signature.hpp:18:7: note: forward > declaration of 'luabind::object' > class object; > ^ > In file included from /home/tomaszmi/src/stack_content_by_name.cpp:27: > In file included from /home/tomaszmi/luabind/luabind.hpp:28: > In file included from /home/tomaszmi/luabind/class.hpp:94: > In file included from /home/tomaszmi/luabind/function.hpp:10: > In file included from /home/tomaszmi/luabind/detail/call_function.hpp:320: > In file included from > /home/tomaszmi/boost/preprocessor/iteration/detail/iter/forward1.hpp:47: > /home/tomaszmi/luabind/detail/call_function.hpp:374:24: error: member > access into incomplete type 'const luabind::object' > return proxy_type(obj.interpreter(), 1, &detail::pcall, > args); > ^ > /home/tomaszmi/luabind/detail/format_signature.hpp:18:7: note: forward > declaration of 'luabind::object' > class object; > ^ > In file included from /home/tomaszmi/src/stack_content_by_name.cpp:27: > In file included from /home/tomaszmi/luabind/luabind.hpp:28: > In file included from /home/tomaszmi/luabind/class.hpp:94: > In file included from /home/tomaszmi/luabind/function.hpp:10: > In file included from /home/tomaszmi/luabind/detail/call_function.hpp:320: > In file included from > /home/tomaszmi/boost/preprocessor/iteration/detail/iter/forward1.hpp:47: > /home/tomaszmi/luabind/detail/call_function.hpp:404:27: error: > reference to 'object' is ambiguous > resume_function(luabind::object const& obj > BOOST_PP_COMMA_IF(BOOST_PP_ITERATION()) > BOOST_PP_ENUM(BOOST_PP_ITERATION(), LUABIND_OPERATOR_PARAMS, _) ) > ^ > /home/tomaszmi/luabind/object.hpp:826:12: note: candidate found by > name lookup is 'luabind::object' > using adl::object; > ^ > /home/tomaszmi/luabind/detail/format_signature.hpp:18:7: note: > candidate found by name lookup is 'luabind::object' > class object; > ^ > In file included from /home/tomaszmi/src/stack_content_by_name.cpp:27: > In file included from /home/tomaszmi/luabind/luabind.hpp:28: > In file included from /home/tomaszmi/luabind/class.hpp:94: > In file included from /home/tomaszmi/luabind/function.hpp:10: > In file included from /home/tomaszmi/luabind/detail/call_function.hpp:320: > In file included from > /home/tomaszmi/boost/preprocessor/iteration/detail/iter/forward1.hpp:47: > /home/tomaszmi/luabind/detail/call_function.hpp:416:6: error: member > access into incomplete type 'const luabind::object' > obj.push(obj.interpreter()); > ^ > /home/tomaszmi/luabind/detail/format_signature.hpp:18:7: note: forward > declaration of 'luabind::object' > class object; > ^ > In file included from /home/tomaszmi/src/stack_content_by_name.cpp:27: > In file included from /home/tomaszmi/luabind/luabind.hpp:28: > In file included from /home/tomaszmi/luabind/class.hpp:94: > In file included from /home/tomaszmi/luabind/function.hpp:10: > In file included from /home/tomaszmi/luabind/detail/call_function.hpp:320: > In file included from > /home/tomaszmi/boost/preprocessor/iteration/detail/iter/forward1.hpp:47: > /home/tomaszmi/luabind/detail/call_function.hpp:417:24: error: member > access into incomplete type 'const luabind::object' > return proxy_type(obj.interpreter(), 1, > &detail::resume_impl, args); > ^ > /home/tomaszmi/luabind/detail/format_signature.hpp:18:7: note: forward > declaration of 'luabind::object' > class object; > ^ > fatal error: too many errors emitted, stopping now [-ferror-limit=] > 20 errors generated. > }}} > > > The object, argument and table<> classes are declared in the > luabind::adl namespace, so the forward declarations should follow > that: > > namespace luabind { namespace adl { > > class object; > class argument; > template <class Base> > struct table; > > } // namespace adl > > using adl::object; > using adl::argument; > using adl::table; > > } // namespace luabind > > See the attached format_signature.hpp file containing the fix. > > Regards, > Tomek > > > ------------------------------------------------------------------------------ > Master Visual Studio, SharePoint, SQL, ASP.NET, C# 2012, HTML5, CSS, > MVC, Windows 8 Apps, JavaScript and much more. Keep your skills current > with LearnDevNow - 3,200 step-by-step video tutorials by Microsoft > MVPs and experts. SALE $99.99 this month only -- learn more at: > http://p.sf.net/sfu/learnmore_122412 > _______________________________________________ > luabind-user mailing list > [email protected] > https://lists.sourceforge.net/lists/listinfo/luabind-user > > -- Ryan Pavlik HCI Graduate Student Virtual Reality Applications Center Iowa State University [email protected] http://academic.cleardefinition.com ------------------------------------------------------------------------------ Master Visual Studio, SharePoint, SQL, ASP.NET, C# 2012, HTML5, CSS, MVC, Windows 8 Apps, JavaScript and much more. Keep your skills current with LearnDevNow - 3,200 step-by-step video tutorials by Microsoft MVPs and experts. ON SALE this month only -- learn more at: http://p.sf.net/sfu/learnmore_122712 _______________________________________________ luabind-user mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/luabind-user