Описание тега enable-if

`std::enable_if` is a C++ metafunction template with parameters `bool B`, `class T = void`, defined in the Standard C++ header `type_traits`. If `B` is true then the instantiating class defines a public member type `type` equal to `T`; otherwise it does not.
2 ответа

Преобразовать функцию шаблона в общую лямбду

Я хотел бы передать шаблонные функции, как если бы они были общими лямбдами, однако это не работает. #include <iostream> #include <vector> #include <tuple> #include <string> #include <utility> // for_each with std::tupl…
19 июл '17 в 10:06
1 ответ

Создать кнопку печати с включением и отключением на основе значения ячейки Excel

Есть ли способ создать кнопку печати, которая будет отключена, и когда значение моей ячейки в A1 =1 будет увеличено, чтобы распечатать рабочий лист, а когда это будет сделано, оно снова отключится? Это кнопка ActiveX.
18 сен '18 в 13:49
1 ответ

Условная компиляция метода-члена void с использованием enable_if

, #include <iostream> #include <type_traits> using namespace std; template<typename T> struct MyClass{ void hello( void) { hello(std::is_same<T,bool>()); } void hello(std::true_type){ cout<<"hello only for bools"<&lt…
04 янв '17 в 22:03
6 ответов

Слабосвязанное неявное преобразование

Неявное преобразование может быть действительно полезным, когда типы семантически эквивалентны. Например, представьте две библиотеки, которые реализуют тип одинаково, но в разных пространствах имен. Или просто тип, который в основном идентичен, за и…
15 янв '11 в 20:37
1 ответ

Проблемы с enable_if SFINAE

У меня возникли необъяснимые проблемы с SFINAE в программе, которую я пишу, поэтому я свел ее к отдельному примеру программы: #include <type_traits> struct Base { }; struct Derived : public Base { }; template<typename T> struct From { };…
09 июл '12 в 02:45
1 ответ

Использование enable_if со структурной специализацией

Я пытаюсь определить шаблон, который будет указывать тип хранилища, заданный другим типом T. Я хотел бы использовать enable_if для перехвата всех арифметических типов. Ниже моя попытка этого, которая жалуется, что шаблон повторно объявлен с 2 параме…
08 мар '17 в 17:46
2 ответа

Нужна помощь, чтобы понять функцию шаблона со сложными параметрами typename

Я изучаю книгу Строуструпа "Программирование на C++, 4-е издание". И я стараюсь следовать его примеру по дизайну матрицы. Его матричный класс сильно зависит от шаблонов, и я изо всех сил стараюсь их выяснить. Вот один из вспомогательных классов для …
2 ответа

Шаблоны C++: условно включенная функция-член

Я создаю очень маленький проект C++, и я хотел бы создать простой векторный класс для своих собственных нужд. std::vector Шаблон класса не подойдет. Когда векторный класс состоит из charс (то есть vector<char>), Я бы хотел, чтобы его можно был…
29 окт '14 в 14:40
1 ответ

JSP-HTML кнопка включения-выключения условие

Я попробовал некоторый код, чтобы сделать кнопку отключения-включения по условию, но она, очевидно, не работает так, как я хочу: <form method="get" action="reg.jsp"> <% if ((String)session.getAttribute("dept") == "HR") { %> <th colspa…
20 май '16 в 06:17
3 ответа

C++ boost enable_if вопрос

Могу ли я упростить следующие утверждения? (возможно, используя boost::enable_if ) У меня есть простая структура класса - Base базовый класс, Derived1, Derived2 наследовать от Base, У меня есть следующий код: template <typename Y> struct trans…
26 сен '10 в 17:19
3 ответа

Проблема с enable_if и несколькими условиями

Я попытался реализовать функцию, которая преобразует универсальный тип в строку. Интегральные типы должны быть преобразованы с использованием std::to_string(), строки и символы с использованием std::string() и векторы, элемент за элементом, в строку…
08 янв '17 в 15:48
1 ответ

Определение конструктора класса шаблона с enable_if вне прототипа класса

Ранее был вопрос, связанный с моей проблемой, которая касалась класса шаблона, который использовал std::enable_if на метод, который объявлен в прототипе класса, но фактическая реализация выполняется снаружи. Источник: реализация функции с enable_if …
24 окт '18 в 09:03
1 ответ

Могу ли я определить шаблоны для разных наборов типов?

Мне нужно написать шаблонную функцию, которая ведет себя по-разному в зависимости от класса ее параметра: template<class ContainerType> bool myFunc(ContainerType in){ //do some stuff } template<class NotAContainerType> bool myFunc(NotACo…
3 ответа

Проверьте наличие глобального оператора << в C++

Здравствуйте, я хочу написать две реализации функции-члена to_string следующим образом: template &lt;typename T0&gt; class foo { public: std::string to_string(); public: T0 m_Value; }; template &lt;typename T0&gt; std::string foo&lt;T0&gt;::to_strin…
04 сен '13 в 05:41
2 ответа

Добавить / удалить элементы данных с параметрами шаблона?

Рассмотрим следующий код: template&lt;bool AddMembers&gt; class MyClass { public: void myFunction(); template&lt;class = typename std::enable_if&lt;AddMembers&gt;::type&gt; void addedFunction(); protected: double myVariable; /* SOMETHING */ addedVar…
24 авг '12 в 23:34
2 ответа

std::enable_if как единственный аргумент конструктора

Я довольно новичок в шаблонном метапрограммировании и прорабатывал некоторые концепции - однако, этот фрагмент кода, с которым я столкнулся, немного озадачил меня. template&lt;class TAG, typename... DATATYPES&gt; struct Message { Message (typename s…
24 фев '14 в 11:37
3 ответа

enable_if и конструктор с VS2012

Я пытаюсь условно включить шаблон конструктора. С полностью совместимым с C++11 компилятором я знаю, как это сделать, используя дополнительный аргумент шаблона по умолчанию. Однако мне нужно поддерживать VS2012, который имеет std::enable_if, но не п…
16 ноя '16 в 15:24
1 ответ

KnockoutJS: в зависимости от длины кнопки включения массива

В проекте, который мы делаем, мы создали папку "Входящие", где пользователи (среди прочего) могут выбирать элементы. Если пользователь выбирает элемент, кнопка должна быть включена - если ни один не выбран, кнопка должна быть отключена. Достаточно п…
25 июл '12 в 19:05
1 ответ

Как использовать BOOST_STATIC_ASSERT с условием ИЛИ

Например у меня BOOST_STATIC_ASSERT( boost::has_range_iterator&lt;T&gt;::value, ); но у меня есть другие типы, которые находятся в диапазоне, что я могу обнаружить с is_foo_type:: значение Как мне объединить два в качестве дизъюнкции? то есть в psue…
22 авг '18 в 07:27
2 ответа

Неправильная реализация функции шаблона C++

Я реализовал эту функцию здесь (в одном заголовочном файле). //header.h #include &lt;cstdio&gt; #include &lt;cstdlib&gt; #include &lt;cmath&gt; #include &lt;iostream&gt; #include &lt;stdint.h&gt; #include &lt;type_traits&gt; template &lt; typename T…
23 сен '15 в 12:51