Skip to content

Commit 82c89d0

Browse files
author
Damir Zainullin
committed
++
1 parent c1822f6 commit 82c89d0

File tree

3 files changed

+23
-4
lines changed

3 files changed

+23
-4
lines changed

process-plugin-api/process/common/dnsParser/dnsSectionReader.hpp

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,8 @@
33
#include <span>
44
#include <ranges>
55
#include <optional>
6+
#include <tuple>
7+
68
#include <readers/rangeReader/rangeReader.hpp>
79
#include <readers/rangeReader/generator.hpp>
810
#include <readers/rangeReader/functionTraits.hpp>
@@ -85,8 +87,12 @@ class DNSSectionReader : public RangeReader<DNSSectionReaderFactory> {
8587
: RangeReader(section, DNSSectionReaderFactory{this, itemCount, fullDNSPayload.data()}) {}
8688
};*/
8789

88-
using Ret = FunctionTraits<decltype(
89-
&DNSSectionReaderFactory::makeReader)>::ReturnType;
90+
using Args = FunctionTraits<decltype(
91+
&DNSSectionReaderFactory::makeReader
92+
)>::ArgumentTypes;
93+
94+
using Ret =
95+
ReturnType<DNSSectionReaderFactory::makeReader, Args>::Type;
9096

9197
class DNSSectionReader :
9298
public RangeReader<Ret> {

process-plugin-api/process/common/readers/rangeReader/functionTraits.hpp

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,21 @@ struct FunctionTraits;
88

99
template<typename R, typename... Args>
1010
struct FunctionTraits<R(*)(Args...)> {
11-
using ReturnType = R;
11+
using ArgumentTypes = std::tuple<Args...>;
12+
13+
/*using ReturnType = decltype(
14+
std::declval<R(*)(Args...)>()(std::declval<Args>()...)
15+
);*/
16+
};
17+
18+
template<typename Func, typename Tuple>
19+
struct ReturnType;
20+
21+
template<typename Func, typename... Args>
22+
struct ReturnType<Func, std::tuple<Args...>> {
23+
using Type = std::invoke_result_t<Func, Args...>;
1224
};
1325

26+
27+
1428
} // namespace ipxp

process-plugin-api/process/common/readers/rangeReader/generator.hpp

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,6 @@ namespace ipxp
77

88
// no std::ranges::generate in c++20(from c++23)
99

10-
template<typename GeneratorCallback>
1110
class Generator {
1211
public:
1312

0 commit comments

Comments
 (0)