Учитывая класс
class Foo {
public:
std::shared_ptr<const Bar> quux(const std::string&, std::uint32_t);
}
Я могу объявить std::function
с тем же интерфейсом:
std::function<std::shared_ptr<const Bar>(const std::string&, std::uint32_t)> baz = ...
Существует ли способ сжатия этого объявления таким образом, чтобы аргументы шаблона к std::function
были получены из объявления этого метода, что-то вроде:
std::function<functype(X::quux)> baz = ...
где functype
- мнимый оператор C ++, аналогичный decltype
. Есть ли способ сделать это / есть ли у c ++ такая возможность?
Я вижу, что метод на самом деле имеет немного другую подпись, так как он также принимает ссылку / указатель на объект this
; для меня было бы хорошо получить такую подпись.