Включить частичную специализацию только в том случае, если условие булева верно.
Вы также можете взглянуть на<when_valid>, который обеспечивает аналогичную функциональность, но позволяет специализироваться только тогда, когда некоторые выражения хорошо сформированы.
Rationale for using when instead of std::enable_if
<when>используется для контроля приоритета частичных специализаций в более тонкой зернистой манере, чем то, что может быть достигнуто при обычной схеме<typename Enable = void>и<std::enable_if>. Например, частично специализированный метод отправки тегов будет иметь более высокий приоритет, чем эквивалентная специализация, которая использует<when>. Для более подробной информации см. раздел учебника потег-диспетчеризации.
Example
// Copyright Louis Dionne 2013-2016
// Distributed under the Boost Software License, Version 1.0.
// (See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
Статья Boost.Hana: boost::hana::when< condition > Struct Template Reference раздела может быть полезна для разработчиков на c++ и boost.
Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.