История изменений
Исправление 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);
});
}