This feature is considered light weight and doesn’t negatively impact code quality or run-time/compile-time performance. It is one of the first C++17 features adopted by compiler vendors, and has therefore been made available even on older tool-chains such as vc140. It is more of a cosmetic feature, since it helps improve readability in nested namespace scenarios.
The feature greatly simplifies compile-time branching that was only possible through overloading or specialization / SFINAE. It improves compile-time and readability. The feature is available on all platforms and compilers (VS2017.3)
The terse form of static_assert is useful when the evaluated expression contains enough information that an additional message feels redundant.
Supported by all compilers. (VS2017.0)
Example:
static_assert(std::is_default_constructible_v<T>) is equally readable than static_assert(std::is_default_constructible_v<T>, "Must be default constructible")
Taking parameters by auto type makes lambda on-par with template functions. It is a great improvements to callbacks and generic algorithms that would be otherwise unnecessarily verbose. It also enables designs such as generic visitor pattern which wasn't possible without the feature.