clang prefers this