LINUX.ORG.RU

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

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

У меня этот сниппет вообще не компилируется

Я с -fpermissive делал (для более быстрого сокращения), там на это не ругается (хотя и ошибку немного в другом месте показывает). Достаточно пустого тела того конструктора (тогда ошибка в конструкторе, как в первом посте):

template<typename _Tp> _Tp declval();
template<typename _Signature> class function;
template<typename _Res, typename... _ArgTypes>
struct function<_Res(_ArgTypes...)> {
    template<typename _Functor,
        typename = decltype(declval<_Functor&>()(declval<_ArgTypes>()...) )
    > function(_Functor) {}
};
class EveCentralExternalOrderImporter {
    virtual void fetchExternalOrders();
    void processResult(char errorText);
    int aggregateAndFetchMarketOrders(function<void (char error)> callback);
};
void EveCentralExternalOrderImporter::fetchExternalOrders() {
    aggregateAndFetchMarketOrders(
        [=](auto errorText) {
            processResult(errorText);
        });
}

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

У меня этот сниппет вообще не компилируется

Я с -fpermissive делал, там на это не ругается (хотя и ошибку немного в другом месте показывает). Достаточно пустого тела того конструктора (тогда ошибка в конструкторе, как в первом посте):

template<typename _Tp> _Tp declval();
template<typename _Signature> class function;
template<typename _Res, typename... _ArgTypes>
struct function<_Res(_ArgTypes...)> {
    template<typename _Functor,
        typename = decltype(declval<_Functor&>()(declval<_ArgTypes>()...) )
    > function(_Functor) {}
};
class EveCentralExternalOrderImporter {
    virtual void fetchExternalOrders();
    void processResult(char errorText);
    int aggregateAndFetchMarketOrders(function<void (char error)> callback);
};
void EveCentralExternalOrderImporter::fetchExternalOrders() {
    aggregateAndFetchMarketOrders(
        [=](auto errorText) {
            processResult(errorText);
        });
}