On Fri, Apr 12, 2013 at 2:37 PM, Yannick POTIN <yannp63@gmail.com> wrote:


template<class ...classes>
boost::function0<void> call_something(classes&... c)

Thank you, It actually allows me to use references in these functions.
I just tried and g++ is waiting for only references but I need to use pointers and/or values too.
There is a way to use mixed types in template variadic functions ?


For perfect forwarding use:

template<class... T>
void call(T&&... t)
{
   foo(std::forward<T>(t)...);
}

I tried this one too and it works fine thank you.

However, I use these functions with boost::bind library and actually references
are lost when I use it (and I need to). After some google searches, it seems that 
boost::bind officially does not support this use (due to internal references).
So I tried with std::bind because I read somewhere the problem was fixed with its C++11 version.
The problem is the same : with std::bind too, references are lost using std::forward.

Does anyone made this duo bind/template variadic functions working together ?
And if someone did, how did you do ?

Sorry, I lost context with what you're trying to do, but maybe you want to use boost::ref / std::ref in conjunction with boost::bind / std::bind, respectively? I think that should indicate to the binding framework to hold the bound values by reference rather than by value (if that's what you want).

- Jeff