too many parameter to bind ... so what's the solution for ?

classic Classic list List threaded Threaded
7 messages Options
Reply | Threaded
Open this post in threaded view
|

too many parameter to bind ... so what's the solution for ?

Aurélien MAIGNAN
Hi,
i have this problem too :
if i try to bind this function :
void addTransf2(mstring name, const double& px, const double& py, const double& pz,
                                 const double& vx, const double& vy, const double& vz,
                                 const double& ax);
(using .def(....))
Compilation works !

bt if i try this function either :
void addTransf2(mstring name, const double& px, const double& py, const double& pz,
                                 const double& vx, const double& vy, const double& vz,
                                 const double& ax, int a);
Compilation doesn't work, and complains with this kind of error :

error C2784: 'int luabind::detail::match(R (__cdecl *)(A0,A1,A2,A3,A4,A5,A6,A7,A8,A9),lua_State *,WrappedClass *,const Policies *)' : could not deduce template argument for 'R (__cdecl *)(A0,A1,A2,A3,A4,A5,A6,A7,A8,A9)' from 'void (__thiscall ScriptingApp::* const )(mstring,const double &,const double &,const double &,const double &,const double &,const double &,const double &,int)'

Thanks for any help ;)

Auélien MAIGNAN

-------------------------------------------------------------------------
Check out the new SourceForge.net Marketplace.
It's the best place to buy or sell services for
just about anything Open Source.
http://sourceforge.net/services/buy/index.php
_______________________________________________
luabind-user mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/luabind-user
Reply | Threaded
Open this post in threaded view
|

Re: too many parameter to bind ... so what's the solution for ?

Arvid Norberg-2
Aurélien MAIGNAN wrote:

> bt if i try this function either :
> void addTransf2(mstring name, const double& px, const double& py,
> const double& pz,
>                                  const double& vx, const double& vy,
> const double& vz,
>                                  const double& ax, int a);
> Compilation doesn't work, and complains with this kind of error :
>
> error C2784: 'int luabind::detail::match(R (__cdecl
> *)(A0,A1,A2,A3,A4,A5,A6,A7,A8,A9),lua_State *,WrappedClass *,const
> Policies *)' : could not deduce template argument for 'R (__cdecl
> *)(A0,A1,A2,A3,A4,A5,A6,A7,A8,A9)' from 'void (__thiscall
> ScriptingApp::* const )(mstring,const double &,const double &,const
> double &,const double &,const double &,const double &,const double &,int)'

You can configure this by defining LUABIND_MAX_ARITY (see manual in case
I misremembered that name) to a larger number. The trade-off is larger
number results in longer compilation times.

--
Arvid Norberg

-------------------------------------------------------------------------
Check out the new SourceForge.net Marketplace.
It's the best place to buy or sell services for
just about anything Open Source.
http://sourceforge.net/services/buy/index.php
_______________________________________________
luabind-user mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/luabind-user
Reply | Threaded
Open this post in threaded view
|

Re: too many parameter to bind ... so what's the solution for ?

Aurélien MAIGNAN
Hi,
In fact i found this other thread that exactly describe the same problem :
http://www.nabble.com/Increasing-MAX_ARITY-above-10-to8726582.html#a8726582
For the intel,
It is said that increasing LUABIND_MAX_ARITY don't resolve this issue and you have to increase the boost MAX_ARITY one too.

I wonder if, like LUABIND_MAX_ARITY, boost MAX_ARITY is "build free"
(see  http://www.rasterbar.com/products/luabind/docs.html#build-options  for the LUAbind one), Or does i need to change the boost MAX_ARITY somewhere in boost sources, and rebuild the lib ?
Thanks,
Aurélien MAIGNAN


2008/6/17 Arvid Norberg <[hidden email]>:
Aurélien MAIGNAN wrote:
> bt if i try this function either :
> void addTransf2(mstring name, const double& px, const double& py,
> const double& pz,
>                                  const double& vx, const double& vy,
> const double& vz,
>                                  const double& ax, int a);
> Compilation doesn't work, and complains with this kind of error :
>
> error C2784: 'int luabind::detail::match(R (__cdecl
> *)(A0,A1,A2,A3,A4,A5,A6,A7,A8,A9),lua_State *,WrappedClass *,const
> Policies *)' : could not deduce template argument for 'R (__cdecl
> *)(A0,A1,A2,A3,A4,A5,A6,A7,A8,A9)' from 'void (__thiscall
> ScriptingApp::* const )(mstring,const double &,const double &,const
> double &,const double &,const double &,const double &,const double &,int)'

