170 похожих чатов

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

класса. Хочу проверить с помощью static_assert (используя std::is_same или любой другой способ) , что эта функция член имеет один аргумент и это std::atomic_bool. Как это сделать? Приложу микрофрагмент кода, что бы яснее было

template<class T>
void executor(T foo)
{
static_assert(...., "foo must be a member function with std::atomic<bool> argument");

}

a.executor(&A::param);

12 ответов

15 просмотров

концепты вам доступны?

Animal- Автор вопроса
Anatoly Shirokov
концепты вам доступны?

к сожалению, нет, ограничен с++14

Animal
к сожалению, нет, ограничен с++14

Надо написать простой тайп-трейт И лучше сделать сфинае, а не статик ассерт

Animal
к сожалению, нет, ограничен с++14

Можно спереть способ, как у Эрика Ниблера были сделаны концепты на c++14

выразите это требование напрямую: template<typename T, typename U> void foo(T (U::*member)(std::atomic<bool>)) { } struct boo { void f(std::atomic<bool>) {}; }; int main() { boo b; foo(&boo::f); }

Animal- Автор вопроса
Anatoly Shirokov
выразите это требование напрямую: template<typenam...

идеально, большое спасибо! Только не могу понять, для чего нужен шаблонный параметр T ? не встречал таких конструкций в аргументах функции раньше

Animal
идеально, большое спасибо! Только не могу понять,...

это тип возвращаемый вашей функцией-членом, он так же будет выведен вместе с типом самого класса U

Animal
идеально, большое спасибо! Только не могу понять,...

если у вашей функции-члена фиксированный тип возврата, то можете убрать T и вместо него указать конкретный тип результата void или что там у вас

А зачем, вот вопрос!

Похожие вопросы

Обсуждают сегодня

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Гайс, вопрос для разносторонее развитых: читаю стрим с юарта, нада выделять с него фреймы с определенной структурой, если ли чо готовое, или долбаться с ринг буффером? нада у...
Vitaly
9
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
длина пакета фиксированная, или меняется?
Okhsunrog
7
Карта сайта