More C++ Idioms/Enable if
Jump to navigation
Jump to search
This page or section is an undeveloped draft or outline. You can help to develop the work, or you can ask for assistance in the project room. |
Intent[edit | edit source]
Sometimes a member function of a class template (possibly one of an overloaded set) only makes sense for certain template parameters. The enable_if idiom uses SFINAE to eliminate unwanted functions before overload resolution.
Also Known As[edit | edit source]
Motivation[edit | edit source]
Solution and Sample Code[edit | edit source]
Known Uses[edit | edit source]
One use of enable_if is in implementing requirements such as that on the (size_type, value_type) constructor of a standard container, which has special behavior if the value_type is an integral type. More primitive solutions exist, but enable_if is elegant in this context.
Related Idioms[edit | edit source]
SFINAE, metafunctions.