LINUX.ORG.RU

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

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

Каких костылей? Это божественная сущность введенная в c++11, у нее нет типа, и получить ее можно только конструкцией с тремя точками.

Таких костылей, как лямбда (настоящая или самописная). Хочется чтобы можно было сделать что-то вроде:

template <class T, class... Args>
    std::function<void(Args...)> bind_this_(void (T::*f)(Args&&... args))
    {
        return std::bind(f, this, std::forward<Args>(args)...);
    }

Ну так вывод шаблонных параметров только для функций работает. Поэтому нужно конструктор обернуть в функцию.

Этот трюк не прокатит, потому что переменные-члены класса с типом auto объявлять нельзя, а именно для этого всё это нужно)

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

Каких костылей? Это божественная сущность введенная в c++11, у нее нет типа, и получить ее можно только конструкцией с тремя точками.

Таких костылей, как лямбда (настоящая или самописная). Хочется чтобы можно было сделать что-то вроде:

template <class T, class... Args>
    std::function<void(Args...)> bind_this_(void (T::*f)(Args&&... args))
    {
        return std::bind(f, this, std::forward<Args>(args)...));
    }

Ну так вывод шаблонных параметров только для функций работает. Поэтому нужно конструктор обернуть в функцию.

Этот трюк не прокатит, потому что переменные-члены класса с типом auto объявлять нельзя, а именно для этого всё это нужно)