You can configure this by defining LUABIND_MAX_ARITY (see manual in case
I misremembered that name) to a larger number. The trade-off is larger
number results in longer compilation times.

--
Arvid Norberg

-------------------------------------------------------------------------
Check out the new SourceForge.net Marketplace.
It's the best place to buy or sell services for
just about anything Open Source.
http://sourceforge.net/services/buy/index.php
_______________________________________________
luabind-user mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/luabind-user


-------------------------------------------------------------------------
Check out the new SourceForge.net Marketplace.
It's the best place to buy or sell services for
just about anything Open Source.
http://sourceforge.net/services/buy/index.php
_______________________________________________
luabind-user mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/luabind-user
Reply | Threaded
Open this post in threaded view
|

Re: too many parameter to bind ... so what's the solution for ?

Arvid Norberg-2
Aurélien MAIGNAN wrote:

> Hi,
> In fact i found this other thread that exactly describe the same problem :
> http://www.nabble.com/Increasing-MAX_ARITY-above-10-to8726582.html#a8726582
> For the intel,
> It is said that increasing LUABIND_MAX_ARITY don't resolve this issue
> and you have to increase the boost MAX_ARITY one too.
>
> I wonder if, like LUABIND_MAX_ARITY, boost MAX_ARITY is "build free"
> (see  
> http://www.rasterbar.com/products/luabind/docs.html#build-options  for
> the LUAbind one), Or does i need to change the boost MAX_ARITY
> somewhere in boost sources, and rebuild the lib ?
For both of those constants, you can put the define before including any
luabind headers (or boost bind headers). I would recommend to set it as
a project wide define though, to avoid any potential issues of having it
defined differently in different compilation units.

--
Arvid Norberg

-------------------------------------------------------------------------
Check out the new SourceForge.net Marketplace.
It's the best place to buy or sell services for
just about anything Open Source.
http://sourceforge.net/services/buy/index.php
_______________________________________________
luabind-user mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/luabind-user
Reply | Threaded
Open this post in threaded view
|

Re: too many parameter to bind ... so what's the solution for ?

Aurélien MAIGNAN
Hi,

I doesn't find a corresponding boost macro, tried BOOST_FUNCTION_MAX_ARGS but doesn't change anything.

I change my header like this :

#ifndef ScriptApp_H
#define ScriptApp_H

// Include the lua headers (the extern "C" is a requirement because we're
// using C++ and lua has been compiled as C code)

extern "C" {
  #include "lua.h"
  #include "lualib.h"
  #include "lauxlib.h"
}

// This is the only header we need to include for LuaBind to work
#include <luabind/luabind.hpp>
#include <luabind/operator.hpp>

#define LUABIND_MAX_ARITY 11

............
............


And i get the same error.

Trying this instead :

#ifndef ScriptApp_H
#define ScriptApp_H

// Include the lua headers (the extern "C" is a requirement because we're
// using C++ and lua has been compiled as C code)

extern "C" {
  #include "lua.h"
  #include "lualib.h"
  #include "lauxlib.h"
}

#define LUABIND_MAX_ARITY 11

// This is the only header we need to include for LuaBind to work
#include <luabind/luabind.hpp>
#include <luabind/operator.hpp>

and i get a new error :
F:\Silicon Worlds\LuaBind\References\luabind\include\luabind/detail/object_call.hpp(38) : error C2977: 'boost::tuples::tuple' : too many template arguments
       C:\Program Files\boost\boost_1_35_0\boost/tuple/detail/tuple_basic.hpp(524) : see declaration of 'boost::tuples::tuple'
       F:\Silicon Worlds\LuaBind\References\luabind\include\luabind/object.hpp(323) : see reference to class template instantiation 'luabind::adl::object_interface<T>' being compiled

and checking the C:\Program Files\boost\boost_1_35_0\boost/tuple/detail/tuple_basic.hpp
we can see :
template <class T0, class T1, class T2, class T3, class T4,
          class T5, class T6, class T7, class T8, class T9>

