Это говорит о том, что вы игнорируете тот факт, что указатель на функцию не генерирует.
В вашем коде есть другие ошибки, такие как создание указателя, который не очищается с помощью удаления.
В c ++ 14 или более поздней версии я использую
template<auto x> using kval_t=std::intergral_constant<std::decay_t<decltype(x)>,x>;
template<auto x> constexpr kval_t<x> kval={};
Тогда вы можете:
auto action =
std::unique_ptr< posix_spawn_file_actions_t, kval_t<posix_spawn_file_actions_destroy> > =
{ new posix_spawn_file_actions_t() };
но new
здесь, вероятно, неправильный способ создания posix_spawn_file_actions_t
.
Это сохраняет указатель функции в константе времени компиляции и может избавиться от этого предупреждения.