Czy C ++ 11 std :: function ogranicza liczbę argumentów, które może posiadać wskaźnik funkcji?

Korzystam z wersji beta Visual Studio 11 i jestem ciekaw, czy błąd kompilacji przechowuje obiekt std :: function w mojej klasie.

<code>typedef std::function<void (int, const char*, int, int, const char*)> MyCallback;
</code>

W mojej klasie mam,

<code>MyCallback m_callback;
</code>

To dobrze się kompiluje. Jeśli dodam jeszcze jeden argument do listy, nie powiedzie się.

<code>typedef std::function<void (int, const char*, int, int, const char*, int)> MyCallback;
</code>

Błąd:

<code>>c:\program files (x86)\microsoft visual studio 11.0\vc\include\functional(535): error C2027: use of undefined type 'std::_Get_function_impl<_Tx>'
1>          with
1>          [
1>              _Tx=void (int,const char *,int,int,const char *,int)
1>          ]
1>          f:\development\projects\applications\my.h(72) : see reference to class template instantiation 'std::function<_Fty>' being compiled
1>          with
1>          [
1>              _Fty=void (int,const char *,int,int,const char *,int)
1>          ]
1>c:\program files (x86)\microsoft visual studio 11.0\vc\include\functional(536): error C2504: 'type' : base class undefined
1>c:\program files (x86)\microsoft visual studio 11.0\vc\include\functional(539): error C2027: use of undefined type 'std::_Get_function_impl<_Tx>'
1>          with
1>          [
1>              _Tx=void (int,const char *,int,int,const char *,int)
1>          ]
1>c:\program files (x86)\microsoft visual studio 11.0\vc\include\functional(539): error C2146: syntax error : missing ';' before identifier '_Mybase'
1>c:\program files (x86)\microsoft visual studio 11.0\vc\include\functional(539): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
</code>

Jest to dynamicznie połączona biblioteka, która przygotowuje dane do przejścia do innej aplikacji. Z pewnością mogę przerobić format danych, aby mógł być przekazywany z mniejszą liczbą argumentów, ale zastanawiałem się, dlaczego widzę ten limit?

Powrót do wskaźnika funkcji w stylu c,

<code> typedef void (*MyCallback)(int, const char*, int, int, const char*, int);
</code>

wydaje się działać dobrze.

questionAnswers(1)

yourAnswerToTheQuestion