class tuple :
  public detail::map_tuple_to_cons<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9>::type
{
.......
}
maybe it is this implementation that limited the number of arguments, as write here :
http://www.boost.org/doc/libs/1_35_0/libs/bind/bind.html#NumberOfArguments

(btw if I had to redefine the macro, i should put them after their first definition, so after the include luabind / boost ?)

Note that, as I read in http://www.nabble.com/Increasing-MAX_ARITY-above-10-to8726582.html#a8726582,
i change the file C:\Program Files\boost\boost_1_35_0\boost\bind\placeholders.hpp
to this :
#ifndef BOOST_BIND_PLACEHOLDERS_HPP_INCLUDED
#define BOOST_BIND_PLACEHOLDERS_HPP_INCLUDED

// MS compatible compilers support #pragma once

#if defined(_MSC_VER) && (_MSC_VER >= 1020)
# pragma once
#endif

//
//  bind/placeholders.hpp - _N definitions
//
//  Copyright (c) 2002 Peter Dimov and Multi Media Ltd.
//
// Distributed under 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)
//
//  See http://www.boost.org/libs/bind/bind.html for documentation.
//

#include <boost/bind/arg.hpp>
#include <boost/config.hpp>

namespace
{

#if defined(__BORLANDC__) || defined(__GNUC__)

static inline boost::arg<1> _1() { return boost::arg<1>(); }
static inline boost::arg<2> _2() { return boost::arg<2>(); }
static inline boost::arg<3> _3() { return boost::arg<3>(); }
static inline boost::arg<4> _4() { return boost::arg<4>(); }
static inline boost::arg<5> _5() { return boost::arg<5>(); }
static inline boost::arg<6> _6() { return boost::arg<6>(); }
static inline boost::arg<7> _7() { return boost::arg<7>(); }
static inline boost::arg<8> _8() { return boost::arg<8>(); }
static inline boost::arg<9> _9() { return boost::arg<9>(); }
static inline boost::arg<10> _10() { return boost::arg<10>(); }
static inline boost::arg<11> _11() { return boost::arg<11>(); }
static inline boost::arg<12> _12() { return boost::arg<12>(); }
static inline boost::arg<13> _13() { return boost::arg<13>(); }
static inline boost::arg<14> _14() { return boost::arg<14>(); }
static inline boost::arg<15> _15() { return boost::arg<15>(); }

#elif defined(BOOST_MSVC) || (defined(__DECCXX_VER) && __DECCXX_VER <= 60590031) || defined(__MWERKS__)

static boost::arg<1> _1;
static boost::arg<2> _2;
static boost::arg<3> _3;
static boost::arg<4> _4;
static boost::arg<5> _5;
static boost::arg<6> _6;
static boost::arg<7> _7;
static boost::arg<8> _8;
static boost::arg<9> _9;
static boost::arg<10> _10;
static boost::arg<11> _11;
static boost::arg<12> _12;
static boost::arg<13> _13;
static boost::arg<14> _14;
static boost::arg<15> _15;

#else

boost::arg<1> _1;
boost::arg<2> _2;
boost::arg<3> _3;
boost::arg<4> _4;
boost::arg<5> _5;
boost::arg<6> _6;
boost::arg<7> _7;
boost::arg<8> _8;
boost::arg<9> _9;
boost::arg<10> _10;
boost::arg<11> _11;
boost::arg<12> _12;
boost::arg<13> _13;
boost::arg<14> _14;
boost::arg<15> _15;

#endif

} // unnamed namespace

#endif // #ifndef BOOST_BIND_PLACEHOLDERS_HPP_INCLUDED

But I don't know if it is what Pavel did too ...

Thanks,
Aurélien MAIGNAN

2008/6/18 Arvid Norberg <[hidden email]>:
Aurélien MAIGNAN wrote:
> Hi,
> In fact i found this other thread that exactly describe the same problem :
> http://www.nabble.com/Increasing-MAX_ARITY-above-10-to8726582.html#a8726582
> For the intel,
> It is said that increasing LUABIND_MAX_ARITY don't resolve this issue
> and you have to increase the boost MAX_ARITY one too.
>
> I wonder if, like LUABIND_MAX_ARITY, boost MAX_ARITY is "build free"
> (see
> http://www.rasterbar.com/products/luabind/docs.html#build-options  for
> the LUAbind one), Or does i need to change the boost MAX_ARITY
> somewhere in boost sources, and rebuild the lib ?
For both of those constants, you can put the define before including any
luabind headers (or boost bind headers). I would recommend to set it as
a project wide define though, to avoid any potential issues of having it
defined differently in different compilation units.

