Не имеет значения, что выполняет функция-член init
или нет. Это не влияет на то, является ли A типом POD или нет (в вашем примере это так).
POD - это старая вещь, которая устарела в C ++ 20, вы, вероятно, захотите проверить стандартное расположение.
Вы можете проверить это при написании кода
#include <type_traits>
static_assert(std::is_pod<A>::value, "");
static_assert(std::is_standard_layout<A>::value, "");
или C ++ 17 и выше
#include <type_traits>
static_assert(std::is_pod_v<A>);
static_assert(std::is_standard_layout_v<A>);