#include #include using namespace boost ; struct Base { } ; struct Derived : public Base { } ; void someLibraryFunction ( int arg1 , double arg2 , std::string const& arg3 , reference_wrapper arg4 , Base const& arg5 , reference_wrapper arg6 ) { } struct Tester { Tester () { Derived derived ; std::string string ; reference_wrapper d = boost::ref(derived) ; reference_wrapper b = d ; Base & bb = d ; Base const& bbb = d ; someLibraryFunction ( 42 , 3.14 , "Hello, world" , boost::ref(string) , derived , boost::ref(derived) ) ; } } sTester ;