--
Arvid Norberg

-------------------------------------------------------------------------
Check out the new SourceForge.net Marketplace.
It's the best place to buy or sell services for
just about anything Open Source.
http://sourceforge.net/services/buy/index.php
_______________________________________________
luabind-user mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/luabind-user


-------------------------------------------------------------------------
Check out the new SourceForge.net Marketplace.
It's the best place to buy or sell services for
just about anything Open Source.
http://sourceforge.net/services/buy/index.php
_______________________________________________
luabind-user mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/luabind-user
Reply | Threaded
Open this post in threaded view
|

Re: too many parameter to bind ... so what's the solution for ?

Aurélien MAIGNAN
Hi,
Ok so i get some news :
In order to test the : #define LUABIND_MAX_ARITY 11
AFTER the include of luabind (that lead to the new error involving boost::tuples for a value of LUABIND_MAX_ARITY > 10 ),
I changed the C:\Program Files\boost\boost_1_35_0\boost/tuple/detail/tuple_basic.hpp file.
The changed was to make a new class T10 a a template parameter to these classes. (changed all methods signature and so on to comply with this new T10).
With that change, the project compile.
Ok good ... ??? NO that's not good in fact :
If I want to use more argument, and use #define LUABIND_MAX_ARITY 12  (or >12) I had to change the tuple_basic.hpp file to add new classes T11, T12, T13 ..... as much as i need them, and finally rewrite the tuple_basic.hpp that come with Boost.
So like i said that's not good : there no way the (good) solution is to rewrite the library !

So my question nos if there is something more standard in boost to adress this issue rather than rewrite ona of its own file ?

Thanks,
Aurélien MAIGNAN

2008/6/18 Aurélien MAIGNAN <[hidden email]>:
Hi,

I doesn't find a corresponding boost macro, tried BOOST_FUNCTION_MAX_ARGS but doesn't change anything.

I change my header like this :

#ifndef ScriptApp_H
#define ScriptApp_H

// Include the lua headers (the extern "C" is a requirement because we're
// using C++ and lua has been compiled as C code)

extern "C" {
  #include "lua.h"
  #include "lualib.h"
  #include "lauxlib.h"
}

// This is the only header we need to include for LuaBind to work
#include <luabind/luabind.hpp>
#include <luabind/operator.hpp>

#define LUABIND_MAX_ARITY 11

............
............


And i get the same error.

Trying this instead :

#ifndef ScriptApp_H
#define ScriptApp_H

// Include the lua headers (the extern "C" is a requirement because we're
// using C++ and lua has been compiled as C code)

extern "C" {
  #include "lua.h"
  #include "lualib.h"
  #include "lauxlib.h"
}

#define LUABIND_MAX_ARITY 11

// This is the only header we need to include for LuaBind to work
#include <luabind/luabind.hpp>
#include <luabind/operator.hpp>

and i get a new error :
F:\Silicon Worlds\LuaBind\References\luabind\include\luabind/detail/object_call.hpp(38) : error C2977: 'boost::tuples::tuple' : too many template arguments
       C:\Program Files\boost\boost_1_35_0\boost/tuple/detail/tuple_basic.hpp(524) : see declaration of 'boost::tuples::tuple'
       F:\Silicon Worlds\LuaBind\References\luabind\include\luabind/object.hpp(323) : see reference to class template instantiation 'luabind::adl::object_interface<T>' being compiled

and checking the C:\Program Files\boost\boost_1_35_0\boost/tuple/detail/tuple_basic.hpp
we can see :
template <class T0, class T1, class T2, class T3, class T4,
          class T5, class T6, class T7, class T8, class T9>

class tuple :
  public detail::map_tuple_to_cons<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9>::type
{
.......
}
maybe it is this implementation that limited the number of arguments, as write here :
http://www.boost.org/doc/libs/1_35_0/libs/bind/bind.html#NumberOfArguments

(btw if I had to redefine the macro, i should put them after their first definition, so after the include luabind / boost ?)

