шаблон не преобразуется к std::string а к std::__cxx11::basic_string

как сделать чтобы скомпилировался ?

template <typename T>
void func(const std::string& obj, const std::string& path,
          const std::string& iface, const std::string& property, T state)
{
    sdbusplus::asio::setProperty<T>(*conn, obj, path, iface, property, state,
                                    [](const boost::system::error_code&) {});
}

int main()
{

    std::string state = "state";
    func<std::string>("obj", "path", "iface", "property", state);

    return 0;
}

Ошибка

error: no matching function for call to ‘setProperty<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >(std::__shared_ptr_access<sdbusplus::asio::connection, __gnu_cxx::_S_atomic, false, false>::element_type&, const string&, const string&, const string&, const string&, std::__cxx11::basic_string<char>&, func<std::__cxx11::basic_string<char> >::<lambda(const boost::system::error_code&)>)’
   24 |     sdbusplus::asio::setProperty<T>(*conn, obj, path, iface, property, state,
      |     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   25 |                                     [](const boost::system::error_code&) {});

Ответы (1 шт):