proper std::begin/end adl usage