LINUX.ORG.RU

История изменений

Исправление pavlick, (текущая версия) :

Да он в тысячу раз лучше твоего, ты используешь function, я нет (лишь в компайлтайме). Почему-то вариант со статик ассертом не работает в таком виде

static_assert(..., function<void(T)>>, ...);

со следующим пояснением:

note: the expression ‘is_same_v<_Tp, _Up> [with _Tp = std::function<void()>; _Up = std::function<void()>]’ evaluated to ‘false’

Баг? По-моему да.
UPD: туплю там же типы разные. Ты сформулируй задачу конкретно: тебе нужна функция, которая принимает функтор с 1 аргументом лбого типа и возвращает void, я так понимаю. Сейчас накостылю.

Исправление pavlick, :

Да он в тысячу раз лучше твоего, ты используешь function, я нет (лишь в компайлтайме). Почему-то вариант со статик ассертом не работает в таком виде

~~static_assert(..., function<void(T)>>, ...);~~

со следующим пояснением:

note: the expression ‘is_same_v<_Tp, _Up> [with _Tp = std::function<void()>; _Up = std::function<void()>]’ evaluated to ‘false’

Баг? По-моему да.
UPD: туплю там же типы разные. Ты сформулируй задачу конкретно: тебе нужна функция, которая принимает функтор с 1 аргументом лбого типа и возвращает void, я так понимаю. Сейчас накостылю.

Исходная версия pavlick, :

Да он в тысячу раз лучше твоего, ты используешь function, я нет (лишь в компайлтайме). Почему-то вариант со статик ассертом не работает в таком виде

static_assert(..., function<void(T)>>, ...);

со следующим пояснением:

note: the expression ‘is_same_v<_Tp, _Up> [with _Tp = std::function<void()>; _Up = std::function<void()>]’ evaluated to ‘false’

Баг? По-моему да.