0
ответов

Исключение конструкторов std :: pair, которые используют явное построение

из этого ответа кажется, что эти конструкторы: template pair (pair && p); template pair (const pair & p); ...
вопрос задан: 23 May 2017 10:34
0
ответов

Почему трюк с SFINAE не работает для неклассового типа при попытке использовать указатель на член класса?

Из любопытства я пробовал альтернативную реализацию конструкции is_class с использованием sizeof () уловка. Ниже приведен код: template struct is_class {typedef char (& yes) [...
вопрос задан: 23 May 2017 10:33
0
ответов

SFINAE при попытке использовать bool дает ошибку компилятора: «аргумент шаблона 'T :: value' включает параметр шаблона» [дубликат]

Я попытался реализовать SFINAE с помощью bool (в отличие от популярного трюка void_): template struct Resolve {static const bool value = false; }; template <...
вопрос задан: 23 May 2017 10:31
0
ответов

boost::enable_if_c, похоже, не работает [дубликат]

Возможный дубликат: как использовать enable_if для включения функций-членов на основе параметра шаблона класса У меня есть шаблон класса : template class Vector Я хочу...
вопрос задан: 23 May 2017 10:08
0
ответов

Как написать наилучшую возможную характеристику is_callable для шаблонного оператора ()

У меня есть типаж is_callable, определенный следующим образом: #ifndef IS_CALLABLE_HPP #define IS_CALLABLE_HPP #include пространство имен is_callable_detail {struct no {}; struct yes {no x [2]; ...
вопрос задан: 16 March 2017 16:36
0
ответов

Как проверить, является ли параметр шаблона типом итератора?

template struct is_iterator {static const bool value = ??? // Что написать ??? }; int main () {assert (false == is_iterator :: value); assert (true == is_iterator & ...
вопрос задан: 14 July 2015 14:30
0
ответов

SFINAE различие между знаками и беззнаками

У меня есть функции для преобразования различные арифметические типы в тип с плавающей запятой половинной точности (просто uint16_t на самом низком уровне), и у меня есть разные функции для целых и плавающих запятой ...
вопрос задан: 20 November 2014 06:23
0
ответов

Как использовать enable_if для включения функций-членов на основе параметра шаблона класса

В коде: template struct is_builtin {перечисление {значение = 0}; }; шаблон <> struct is_builtin {перечисление {значение = 1}; }; шаблон <> struct is_builtin
вопрос задан: 2 May 2013 08:56
0
ответов

Может ли SFINAE обнаруживать нарушения частного доступа?

Интересно, если я проверяю, является ли какой-то член класса частным, что ответит sfinae? Будет ли он сильно ошибаться, или он скажет ОК, или он будет ошибкой в ​​sfinae?
вопрос задан: 18 February 2013 15:01
0
ответов

Когда использовать `static _assert `вместо SFINAE?

Я использовал (и видел использование )статического _утверждения для отметки нежелательных значений значений параметров шаблона. Однако во всех случаях, с которыми я сталкивался, кажется, что лучше и элегантнее отключать нежелательные...
вопрос задан: 5 October 2012 20:31
0
ответов

Как использовать enable_if для взаимоисключающих шаблонов функций, не являющихся членами?

Я пытаюсь написать шаблоны функций-операторов, не являющихся членами, например: #include template < typename T, unsigned L > класс MyType; template < typename T, typename U, unsigned L &...
вопрос задан: 5 October 2012 18:41
0
ответов

Как определить, является ли тип вызываемым только с константными ссылками?

Я хочу написать метафункцию C ++ is_callable , которая определяет значение как истинное, тогда и только тогда, когда тип F имеет оператор вызова функции формы SomeReturnType operator () (const Arg & ...
вопрос задан: 5 October 2012 18:13
0
ответов

Является ли сбой подстановки ошибкой с зависимыми параметрами нетипового шаблона?

Допустим, у меня есть следующие псевдонимы шаблонов: enum class enabler {}; шаблон <имя типа T> использование EnableIf = typename std::enable_if::type; шаблон <имя типа T> using ...
вопрос задан: 5 October 2012 17:48
0
ответов

Использование SFINAE дает разные результаты на GCC и Clang

Я учусь использовать SFINAE в своих интересах. Я пытаюсь использовать его для выбора реализации функции на основе существования функции сериализации ()в объекте. Это код, который я использую для...
вопрос задан: 19 July 2012 18:13
0
ответов

SFINAE :Компилятор не выбирает специализированный класс шаблона

У меня проблема SFINAE :В следующем коде я хочу, чтобы компилятор C++ выбрал специализированный функтор и напечатал «специальный», но вместо этого напечатал «общий». #включить #включить &...
вопрос задан: 8 July 2012 17:58
0
ответов

Проблема с тестом существования функции-члена SFINAE

У меня есть эта функция-член test :template struct has _member { template static true _type f (decltype (declval ().member())*); шаблон <...
вопрос задан: 30 June 2012 10:43
0
ответов

Как определить существование класса с помощью SFINAE?

Можно ли определить, существует ли класс в C++, используя SFINAE? Если можно то как? Предположим, у нас есть класс, который предоставляется только некоторыми версиями библиотеки. Я хотел бы знать, возможно ли это...
вопрос задан: 23 May 2012 00:50
0
ответов

Как проверить во время компиляции, что выражение является недопустимым?

У меня есть проблема в моем приложении, где я хотел бы утверждать, что приложение-функция будет отклонено компилятором. Есть ли способ проверить это с помощью SFINAE? Например, предположим, что я хотел бы...
вопрос задан: 5 May 2012 18:34
0
ответов

Выполняется ли подстановка для пакета параметров с переменным числом параметров, если пакет пуст?

Рассмотрим следующую программу:#include enum class dummy {}; шаблон <имя типа T> использование EnableIf = typename std ::enable _if ::type; template <...
вопрос задан: 30 April 2012 00:31
0
ответов

SFINAE -Попытка определить, имеет ли тип шаблона функцию-член с помощью & #39;variable& #39; возвращаемый тип

Проблемы с SFINAE. Мне нужно иметь возможность определить, имеет ли Type оператор функции-члена ->, определенный независимо от его возвращаемого типа. Пример следует. Этот класс в тестере. Это определяет...
вопрос задан: 26 April 2012 21:28
0
ответов

Почему не& #39; не повышает ::включение _, если вызывает дублирующую ошибку компиляции перегруженного метода

У меня есть код для включения _, если он работает, и он позволяет мне делать некоторые классная вещь, но я думал, что это вызовет ошибку, так как мои два метода, показанные ниже, имеют одинаковую сигнатуру метода. Любой...
вопрос задан: 24 April 2012 13:50
0
ответов

Почему SFINAE сбивается при смене места специализации шаблона класса? Является ли это ошибкой C++?

Следующий код выдает ожидаемую ошибку компилятора (Демонстрация): 1 template struct Range; 2 3 template > struct Unique; 4 template<...
вопрос задан: 6 March 2012 10:42
0
ответов

Почему следующий код компилируется, даже если у меня есть неопределенные функции-члены?

Я был на полпути к работе над этим фрагментом кода и подумал, что он, очевидно, не будет компилироваться, прежде чем нажать кнопку сборки. Я был удивлен, что он не только скомпилировался, но и скомпилировал и работал ...
вопрос задан: 27 February 2012 21:25
0
ответов

перегрузка шаблонов и работа SFINAE только с функциями, но не с классами

может кто-нибудь объяснить, почему компилятор принимает только этот шаблон кода : : type = 0> void a_function () {} template <...
вопрос задан: 31 January 2012 12:46
0
ответов

SFINAE, чтобы протестировать бесплатную функцию из другого пространства имен

Я пытался придумать хак, чтобы проверить, является ли std :: isnan определены без специальных компиляторов корпуса в препроцессоре и придумали следующее, которое, как я ожидал, будет работать нормально. #include ...
вопрос задан: 6 January 2012 10:57
0
ответов

boost :: enable_if не в сигнатуре функции

Это просто вопрос стиля: мне не нравится способ C ++ для метапрограммирования шаблонов, который требует от вас использования тип возврата или добавьте дополнительный фиктивный аргумент для трюков с SFINAE. Итак, ...
вопрос задан: 5 January 2012 22:30
0
ответов

Путаница при инстанцировании шаблонов

Вот мой код для проверки того, есть ли у класса функция-член begin или нет : template struct has_begin { struct dummy {typedef void const_iterator;}; typedef typename std::...
вопрос задан: 2 January 2012 18:51
0
ответов

Обнаружение поддержки оператора с помощью decltype / SFINAE

(Несколько) устаревшая статья исследует способы использования decltype вместе с SFINAE для определения, поддерживает ли тип определенные операторы, такие как == или <. Вот пример кода, чтобы определить, поддерживает ли класс ...
вопрос задан: 19 December 2011 02:27
0
ответов

Проверка, является ли аргумент шаблона ссылкой [C ++ 03]

Я хочу проверить, имеет ли аргумент шаблона значение ссылочный тип или нет в C ++ 03. (У нас уже есть is_reference в C ++ 11 и Boost). Я использовал SFINAE и тот факт, что у нас не может быть указателя на ...
вопрос задан: 13 December 2011 09:05
0
ответов

Определение возможности наследования типа в C ++

У меня есть следующий класс шаблона и (глобальная) переменная его типа: шаблон <имя типа ClassT> struct ClassTester: общедоступный ClassT {typedef ClassT type; }; ClassTester * aaa; ...
вопрос задан: 6 December 2011 09:43