to pass variables by reference you should use boost::ref:
t.create_thread( boost::bind(&task4_5::solution::solve,this, boost::ref( data[i] ) ) );