Результаты поиска по запросу "sfinae"
boost :: enable_if отсутствует в сигнатуре функции
Это просто вопрос стиля: мне не нравится способ C ++ для метапрограммирования шаблонов, который требует, чтобы вы использовали возвращаемый тип или добавили дополнительный фиктивный аргумент для трюков с SFINAE. Итак, идея, которую я придумала, ...
Как работает этот шаблон класса has_member?
Я пытаюсь понять, как работает следующий шаблон класса (взят изВот [http://groups.google.com/group/comp.lang.c++.moderated/msg/e5fbc9305539f699?pli=1] ), но я не мог понять это правильно: template <typename Type> class has_member { class yes { ...
Проверьте, есть ли у класса элемент данных указателя
Есть ли способ проверить, есть ли в классе указатель на член данных? class Test { int* p; } template< typename T > foo( T bla ) { }Это не должно компилироваться. потому что Test имеет указатель на член данных. Test test; foo( test )Может быть, ...
C ++ SFINAE примеры?
Я хочу углубиться в шаблонное метапрограммирование. Я знаю, что SFINAE означает «ошибка замены не является ошибкой». Но может ли кто-нибудь показать мне хорошее применение SFINAE?
использование SFINAE для специализации класса шаблона
Предположим, у меня есть эти заявления template<typename T> class User; template<typename T> class Data;и хочу реализоватьUser<> заT = Data<some_type> и любой класс, полученный изData<some_type> но также учитывают другие специализации, ...
Выбор функции-члена с использованием различных условий enable_if
Я пытаюсь определить, какая версия функции-члена вызывается на основе параметра шаблона класса. Я попробовал это: #include <iostream> #include <type_traits> template<typename T> struct Point { void MyFunction(typename ...
шаблонные псевдонимы и сфины
В случае ошибки замещения, связанной с псевдонимом шаблона (например шаблон псевдонима для отсутствующего члена typename (как в фрагменте кода ниже), должна ли произойти ошибка? Clang и gcc, похоже, не согласны с этим: // some types struct bar ...
проверьте, существует ли член, используя 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 ...
Что делает 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 ...
Можно ли написать шаблон / макрос c ++, чтобы проверить, имеют ли две функции одинаковые подписи
Можно ли написать шаблон / макрос c ++, чтобы проверить, имеют ли две функции одинаковые подписи (тип возвращаемого значения и список аргументов)? Вот простой пример того, как я хочу его использовать: int foo(const std::string& s) {...} int ...