C++ Logo


Advanced search

Subject: static_error proposal?
From: Aarón Bueno Villares (abv150ci_at_[hidden])
Date: 2019-09-13 13:52:57

Would it be worthy to add a thing like that to C++?

inline constexpr bool static_error() { return false; }

It would allow to have a explicitly named tool to force compilations errors
within partial specializations or function overloads that should never be
instantiated by the user. Example:

template<class T>
struct something;

template<class T>
struct something<some_invalid_type_dependant_on_T>
    static_assert(static_error<T>(), "You shall not used that type on this."
                                                       " Use bla bla

That way you force that specialization to only generate a compiler error
when it is instantiated and has passed any sfinae filter since
`static_error` depends on a template parameter. Although the best approach
would be in my opinion to use "keyword" `static_error` instead of
`static_assert` for situations where you always when the specialization to

I won't be surprised if there's some proposal over there similar to this

Best regards,

STD-DISCUSSION list run by herb.sutter at gmail.com

Older Archives on Google Groups