stopped template operator() creating temporaries