Line data Source code
1 : // Copyright (c) The Bitcoin Core developers
2 : // Distributed under the MIT software license, see the accompanying
3 : // file COPYING or http://www.opensource.org/licenses/mit-license.php.
4 :
5 : #ifndef MP_PROXY_TYPE_DECAY_H
6 : #define MP_PROXY_TYPE_DECAY_H
7 :
8 : #include <mp/util.h>
9 :
10 : namespace mp {
11 : template <typename LocalType, typename Value, typename Output>
12 8 : void CustomBuildField(TypeList<const LocalType>,
13 : Priority<0>,
14 : InvokeContext& invoke_context,
15 : Value&& value,
16 : Output&& output)
17 : {
18 8 : BuildField(TypeList<LocalType>(), invoke_context, output, std::forward<Value>(value));
19 8 : }
20 :
21 : template <typename LocalType, typename Value, typename Output>
22 6 : void CustomBuildField(TypeList<LocalType&>, Priority<0>, InvokeContext& invoke_context, Value&& value, Output&& output)
23 : {
24 6 : BuildField(TypeList<LocalType>(), invoke_context, output, std::forward<Value>(value));
25 6 : }
26 :
27 : template <typename LocalType, typename Value, typename Output>
28 16 : void CustomBuildField(TypeList<LocalType&&>,
29 : Priority<0>,
30 : InvokeContext& invoke_context,
31 : Value&& value,
32 : Output&& output)
33 : {
34 16 : BuildField(TypeList<LocalType>(), invoke_context, output, std::forward<Value>(value));
35 16 : }
36 : } // namespace mp
37 :
38 : #endif // MP_PROXY_TYPE_DECAY_H
|