Карта сайта Kansoftware
НОВОСТИУСЛУГИРЕШЕНИЯКОНТАКТЫ
Разработка программного обеспечения

Boost.Hana: boost::hana::when< condition > Struct Template Reference

Boost , ,

Boost.Hana  1.0.1
Your standard library for metaprogramming
Включить частичную специализацию только в том случае, если условие булева верно.

Вы также можете взглянуть на<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)
#include <type_traits>
namespace hana = boost::hana;
template <typename T, typename = hana::when<true>>
struct base_template;
template <typename T>
struct base_template<T, hana::when<std::is_integral<T>::value>> {
// something useful...
};
int main() { }

Статья Boost.Hana: boost::hana::when< condition > Struct Template Reference раздела может быть полезна для разработчиков на c++ и boost.




Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.



:: Главная :: ::


реклама


©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007
Top.Mail.Ru

Время компиляции файла: 2024-08-30 11:47:00
2025-07-05 05:27:10/0.0031700134277344/0