Здравствуйте, szag, Вы писали:
Во-первых, кажется, что typename в некоторых местах лишний, ну и "если гора не идет к Магомету, то Магомет идет к горе":
S>Есть вот такой код:
#include <boost/function_types/function_type.hpp>
#include <boost/function_types/parameter_types.hpp>
#include <boost/function_types/function_arity.hpp>
#include <boost/typeof/std/utility.hpp>
#include <vector>
template<class T>
struct foo : public T
{
typedef typename BOOST_TYPEOF(&T::f) f_type; // error C2039: 'f': is not a member of 'bar'
typedef typename boost::function_types::parameter_types<f_type> parameter_types;
typedef typename boost::mpl::at_c< parameter_types, 1>::type vec_type;
std::vector<vec_type> vec;
};
struct bar
{
void f (int i){}
};
int main()
{
foo<bar> b;
return 0;
}