Note that, as I read in http://www.nabble.com/Increasing-MAX_ARITY-above-10-to8726582.html#a8726582,
i change the file C:\Program Files\boost\boost_1_35_0\boost\bind\placeholders.hpp
to this :
#ifndef BOOST_BIND_PLACEHOLDERS_HPP_INCLUDED
#define BOOST_BIND_PLACEHOLDERS_HPP_INCLUDED

// MS compatible compilers support #pragma once

#if defined(_MSC_VER) && (_MSC_VER >= 1020)
# pragma once
#endif

//
//  bind/placeholders.hpp - _N definitions
//
//  Copyright (c) 2002 Peter Dimov and Multi Media Ltd.
//
// Distributed under 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)
//
//  See http://www.boost.org/libs/bind/bind.html for documentation.
//

#include <boost/bind/arg.hpp>
#include <boost/config.hpp>

namespace
{

#if defined(__BORLANDC__) || defined(__GNUC__)

static inline boost::arg<1> _1() { return boost::arg<1>(); }
static inline boost::arg<2> _2() { return boost::arg<2>(); }
static inline boost::arg<3> _3() { return boost::arg<3>(); }
static inline boost::arg<4> _4() { return boost::arg<4>(); }
static inline boost::arg<5> _5() { return boost::arg<5>(); }
static inline boost::arg<6> _6() { return boost::arg<6>(); }
static inline boost::arg<7> _7() { return boost::arg<7>(); }
static inline boost::arg<8> _8() { return boost::arg<8>(); }
static inline boost::arg<9> _9() { return boost::arg<9>(); }
static inline boost::arg<10> _10() { return boost::arg<10>(); }
static inline boost::arg<11> _11() { return boost::arg<11>(); }
static inline boost::arg<12> _12() { return boost::arg<12>(); }
static inline boost::arg<13> _13() { return boost::arg<13>(); }
static inline boost::arg<14> _14() { return boost::arg<14>(); }
static inline boost::arg<15> _15() { return boost::arg<15>(); }

#elif defined(BOOST_MSVC) || (defined(__DECCXX_VER) && __DECCXX_VER <= 60590031) || defined(__MWERKS__)

static boost::arg<1> _1;
static boost::arg<2> _2;
static boost::arg<3> _3;
static boost::arg<4> _4;
static boost::arg<5> _5;
static boost::arg<6> _6;
static boost::arg<7> _7;
static boost::arg<8> _8;
static boost::arg<9> _9;
static boost::arg<10> _10;
static boost::arg<11> _11;
static boost::arg<12> _12;
static boost::arg<13> _13;
static boost::arg<14> _14;
static boost::arg<15> _15;

#else

boost::arg<1> _1;
boost::arg<2> _2;
boost::arg<3> _3;
boost::arg<4> _4;
boost::arg<5> _5;
boost::arg<6> _6;
boost::arg<7> _7;
boost::arg<8> _8;
boost::arg<9> _9;
boost::arg<10> _10;
boost::arg<11> _11;
boost::arg<12> _12;
boost::arg<13> _13;
boost::arg<14> _14;
boost::arg<15> _15;

#endif

} // unnamed namespace

#endif // #ifndef BOOST_BIND_PLACEHOLDERS_HPP_INCLUDED

But I don't know if it is what Pavel did too ...

Thanks,
Aurélien MAIGNAN

2008/6/18 Arvid Norberg <[hidden email]>:

Aurélien MAIGNAN wrote:
> Hi,
> In fact i found this other thread that exactly describe the same problem :
> http://www.nabble.com/Increasing-MAX_ARITY-above-10-to8726582.html#a8726582
> For the intel,
> It is said that increasing LUABIND_MAX_ARITY don't resolve this issue
> and you have to increase the boost MAX_ARITY one too.
>
> I wonder if, like LUABIND_MAX_ARITY, boost MAX_ARITY is "build free"
> (see
> http://www.rasterbar.com/products/luabind/docs.html#build-options  for
> the LUAbind one), Or does i need to change the boost MAX_ARITY
> somewhere in boost sources, and rebuild the lib ?
For both of those constants, you can put the define before including any
luabind headers (or boost bind headers). I would recommend to set it as
a project wide define though, to avoid any potential issues of having it
defined differently in different compilation units.

--
Arvid Norberg

-------------------------------------------------------------------------
Check out the new SourceForge.net Marketplace.
It's the best place to buy or sell services for
just about anything Open Source.
http://sourceforge.net/services/buy/index.php
_______________________________________________
luabind-user mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/luabind-user



