LINUX.ORG.RU

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

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

Чёрт, кажется, продвинутый c-reduce нашёл не тот баг :-)

С delta получилось такое:

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, :

Чёрт, продвинутый c-reduce нашёл не тот баг :-)

С delta получилось такое:

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, :

Чёрт, продвинутый c-reduce нашёл не тот баг :-)

С delta получилось такое:

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(
        [=](const auto errorText) {
            processResult(errorText);
        });
}

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

Чёрт, продвинутый c-reduce нашёл не тот баг :-)

С delta получилось такое:

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(
        [=](const auto &errorText) {
            processResult(errorText);
        });
}

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

Чёрт, продвинутый c-reduce нашёл не тот баг :-)

С delta получилось такое:

template<typename _Tp>     _Tp declval() noexcept;
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);
};
struct EveCentralManager         {
    using Callback = function<void (const char &error)>;
    int aggregateAndFetchMarketOrders(const int &target, const Callback &callback) const;
};
class EveCentralExternalOrderImporter         {
    virtual void fetchExternalOrders(int &target);
    void processResult(char errorText) const;
};
void EveCentralExternalOrderImporter::fetchExternalOrders(int &target) {
    EveCentralManager mManager;
    mManager.aggregateAndFetchMarketOrders(
        target,
        [=](const auto &errorText) {
            processResult(errorText);
        });
}