correct problems with std::initializer_list