Результаты поиска по запросу "sfinae"

5 ответов

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

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

2 ответа

Как работает этот шаблон класса has_member?

Я пытаюсь понять, как работает следующий шаблон класса (взят изВот [http://groups.google.com/group/comp.lang.c++.moderated/msg/e5fbc9305539f699?pli=1] ), но я не мог понять это правильно: template <typename Type> class has_member { class yes { ...

2 ответа

Проверьте, есть ли у класса элемент данных указателя

Есть ли способ проверить, есть ли в классе указатель на член данных? class Test { int* p; } template< typename T > foo( T bla ) { }Это не должно компилироваться. потому что Test имеет указатель на член данных. Test test; foo( test )Может быть, ...

ТОП публикаций

7 ответов

C ++ SFINAE примеры?

Я хочу углубиться в шаблонное метапрограммирование. Я знаю, что SFINAE означает «ошибка замены не является ошибкой». Но может ли кто-нибудь показать мне хорошее применение SFINAE?

3 ответа

использование SFINAE для специализации класса шаблона

Предположим, у меня есть эти заявления template<typename T> class User; template<typename T> class Data;и хочу реализоватьUser<> заT = Data<some_type> и любой класс, полученный изData<some_type> но также учитывают другие специализации, ...

1 ответ

Выбор функции-члена с использованием различных условий enable_if

Я пытаюсь определить, какая версия функции-члена вызывается на основе параметра шаблона класса. Я попробовал это: #include <iostream> #include <type_traits> template<typename T> struct Point { void MyFunction(typename ...

1 ответ

шаблонные псевдонимы и сфины

В случае ошибки замещения, связанной с псевдонимом шаблона (например шаблон псевдонима для отсутствующего члена typename (как в фрагменте кода ниже), должна ли произойти ошибка? Clang и gcc, похоже, не согласны с этим: // some types struct bar ...

3 ответа

проверьте, существует ли член, используя enable_if

Вот что я пытаюсь сделать: template <typename T> struct Model { vector<T> vertices ; #if T has a .normal member void transform( Matrix m ) { each vertex in vertices { vertex.pos = m * vertex.pos ; vertex.normal = m * vertex.normal ; } } #endif ...

1 ответ

Что делает void () в auto f (params) -> decltype (…, void ()) '?

Я нашел кодВот [https://stackoverflow.com/a/9531274/1594090]это выглядело примерно так: auto f(T& t, size_t n) -> decltype(t.reserve(n), void()) { .. }Во всей прочитанной документации мне сказали, чтоdecltype подписано как: decltype( entity ...

3 ответа

Можно ли написать шаблон / макрос c ++, чтобы проверить, имеют ли две функции одинаковые подписи

Можно ли написать шаблон / макрос c ++, чтобы проверить, имеют ли две функции одинаковые подписи (тип возвращаемого значения и список аргументов)? Вот простой пример того, как я хочу его использовать: int foo(const std::string& s) {...} int ...