-------------------------------------------------------------------------
Check out the new SourceForge.net Marketplace.
It's the best place to buy or sell services for
just about anything Open Source.
http://sourceforge.net/services/buy/index.php
_______________________________________________
luabind-user mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/luabind-user
Reply | Threaded
Open this post in threaded view
|

Re: too many parameter to bind ... so what's the solution for ?

Aurélien MAIGNAN
ERRATUM :
I write  AFTER  but I meant BEFORE (;) )
Sorry

2008/6/18 Aurélien MAIGNAN <[hidden email]>:
Hi,
Ok so i get some news :
In order to test the : #define LUABIND_MAX_ARITY 11
AFTER the include of luabind (that lead to the new error involving boost::tuples for a value of LUABIND_MAX_ARITY > 10 ),
I changed the C:\Program Files\boost\boost_1_35_0\boost/tuple/detail/tuple_basic.hpp file.
The changed was to make a new class T10 a a template parameter to these classes. (changed all methods signature and so on to comply with this new T10).
With that change, the project compile.
Ok good ... ??? NO that's not good in fact :
If I want to use more argument, and use #define LUABIND_MAX_ARITY 12  (or >12) I had to change the tuple_basic.hpp file to add new classes T11, T12, T13 ..... as much as i need them, and finally rewrite the tuple_basic.hpp that come with Boost.
So like i said that's not good : there no way the (good) solution is to rewrite the library !

So my question nos if there is something more standard in boost to adress this issue rather than rewrite ona of its own file ?

Thanks,
Aurélien MAIGNAN

2008/6/18 Aurélien MAIGNAN <[hidden email]>:

Hi,

I doesn't find a corresponding boost macro, tried BOOST_FUNCTION_MAX_ARGS but doesn't change anything.

I change my header like this :

#ifndef ScriptApp_H
#define ScriptApp_H

// Include the lua headers (the extern "C" is a requirement because we're
// using C++ and lua has been compiled as C code)

extern "C" {
  #include "lua.h"
  #include "lualib.h"
  #include "lauxlib.h"
}

// This is the only header we need to include for LuaBind to work
#include <luabind/luabind.hpp>
#include <luabind/operator.hpp>

#define LUABIND_MAX_ARITY 11

............
............


And i get the same error.

Trying this instead :

#ifndef ScriptApp_H
#define ScriptApp_H

// Include the lua headers (the extern "C" is a requirement because we're
// using C++ and lua has been compiled as C code)

extern "C" {
  #include "lua.h"
  #include "lualib.h"
  #include "lauxlib.h"
}

#define LUABIND_MAX_ARITY 11

// This is the only header we need to include for LuaBind to work
#include <luabind/luabind.hpp>
#include <luabind/operator.hpp>

and i get a new error :
F:\Silicon Worlds\LuaBind\References\luabind\include\luabind/detail/object_call.hpp(38) : error C2977: 'boost::tuples::tuple' : too many template arguments
       C:\Program Files\boost\boost_1_35_0\boost/tuple/detail/tuple_basic.hpp(524) : see declaration of 'boost::tuples::tuple'
       F:\Silicon Worlds\LuaBind\References\luabind\include\luabind/object.hpp(323) : see reference to class template instantiation 'luabind::adl::object_interface<T>' being compiled

and checking the C:\Program Files\boost\boost_1_35_0\boost/tuple/detail/tuple_basic.hpp
we can see :
template <class T0, class T1, class T2, class T3, class T4,
          class T5, class T6, class T7, class T8, class T9>

class tuple :
  public detail::map_tuple_to_cons<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9>::type
{
.......
}
maybe it is this implementation that limited the number of arguments, as write here :
http://www.boost.org/doc/libs/1_35_0/libs/bind/bind.html#NumberOfArguments

(btw if I had to redefine the macro, i should put them after their first definition, so after the include luabind / boost ?)

Note that, as I read in http://www.nabble.com/Increasing-MAX_ARITY-above-10-to8726582.html#a8726582,
i change the file C:\Program Files\boost\boost_1_35_0\boost\bind\placeholders.hpp
to this :
#ifndef BOOST_BIND_PLACEHOLDERS_HPP_INCLUDED
#define BOOST_BIND_PLACEHOLDERS_HPP_INCLUDED

// MS compatible compilers support #pragma once

