use boost::phoenix v3 style declaring return types