#if defined(_MSC_VER) && (_MSC_VER >= 1020)
# pragma once
#endif

//
//  bind/placeholders.hpp - _N definitions
//
//  Copyright (c) 2002 Peter Dimov and Multi Media Ltd.
//
// Distributed under 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)
//
//  See http://www.boost.org/libs/bind/bind.html for documentation.
//

#include <boost/bind/arg.hpp>
#include <boost/config.hpp>

namespace
{

#if defined(__BORLANDC__) || defined(__GNUC__)

static inline boost::arg<1> _1() { return boost::arg<1>(); }
static inline boost::arg<2> _2() { return boost::arg<2>(); }
static inline boost::arg<3> _3() { return boost::arg<3>(); }
static inline boost::arg<4> _4() { return boost::arg<4>(); }
static inline boost::arg<5> _5() { return boost::arg<5>(); }
static inline boost::arg<6> _6() { return boost::arg<6>(); }
static inline boost::arg<7> _7() { return boost::arg<7>(); }
static inline boost::arg<8> _8() { return boost::arg<8>(); }
static inline boost::arg<9> _9() { return boost::arg<9>(); }
static inline boost::arg<10> _10() { return boost::arg<10>(); }
static inline boost::arg<11> _11() { return boost::arg<11>(); }
static inline boost::arg<12> _12() { return boost::arg<12>(); }
static inline boost::arg<13> _13() { return boost::arg<13>(); }
static inline boost::arg<14> _14() { return boost::arg<14>(); }
static inline boost::arg<15> _15() { return boost::arg<15>(); }

#elif defined(BOOST_MSVC) || (defined(__DECCXX_VER) && __DECCXX_VER <= 60590031) || defined(__MWERKS__)

static boost::arg<1> _1;
static boost::arg<2> _2;
static boost::arg<3> _3;
static boost::arg<4> _4;
static boost::arg<5> _5;
static boost::arg<6> _6;
static boost::arg<7> _7;
static boost::arg<8> _8;
static boost::arg<9> _9;
static boost::arg<10> _10;
static boost::arg<11> _11;
static boost::arg<12> _12;
static boost::arg<13> _13;
static boost::arg<14> _14;
static boost::arg<15> _15;

#else

boost::arg<1> _1;
boost::arg<2> _2;
boost::arg<3> _3;
boost::arg<4> _4;
boost::arg<5> _5;
boost::arg<6> _6;
boost::arg<7> _7;
boost::arg<8> _8;
boost::arg<9> _9;
boost::arg<10> _10;
boost::arg<11> _11;
boost::arg<12> _12;
boost::arg<13> _13;
boost::arg<14> _14;
boost::arg<15> _15;

#endif

} // unnamed namespace

#endif // #ifndef BOOST_BIND_PLACEHOLDERS_HPP_INCLUDED

But I don't know if it is what Pavel did too ...

Thanks,
Aurélien MAIGNAN

2008/6/18 Arvid Norberg <[hidden email]>:

Aurélien MAIGNAN wrote:
> Hi,
> In fact i found this other thread that exactly describe the same problem :
> http://www.nabble.com/Increasing-MAX_ARITY-above-10-to8726582.html#a8726582
> For the intel,
> It is said that increasing LUABIND_MAX_ARITY don't resolve this issue
> and you have to increase the boost MAX_ARITY one too.
>
> I wonder if, like LUABIND_MAX_ARITY, boost MAX_ARITY is "build free"
> (see
> http://www.rasterbar.com/products/luabind/docs.html#build-options  for
> the LUAbind one), Or does i need to change the boost MAX_ARITY
> somewhere in boost sources, and rebuild the lib ?
For both of those constants, you can put the define before including any
luabind headers (or boost bind headers). I would recommend to set it as
a project wide define though, to avoid any potential issues of having it
defined differently in different compilation units.

--
Arvid Norberg

-------------------------------------------------------------------------
Check out the new SourceForge.net Marketplace.
It's the best place to buy or sell services for
just about anything Open Source.
http://sourceforge.net/services/buy/index.php
_______________________________________________
luabind-user mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/luabind-user




-------------------------------------------------------------------------
Check out the new SourceForge.net Marketplace.
It's the best place to buy or sell services for
just about anything Open Source.
http://sourceforge.net/services/buy/index.php
_______________________________________________
luabind-user mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/luabind-user