/root/bitcoin/src/script/script.h
Line | Count | Source |
1 | | // Copyright (c) 2009-2010 Satoshi Nakamoto |
2 | | // Copyright (c) 2009-present The Bitcoin Core developers |
3 | | // Distributed under the MIT software license, see the accompanying |
4 | | // file COPYING or http://www.opensource.org/licenses/mit-license.php. |
5 | | |
6 | | #ifndef BITCOIN_SCRIPT_SCRIPT_H |
7 | | #define BITCOIN_SCRIPT_SCRIPT_H |
8 | | |
9 | | #include <attributes.h> |
10 | | #include <crypto/common.h> |
11 | | #include <prevector.h> |
12 | | #include <serialize.h> |
13 | | #include <uint256.h> |
14 | | #include <util/hash_type.h> |
15 | | |
16 | | #include <cassert> |
17 | | #include <cstddef> |
18 | | #include <cstdint> |
19 | | #include <iterator> |
20 | | #include <limits> |
21 | | #include <span> |
22 | | #include <stdexcept> |
23 | | #include <string> |
24 | | #include <type_traits> |
25 | | #include <utility> |
26 | | #include <vector> |
27 | | |
28 | | // Maximum number of bytes pushable to the stack |
29 | | inline constexpr unsigned int MAX_SCRIPT_ELEMENT_SIZE = 520; |
30 | | |
31 | | // Maximum number of non-push operations per script |
32 | | inline constexpr int MAX_OPS_PER_SCRIPT = 201; |
33 | | |
34 | | // Maximum number of public keys per multisig |
35 | | inline constexpr int MAX_PUBKEYS_PER_MULTISIG = 20; |
36 | | |
37 | | /** The limit of keys in OP_CHECKSIGADD-based scripts. It is due to the stack limit in BIP342. */ |
38 | | inline constexpr unsigned int MAX_PUBKEYS_PER_MULTI_A = 999; |
39 | | |
40 | | // Maximum script length in bytes |
41 | | inline constexpr int MAX_SCRIPT_SIZE{10'000}; |
42 | | |
43 | | // Maximum number of values on script interpreter stack |
44 | | inline constexpr int MAX_STACK_SIZE = 1000; |
45 | | |
46 | | // Threshold for nLockTime: below this value it is interpreted as block number, |
47 | | // otherwise as UNIX timestamp. |
48 | | inline constexpr unsigned int LOCKTIME_THRESHOLD{500'000'000}; // Tue Nov 5 00:53:20 1985 UTC |
49 | | |
50 | | // Maximum nLockTime. Since a lock time indicates the last invalid timestamp, a |
51 | | // transaction with this lock time will never be valid unless lock time |
52 | | // checking is disabled (by setting all input sequence numbers to |
53 | | // SEQUENCE_FINAL). |
54 | | inline constexpr uint32_t LOCKTIME_MAX = 0xFFFFFFFFU; |
55 | | |
56 | | // Tag for input annex. If there are at least two witness elements for a transaction input, |
57 | | // and the first byte of the last element is 0x50, this last element is called annex, and |
58 | | // has meanings independent of the script |
59 | | inline constexpr unsigned int ANNEX_TAG = 0x50; |
60 | | |
61 | | // Validation weight per passing signature (Tapscript only, see BIP 342). |
62 | | inline constexpr int64_t VALIDATION_WEIGHT_PER_SIGOP_PASSED{50}; |
63 | | |
64 | | // How much weight budget is added to the witness size (Tapscript only, see BIP 342). |
65 | | inline constexpr int64_t VALIDATION_WEIGHT_OFFSET{50}; |
66 | | |
67 | | template <typename T> |
68 | | std::vector<unsigned char> ToByteVector(const T& in) |
69 | 5.49M | { |
70 | 5.49M | return std::vector<unsigned char>(in.begin(), in.end()); |
71 | 5.49M | } _Z12ToByteVectorI7uint256ESt6vectorIhSaIhEERKT_ Line | Count | Source | 69 | 118k | { | 70 | 118k | return std::vector<unsigned char>(in.begin(), in.end()); | 71 | 118k | } |
_Z12ToByteVectorI11XOnlyPubKeyESt6vectorIhSaIhEERKT_ Line | Count | Source | 69 | 2.69M | { | 70 | 2.69M | return std::vector<unsigned char>(in.begin(), in.end()); | 71 | 2.69M | } |
_Z12ToByteVectorI7CPubKeyESt6vectorIhSaIhEERKT_ Line | Count | Source | 69 | 406k | { | 70 | 406k | return std::vector<unsigned char>(in.begin(), in.end()); | 71 | 406k | } |
_Z12ToByteVectorI6PKHashESt6vectorIhSaIhEERKT_ Line | Count | Source | 69 | 357k | { | 70 | 357k | return std::vector<unsigned char>(in.begin(), in.end()); | 71 | 357k | } |
_Z12ToByteVectorI10ScriptHashESt6vectorIhSaIhEERKT_ Line | Count | Source | 69 | 587k | { | 70 | 587k | return std::vector<unsigned char>(in.begin(), in.end()); | 71 | 587k | } |
_Z12ToByteVectorI19WitnessV0ScriptHashESt6vectorIhSaIhEERKT_ Line | Count | Source | 69 | 163k | { | 70 | 163k | return std::vector<unsigned char>(in.begin(), in.end()); | 71 | 163k | } |
_Z12ToByteVectorI16WitnessV0KeyHashESt6vectorIhSaIhEERKT_ Line | Count | Source | 69 | 405k | { | 70 | 405k | return std::vector<unsigned char>(in.begin(), in.end()); | 71 | 405k | } |
_Z12ToByteVectorI16WitnessV1TaprootESt6vectorIhSaIhEERKT_ Line | Count | Source | 69 | 684k | { | 70 | 684k | return std::vector<unsigned char>(in.begin(), in.end()); | 71 | 684k | } |
_Z12ToByteVectorISt6vectorIhSaIhEEES2_RKT_ Line | Count | Source | 69 | 72.4k | { | 70 | 72.4k | return std::vector<unsigned char>(in.begin(), in.end()); | 71 | 72.4k | } |
|
72 | | |
73 | | /** Script opcodes */ |
74 | | enum opcodetype |
75 | | { |
76 | | // push value |
77 | | OP_0 = 0x00, |
78 | | OP_FALSE = OP_0, |
79 | | OP_PUSHDATA1 = 0x4c, |
80 | | OP_PUSHDATA2 = 0x4d, |
81 | | OP_PUSHDATA4 = 0x4e, |
82 | | OP_1NEGATE = 0x4f, |
83 | | OP_RESERVED = 0x50, |
84 | | OP_1 = 0x51, |
85 | | OP_TRUE=OP_1, |
86 | | OP_2 = 0x52, |
87 | | OP_3 = 0x53, |
88 | | OP_4 = 0x54, |
89 | | OP_5 = 0x55, |
90 | | OP_6 = 0x56, |
91 | | OP_7 = 0x57, |
92 | | OP_8 = 0x58, |
93 | | OP_9 = 0x59, |
94 | | OP_10 = 0x5a, |
95 | | OP_11 = 0x5b, |
96 | | OP_12 = 0x5c, |
97 | | OP_13 = 0x5d, |
98 | | OP_14 = 0x5e, |
99 | | OP_15 = 0x5f, |
100 | | OP_16 = 0x60, |
101 | | |
102 | | // control |
103 | | OP_NOP = 0x61, |
104 | | OP_VER = 0x62, |
105 | | OP_IF = 0x63, |
106 | | OP_NOTIF = 0x64, |
107 | | OP_VERIF = 0x65, |
108 | | OP_VERNOTIF = 0x66, |
109 | | OP_ELSE = 0x67, |
110 | | OP_ENDIF = 0x68, |
111 | | OP_VERIFY = 0x69, |
112 | | OP_RETURN = 0x6a, |
113 | | |
114 | | // stack ops |
115 | | OP_TOALTSTACK = 0x6b, |
116 | | OP_FROMALTSTACK = 0x6c, |
117 | | OP_2DROP = 0x6d, |
118 | | OP_2DUP = 0x6e, |
119 | | OP_3DUP = 0x6f, |
120 | | OP_2OVER = 0x70, |
121 | | OP_2ROT = 0x71, |
122 | | OP_2SWAP = 0x72, |
123 | | OP_IFDUP = 0x73, |
124 | | OP_DEPTH = 0x74, |
125 | | OP_DROP = 0x75, |
126 | | OP_DUP = 0x76, |
127 | | OP_NIP = 0x77, |
128 | | OP_OVER = 0x78, |
129 | | OP_PICK = 0x79, |
130 | | OP_ROLL = 0x7a, |
131 | | OP_ROT = 0x7b, |
132 | | OP_SWAP = 0x7c, |
133 | | OP_TUCK = 0x7d, |
134 | | |
135 | | // splice ops |
136 | | OP_CAT = 0x7e, |
137 | | OP_SUBSTR = 0x7f, |
138 | | OP_LEFT = 0x80, |
139 | | OP_RIGHT = 0x81, |
140 | | OP_SIZE = 0x82, |
141 | | |
142 | | // bit logic |
143 | | OP_INVERT = 0x83, |
144 | | OP_AND = 0x84, |
145 | | OP_OR = 0x85, |
146 | | OP_XOR = 0x86, |
147 | | OP_EQUAL = 0x87, |
148 | | OP_EQUALVERIFY = 0x88, |
149 | | OP_RESERVED1 = 0x89, |
150 | | OP_RESERVED2 = 0x8a, |
151 | | |
152 | | // numeric |
153 | | OP_1ADD = 0x8b, |
154 | | OP_1SUB = 0x8c, |
155 | | OP_2MUL = 0x8d, |
156 | | OP_2DIV = 0x8e, |
157 | | OP_NEGATE = 0x8f, |
158 | | OP_ABS = 0x90, |
159 | | OP_NOT = 0x91, |
160 | | OP_0NOTEQUAL = 0x92, |
161 | | |
162 | | OP_ADD = 0x93, |
163 | | OP_SUB = 0x94, |
164 | | OP_MUL = 0x95, |
165 | | OP_DIV = 0x96, |
166 | | OP_MOD = 0x97, |
167 | | OP_LSHIFT = 0x98, |
168 | | OP_RSHIFT = 0x99, |
169 | | |
170 | | OP_BOOLAND = 0x9a, |
171 | | OP_BOOLOR = 0x9b, |
172 | | OP_NUMEQUAL = 0x9c, |
173 | | OP_NUMEQUALVERIFY = 0x9d, |
174 | | OP_NUMNOTEQUAL = 0x9e, |
175 | | OP_LESSTHAN = 0x9f, |
176 | | OP_GREATERTHAN = 0xa0, |
177 | | OP_LESSTHANOREQUAL = 0xa1, |
178 | | OP_GREATERTHANOREQUAL = 0xa2, |
179 | | OP_MIN = 0xa3, |
180 | | OP_MAX = 0xa4, |
181 | | |
182 | | OP_WITHIN = 0xa5, |
183 | | |
184 | | // crypto |
185 | | OP_RIPEMD160 = 0xa6, |
186 | | OP_SHA1 = 0xa7, |
187 | | OP_SHA256 = 0xa8, |
188 | | OP_HASH160 = 0xa9, |
189 | | OP_HASH256 = 0xaa, |
190 | | OP_CODESEPARATOR = 0xab, |
191 | | OP_CHECKSIG = 0xac, |
192 | | OP_CHECKSIGVERIFY = 0xad, |
193 | | OP_CHECKMULTISIG = 0xae, |
194 | | OP_CHECKMULTISIGVERIFY = 0xaf, |
195 | | |
196 | | // expansion |
197 | | OP_NOP1 = 0xb0, |
198 | | OP_CHECKLOCKTIMEVERIFY = 0xb1, |
199 | | OP_NOP2 = OP_CHECKLOCKTIMEVERIFY, |
200 | | OP_CHECKSEQUENCEVERIFY = 0xb2, |
201 | | OP_NOP3 = OP_CHECKSEQUENCEVERIFY, |
202 | | OP_NOP4 = 0xb3, |
203 | | OP_NOP5 = 0xb4, |
204 | | OP_NOP6 = 0xb5, |
205 | | OP_NOP7 = 0xb6, |
206 | | OP_NOP8 = 0xb7, |
207 | | OP_NOP9 = 0xb8, |
208 | | OP_NOP10 = 0xb9, |
209 | | |
210 | | // Opcode added by BIP 342 (Tapscript) |
211 | | OP_CHECKSIGADD = 0xba, |
212 | | |
213 | | OP_INVALIDOPCODE = 0xff, |
214 | | }; |
215 | | |
216 | | // Maximum value that an opcode can be |
217 | | inline constexpr unsigned int MAX_OPCODE = OP_NOP10; |
218 | | |
219 | | std::string GetOpName(opcodetype opcode); |
220 | | |
221 | | class scriptnum_error : public std::runtime_error |
222 | | { |
223 | | public: |
224 | 90.4k | explicit scriptnum_error(const std::string& str) : std::runtime_error(str) {} |
225 | | }; |
226 | | |
227 | | class CScriptNum |
228 | | { |
229 | | /** |
230 | | * Numeric opcodes (OP_1ADD, etc) are restricted to operating on 4-byte integers. |
231 | | * The semantics are subtle, though: operands must be in the range [-2^31 +1...2^31 -1], |
232 | | * but results may overflow (and are valid as long as they are not used in a subsequent |
233 | | * numeric operation). CScriptNum enforces those semantics by storing results as |
234 | | * an int64 and allowing out-of-range values to be returned as a vector of bytes but |
235 | | * throwing an exception if arithmetic is done or the result is interpreted as an integer. |
236 | | */ |
237 | | public: |
238 | | |
239 | | explicit CScriptNum(const int64_t& n) |
240 | 20.6M | { |
241 | 20.6M | m_value = n; |
242 | 20.6M | } |
243 | | |
244 | | static constexpr size_t nDefaultMaxNumSize{4}; |
245 | | |
246 | | explicit CScriptNum(const std::vector<unsigned char>& vch, bool fRequireMinimal, |
247 | | const size_t nMaxNumSize = nDefaultMaxNumSize) |
248 | 7.91M | { |
249 | 7.91M | if (vch.size() > nMaxNumSize) { Branch (249:13): [True: 66.6k, False: 7.84M]
|
250 | 66.6k | throw scriptnum_error("script number overflow"); |
251 | 66.6k | } |
252 | 7.84M | if (fRequireMinimal && vch.size() > 0) { Branch (252:13): [True: 2.01M, False: 5.83M]
Branch (252:32): [True: 1.23M, False: 777k]
|
253 | | // Check that the number is encoded with the minimum possible |
254 | | // number of bytes. |
255 | | // |
256 | | // If the most-significant-byte - excluding the sign bit - is zero |
257 | | // then we're not minimal. Note how this test also rejects the |
258 | | // negative-zero encoding, 0x80. |
259 | 1.23M | if ((vch.back() & 0x7f) == 0) { Branch (259:17): [True: 46.7k, False: 1.19M]
|
260 | | // One exception: if there's more than one byte and the most |
261 | | // significant bit of the second-most-significant-byte is set |
262 | | // it would conflict with the sign bit. An example of this case |
263 | | // is +-255, which encode to 0xff00 and 0xff80 respectively. |
264 | | // (big-endian). |
265 | 46.7k | if (vch.size() <= 1 || (vch[vch.size() - 2] & 0x80) == 0) { Branch (265:21): [True: 13.7k, False: 33.0k]
Branch (265:40): [True: 8.47k, False: 24.5k]
|
266 | 22.2k | throw scriptnum_error("non-minimally encoded script number"); |
267 | 22.2k | } |
268 | 46.7k | } |
269 | 1.23M | } |
270 | 7.82M | m_value = set_vch(vch); |
271 | 7.82M | } |
272 | | |
273 | 3.03M | inline bool operator==(const int64_t& rhs) const { return m_value == rhs; } |
274 | 3.97M | inline auto operator<=>(const int64_t& rhs) const { return m_value <=> rhs; } |
275 | | |
276 | 1.73M | inline bool operator==(const CScriptNum& rhs) const { return operator==(rhs.m_value); } |
277 | 1.29M | inline auto operator<=>(const CScriptNum& rhs) const { return operator<=>(rhs.m_value); } |
278 | | |
279 | 730k | inline CScriptNum operator+( const int64_t& rhs) const { return CScriptNum(m_value + rhs);} |
280 | 669k | inline CScriptNum operator-( const int64_t& rhs) const { return CScriptNum(m_value - rhs);} |
281 | 425k | inline CScriptNum operator+( const CScriptNum& rhs) const { return operator+(rhs.m_value); } |
282 | 396k | inline CScriptNum operator-( const CScriptNum& rhs) const { return operator-(rhs.m_value); } |
283 | | |
284 | 71.6k | inline CScriptNum& operator+=( const CScriptNum& rhs) { return operator+=(rhs.m_value); } |
285 | 84.9k | inline CScriptNum& operator-=( const CScriptNum& rhs) { return operator-=(rhs.m_value); } |
286 | | |
287 | 128k | inline CScriptNum operator&( const int64_t& rhs) const { return CScriptNum(m_value & rhs);} |
288 | 10.6k | inline CScriptNum operator&( const CScriptNum& rhs) const { return operator&(rhs.m_value); } |
289 | | |
290 | 14.0k | inline CScriptNum& operator&=( const CScriptNum& rhs) { return operator&=(rhs.m_value); } |
291 | | |
292 | | inline CScriptNum operator-() const |
293 | 1.14M | { |
294 | 1.14M | assert(m_value != std::numeric_limits<int64_t>::min()); Branch (294:9): [True: 1.14M, False: 0]
|
295 | 1.14M | return CScriptNum(-m_value); |
296 | 1.14M | } |
297 | | |
298 | | inline CScriptNum& operator=( const int64_t& rhs) |
299 | 387k | { |
300 | 387k | m_value = rhs; |
301 | 387k | return *this; |
302 | 387k | } |
303 | | |
304 | | inline CScriptNum& operator+=( const int64_t& rhs) |
305 | 95.8k | { |
306 | 95.8k | assert(rhs == 0 || (rhs > 0 && m_value <= std::numeric_limits<int64_t>::max() - rhs) || Branch (306:9): [True: 75.7k, False: 14.7k]
Branch (306:9): [True: 75.7k, False: 0]
Branch (306:9): [True: 5.32k, False: 90.5k]
Branch (306:9): [True: 14.7k, False: 0]
Branch (306:9): [True: 14.7k, False: 0]
Branch (306:9): [True: 95.8k, False: 0]
|
307 | 95.8k | (rhs < 0 && m_value >= std::numeric_limits<int64_t>::min() - rhs)); |
308 | 95.8k | m_value += rhs; |
309 | 95.8k | return *this; |
310 | 95.8k | } |
311 | | |
312 | | inline CScriptNum& operator-=( const int64_t& rhs) |
313 | 100k | { |
314 | 100k | assert(rhs == 0 || (rhs > 0 && m_value >= std::numeric_limits<int64_t>::min() + rhs) || Branch (314:9): [True: 74.6k, False: 18.6k]
Branch (314:9): [True: 74.6k, False: 0]
Branch (314:9): [True: 6.93k, False: 93.3k]
Branch (314:9): [True: 18.6k, False: 0]
Branch (314:9): [True: 18.6k, False: 0]
Branch (314:9): [True: 100k, False: 0]
|
315 | 100k | (rhs < 0 && m_value <= std::numeric_limits<int64_t>::max() + rhs)); |
316 | 100k | m_value -= rhs; |
317 | 100k | return *this; |
318 | 100k | } |
319 | | |
320 | | inline CScriptNum& operator&=( const int64_t& rhs) |
321 | 20.9k | { |
322 | 20.9k | m_value &= rhs; |
323 | 20.9k | return *this; |
324 | 20.9k | } |
325 | | |
326 | | int getint() const |
327 | 7.62M | { |
328 | 7.62M | if (m_value > std::numeric_limits<int>::max()) Branch (328:13): [True: 767k, False: 6.85M]
|
329 | 767k | return std::numeric_limits<int>::max(); |
330 | 6.85M | else if (m_value < std::numeric_limits<int>::min()) Branch (330:18): [True: 829k, False: 6.02M]
|
331 | 829k | return std::numeric_limits<int>::min(); |
332 | 6.02M | return m_value; |
333 | 7.62M | } |
334 | | |
335 | 219k | int64_t GetInt64() const { return m_value; } |
336 | | |
337 | | std::vector<unsigned char> getvch() const |
338 | 17.5M | { |
339 | 17.5M | return serialize(m_value); |
340 | 17.5M | } |
341 | | |
342 | | static std::vector<unsigned char> serialize(const int64_t& value) |
343 | 20.3M | { |
344 | 20.3M | if(value == 0) Branch (344:12): [True: 343k, False: 20.0M]
|
345 | 343k | return std::vector<unsigned char>(); |
346 | | |
347 | 20.0M | std::vector<unsigned char> result; |
348 | 20.0M | const bool neg = value < 0; |
349 | 20.0M | uint64_t absvalue = neg ? ~static_cast<uint64_t>(value) + 1 : static_cast<uint64_t>(value); Branch (349:29): [True: 3.73M, False: 16.2M]
|
350 | | |
351 | 60.3M | while(absvalue) Branch (351:15): [True: 40.3M, False: 20.0M]
|
352 | 40.3M | { |
353 | 40.3M | result.push_back(absvalue & 0xff); |
354 | 40.3M | absvalue >>= 8; |
355 | 40.3M | } |
356 | | |
357 | | // - If the most significant byte is >= 0x80 and the value is positive, push a |
358 | | // new zero-byte to make the significant byte < 0x80 again. |
359 | | |
360 | | // - If the most significant byte is >= 0x80 and the value is negative, push a |
361 | | // new 0x80 byte that will be popped off when converting to an integral. |
362 | | |
363 | | // - If the most significant byte is < 0x80 and the value is negative, add |
364 | | // 0x80 to it, since it will be subtracted and interpreted as a negative when |
365 | | // converting to an integral. |
366 | | |
367 | 20.0M | if (result.back() & 0x80) Branch (367:13): [True: 808k, False: 19.2M]
|
368 | 808k | result.push_back(neg ? 0x80 : 0); Branch (368:30): [True: 197k, False: 610k]
|
369 | 19.2M | else if (neg) Branch (369:18): [True: 3.54M, False: 15.6M]
|
370 | 3.54M | result.back() |= 0x80; |
371 | | |
372 | 20.0M | return result; |
373 | 20.3M | } |
374 | | |
375 | | private: |
376 | | static int64_t set_vch(const std::vector<unsigned char>& vch) |
377 | 7.82M | { |
378 | 7.82M | if (vch.empty()) Branch (378:11): [True: 4.11M, False: 3.70M]
|
379 | 4.11M | return 0; |
380 | | |
381 | 3.70M | int64_t result = 0; |
382 | 8.69M | for (size_t i = 0; i != vch.size(); ++i) Branch (382:26): [True: 4.99M, False: 3.70M]
|
383 | 4.99M | result |= static_cast<int64_t>(vch[i]) << 8*i; |
384 | | |
385 | | // If the input vector's most significant byte is 0x80, remove it from |
386 | | // the result's msb and return a negative. |
387 | 3.70M | if (vch.back() & 0x80) Branch (387:11): [True: 248k, False: 3.46M]
|
388 | 248k | return -((int64_t)(result & ~(0x80ULL << (8 * (vch.size() - 1))))); |
389 | | |
390 | 3.46M | return result; |
391 | 3.70M | } |
392 | | |
393 | | int64_t m_value; |
394 | | }; |
395 | | |
396 | | /** |
397 | | * We use a prevector for the script to reduce the considerable memory overhead |
398 | | * of vectors in cases where they normally contain a small number of small elements. |
399 | | */ |
400 | | using CScriptBase = prevector<36, uint8_t>; |
401 | | |
402 | | bool GetScriptOp(CScriptBase::const_iterator& pc, CScriptBase::const_iterator end, opcodetype& opcodeRet, std::vector<unsigned char>* pvchRet); |
403 | | |
404 | | /** Serialized script, used inside transaction inputs and outputs */ |
405 | | class CScript : public CScriptBase |
406 | | { |
407 | | private: |
408 | | inline void AppendDataSize(const uint32_t size) |
409 | 41.6M | { |
410 | 41.6M | if (size < OP_PUSHDATA1) { Branch (410:13): [True: 15.5M, False: 26.0M]
|
411 | 15.5M | insert(end(), static_cast<value_type>(size)); |
412 | 26.0M | } else if (size <= 0xff) { Branch (412:20): [True: 25.9M, False: 62.3k]
|
413 | 25.9M | insert(end(), OP_PUSHDATA1); |
414 | 25.9M | insert(end(), static_cast<value_type>(size)); |
415 | 25.9M | } else if (size <= 0xffff) { Branch (415:20): [True: 42.6k, False: 19.7k]
|
416 | 42.6k | insert(end(), OP_PUSHDATA2); |
417 | 42.6k | value_type data[2]; |
418 | 42.6k | WriteLE16(data, size); |
419 | 42.6k | insert(end(), std::cbegin(data), std::cend(data)); |
420 | 42.6k | } else { |
421 | 19.7k | insert(end(), OP_PUSHDATA4); |
422 | 19.7k | value_type data[4]; |
423 | 19.7k | WriteLE32(data, size); |
424 | 19.7k | insert(end(), std::cbegin(data), std::cend(data)); |
425 | 19.7k | } |
426 | 41.6M | } |
427 | | |
428 | | void AppendData(std::span<const value_type> data) |
429 | 41.6M | { |
430 | 41.6M | insert(end(), data.begin(), data.end()); |
431 | 41.6M | } |
432 | | |
433 | | protected: |
434 | | CScript& push_int64(int64_t n) |
435 | 4.36M | { |
436 | 4.36M | if (n == -1 || (n >= 1 && n <= 16)) Branch (436:13): [True: 36.7k, False: 4.32M]
Branch (436:25): [True: 3.65M, False: 671k]
Branch (436:35): [True: 1.31M, False: 2.34M]
|
437 | 1.35M | { |
438 | 1.35M | push_back(n + (OP_1 - 1)); |
439 | 1.35M | } |
440 | 3.01M | else if (n == 0) Branch (440:18): [True: 202k, False: 2.81M]
|
441 | 202k | { |
442 | 202k | push_back(OP_0); |
443 | 202k | } |
444 | 2.81M | else |
445 | 2.81M | { |
446 | 2.81M | *this << CScriptNum::serialize(n); |
447 | 2.81M | } |
448 | 4.36M | return *this; |
449 | 4.36M | } |
450 | | |
451 | | public: |
452 | 422M | CScript() = default; |
453 | | template <std::input_iterator InputIterator> |
454 | 7.58M | CScript(InputIterator first, InputIterator last) : CScriptBase{first, last} { }_ZN7CScriptC2ITkSt14input_iteratorN9__gnu_cxx17__normal_iteratorIPKhSt6vectorIhSaIhEEEEEET_S9_ Line | Count | Source | 454 | 6.82M | CScript(InputIterator first, InputIterator last) : CScriptBase{first, last} { } |
_ZN7CScriptC2ITkSt14input_iteratorN9__gnu_cxx17__normal_iteratorIPhSt6vectorIhSaIhEEEEEET_S8_ Line | Count | Source | 454 | 121k | CScript(InputIterator first, InputIterator last) : CScriptBase{first, last} { } |
_ZN7CScriptC2ITkSt14input_iteratorPKhEET_S3_ Line | Count | Source | 454 | 4.12k | CScript(InputIterator first, InputIterator last) : CScriptBase{first, last} { } |
_ZN7CScriptC2ITkSt14input_iteratorN9__gnu_cxx17__normal_iteratorIPKhSt4spanIS3_Lm18446744073709551615EEEEEET_S8_ Line | Count | Source | 454 | 4.30k | CScript(InputIterator first, InputIterator last) : CScriptBase{first, last} { } |
_ZN7CScriptC2ITkSt14input_iteratorN9prevectorILj36EhjiE14const_iteratorEEET_S4_ Line | Count | Source | 454 | 625k | CScript(InputIterator first, InputIterator last) : CScriptBase{first, last} { } |
|
455 | | |
456 | 9.55G | SERIALIZE_METHODS(CScript, obj) { READWRITE(AsBase<CScriptBase>(obj)); }_ZN7CScript16SerializationOpsI12ParamsStreamIR12SizeComputer20TransactionSerParamsEKS_15ActionSerializeEEvRT0_RT_T1_ Line | Count | Source | 456 | 8.97G | SERIALIZE_METHODS(CScript, obj) { READWRITE(AsBase<CScriptBase>(obj)); } |
_ZN7CScript16SerializationOpsI12ParamsStreamIR10SpanReader20TransactionSerParamsES_17ActionUnserializeEEvRT0_RT_T1_ Line | Count | Source | 456 | 23.1M | SERIALIZE_METHODS(CScript, obj) { READWRITE(AsBase<CScriptBase>(obj)); } |
_ZN7CScript16SerializationOpsI12ParamsStreamIR12VectorWriter20TransactionSerParamsEKS_15ActionSerializeEEvRT0_RT_T1_ Line | Count | Source | 456 | 802k | SERIALIZE_METHODS(CScript, obj) { READWRITE(AsBase<CScriptBase>(obj)); } |
_ZN7CScript16SerializationOpsI12ParamsStreamIR10DataStream20TransactionSerParamsEKS_15ActionSerializeEEvRT0_RT_T1_ Line | Count | Source | 456 | 5.49M | SERIALIZE_METHODS(CScript, obj) { READWRITE(AsBase<CScriptBase>(obj)); } |
_ZN7CScript16SerializationOpsI10SpanReaderS_17ActionUnserializeEEvRT0_RT_T1_ Line | Count | Source | 456 | 3.10M | SERIALIZE_METHODS(CScript, obj) { READWRITE(AsBase<CScriptBase>(obj)); } |
_ZN7CScript16SerializationOpsI10DataStreamKS_15ActionSerializeEEvRT0_RT_T1_ Line | Count | Source | 456 | 13.2k | SERIALIZE_METHODS(CScript, obj) { READWRITE(AsBase<CScriptBase>(obj)); } |
_ZN7CScript16SerializationOpsI10DataStreamS_17ActionUnserializeEEvRT0_RT_T1_ Line | Count | Source | 456 | 64 | SERIALIZE_METHODS(CScript, obj) { READWRITE(AsBase<CScriptBase>(obj)); } |
_ZN7CScript16SerializationOpsI12SizeComputerKS_15ActionSerializeEEvRT0_RT_T1_ Line | Count | Source | 456 | 114M | SERIALIZE_METHODS(CScript, obj) { READWRITE(AsBase<CScriptBase>(obj)); } |
_ZN7CScript16SerializationOpsI12ParamsStreamIRS1_IR12VectorWriter20TransactionSerParamsES4_EKS_15ActionSerializeEEvRT0_RT_T1_ Line | Count | Source | 456 | 13.2k | SERIALIZE_METHODS(CScript, obj) { READWRITE(AsBase<CScriptBase>(obj)); } |
_ZN7CScript16SerializationOpsI12VectorWriterKS_15ActionSerializeEEvRT0_RT_T1_ Line | Count | Source | 456 | 23.5k | SERIALIZE_METHODS(CScript, obj) { READWRITE(AsBase<CScriptBase>(obj)); } |
_ZN7CScript16SerializationOpsI12ParamsStreamIR10DataStream20TransactionSerParamsES_17ActionUnserializeEEvRT0_RT_T1_ Line | Count | Source | 456 | 931k | SERIALIZE_METHODS(CScript, obj) { READWRITE(AsBase<CScriptBase>(obj)); } |
_ZN7CScript16SerializationOpsI10HashWriterKS_15ActionSerializeEEvRT0_RT_T1_ Line | Count | Source | 456 | 28.9M | SERIALIZE_METHODS(CScript, obj) { READWRITE(AsBase<CScriptBase>(obj)); } |
_ZN7CScript16SerializationOpsI12ParamsStreamIR14BufferedWriterI8AutoFileE20TransactionSerParamsEKS_15ActionSerializeEEvRT0_RT_T1_ Line | Count | Source | 456 | 1.68M | SERIALIZE_METHODS(CScript, obj) { READWRITE(AsBase<CScriptBase>(obj)); } |
_ZN7CScript16SerializationOpsI12ParamsStreamIR8AutoFile20TransactionSerParamsES_17ActionUnserializeEEvRT0_RT_T1_ Line | Count | Source | 456 | 2.40M | SERIALIZE_METHODS(CScript, obj) { READWRITE(AsBase<CScriptBase>(obj)); } |
Unexecuted instantiation: _ZN7CScript16SerializationOpsI12ParamsStreamIR8AutoFile20TransactionSerParamsEKS_15ActionSerializeEEvRT0_RT_T1_ _ZN7CScript16SerializationOpsI12ParamsStreamIR12BufferedFile20TransactionSerParamsES_17ActionUnserializeEEvRT0_RT_T1_ Line | Count | Source | 456 | 155k | SERIALIZE_METHODS(CScript, obj) { READWRITE(AsBase<CScriptBase>(obj)); } |
_ZN7CScript16SerializationOpsI12ParamsStreamIR10HashWriter20TransactionSerParamsEKS_15ActionSerializeEEvRT0_RT_T1_ Line | Count | Source | 456 | 400M | SERIALIZE_METHODS(CScript, obj) { READWRITE(AsBase<CScriptBase>(obj)); } |
|
457 | | |
458 | 0 | explicit CScript(int64_t b) { operator<<(b); } |
459 | 9.78k | explicit CScript(opcodetype b) { operator<<(b); } |
460 | 0 | explicit CScript(const CScriptNum& b) { operator<<(b); } |
461 | | // delete non-existent constructor to defend against future introduction |
462 | | // e.g. via prevector |
463 | | explicit CScript(const std::vector<unsigned char>& b) = delete; |
464 | | |
465 | | /** Delete non-existent operator to defend against future introduction */ |
466 | | CScript& operator<<(const CScript& b) = delete; |
467 | | |
468 | 4.36M | CScript& operator<<(int64_t b) LIFETIMEBOUND { return push_int64(b); } |
469 | | |
470 | | CScript& operator<<(opcodetype opcode) LIFETIMEBOUND |
471 | 16.5M | { |
472 | 16.5M | if (opcode < 0 || opcode > 0xff) Branch (472:13): [True: 0, False: 16.5M]
Branch (472:27): [True: 0, False: 16.5M]
|
473 | 0 | throw std::runtime_error("CScript::operator<<(): invalid opcode"); |
474 | 16.5M | insert(end(), (unsigned char)opcode); |
475 | 16.5M | return *this; |
476 | 16.5M | } |
477 | | |
478 | | CScript& operator<<(const CScriptNum& b) LIFETIMEBOUND |
479 | 595k | { |
480 | 595k | *this << b.getvch(); |
481 | 595k | return *this; |
482 | 595k | } |
483 | | |
484 | | CScript& operator<<(std::span<const std::byte> b) LIFETIMEBOUND |
485 | 41.6M | { |
486 | 41.6M | AppendDataSize(b.size()); |
487 | 41.6M | AppendData({reinterpret_cast<const value_type*>(b.data()), b.size()}); |
488 | 41.6M | return *this; |
489 | 41.6M | } |
490 | | |
491 | | // For compatibility reasons. In new code, prefer using std::byte instead of uint8_t. |
492 | | CScript& operator<<(std::span<const value_type> b) LIFETIMEBOUND |
493 | 41.6M | { |
494 | 41.6M | return *this << std::as_bytes(b); |
495 | 41.6M | } |
496 | | |
497 | | bool GetOp(const_iterator& pc, opcodetype& opcodeRet, std::vector<unsigned char>& vchRet) const |
498 | 123M | { |
499 | 123M | return GetScriptOp(pc, end(), opcodeRet, &vchRet); |
500 | 123M | } |
501 | | |
502 | | bool GetOp(const_iterator& pc, opcodetype& opcodeRet) const |
503 | 684M | { |
504 | 684M | return GetScriptOp(pc, end(), opcodeRet, nullptr); |
505 | 684M | } |
506 | | |
507 | | /** Encode/decode small integers: */ |
508 | | static int DecodeOP_N(opcodetype opcode) |
509 | 148M | { |
510 | 148M | if (opcode == OP_0) Branch (510:13): [True: 146M, False: 2.13M]
|
511 | 146M | return 0; |
512 | 148M | assert(opcode >= OP_1 && opcode <= OP_16); Branch (512:9): [True: 2.13M, False: 0]
Branch (512:9): [True: 2.13M, False: 0]
Branch (512:9): [True: 2.13M, False: 0]
|
513 | 2.13M | return (int)opcode - (int)(OP_1 - 1); |
514 | 2.13M | } |
515 | | static opcodetype EncodeOP_N(int n) |
516 | 51.4k | { |
517 | 51.4k | assert(n >= 0 && n <= 16); Branch (517:9): [True: 51.4k, False: 0]
Branch (517:9): [True: 51.4k, False: 0]
Branch (517:9): [True: 51.4k, False: 0]
|
518 | 51.4k | if (n == 0) Branch (518:13): [True: 1, False: 51.4k]
|
519 | 1 | return OP_0; |
520 | 51.4k | return (opcodetype)(OP_1+n-1); |
521 | 51.4k | } |
522 | | |
523 | | /** |
524 | | * Pre-version-0.6, Bitcoin always counted CHECKMULTISIGs |
525 | | * as 20 sigops. With pay-to-script-hash, that changed: |
526 | | * CHECKMULTISIGs serialized in scriptSigs are |
527 | | * counted more accurately, assuming they are of the form |
528 | | * ... OP_N CHECKMULTISIG ... |
529 | | */ |
530 | | unsigned int GetSigOpCount(bool fAccurate) const; |
531 | | |
532 | | /** |
533 | | * Accurately count sigOps, including sigOps in |
534 | | * pay-to-script-hash transactions: |
535 | | */ |
536 | | unsigned int GetSigOpCount(const CScript& scriptSig) const; |
537 | | |
538 | | /* |
539 | | * OP_1 <0x4e73> |
540 | | */ |
541 | | bool IsPayToAnchor() const; |
542 | | /** Checks if output of IsWitnessProgram comes from a P2A output script |
543 | | */ |
544 | | static bool IsPayToAnchor(int version, const std::vector<unsigned char>& program); |
545 | | |
546 | | bool IsPayToScriptHash() const; |
547 | | bool IsPayToWitnessScriptHash() const; |
548 | | bool IsWitnessProgram(int& version, std::vector<unsigned char>& program) const; |
549 | | |
550 | | bool IsPayToTaproot() const; |
551 | | |
552 | | /** Called by IsStandardTx and P2SH/BIP62 VerifyScript (which makes it consensus-critical). */ |
553 | | bool IsPushOnly(const_iterator pc) const; |
554 | | bool IsPushOnly() const; |
555 | | |
556 | | /** Check if the script contains valid OP_CODES */ |
557 | | bool HasValidOps() const; |
558 | | |
559 | | /** |
560 | | * Returns whether the script is guaranteed to fail at execution, |
561 | | * regardless of the initial stack. This allows outputs to be pruned |
562 | | * instantly when entering the UTXO set. |
563 | | */ |
564 | | bool IsUnspendable() const |
565 | 121M | { |
566 | 121M | return (size() > 0 && *begin() == OP_RETURN) || (size() > MAX_SCRIPT_SIZE); Branch (566:17): [True: 120M, False: 57.8k]
Branch (566:31): [True: 1.21M, False: 119M]
Branch (566:57): [True: 39.4k, False: 119M]
|
567 | 121M | } |
568 | | |
569 | | void clear() |
570 | 103M | { |
571 | | // The default prevector::clear() does not release memory |
572 | 103M | CScriptBase::clear(); |
573 | 103M | shrink_to_fit(); |
574 | 103M | } |
575 | | }; |
576 | | |
577 | | struct CScriptWitness |
578 | | { |
579 | | // Note that this encodes the data elements being pushed, rather than |
580 | | // encoding them as a CScript that pushes them. |
581 | | std::vector<std::vector<unsigned char> > stack; |
582 | | |
583 | | // Some compilers complain without a default constructor |
584 | 67.0M | CScriptWitness() = default; |
585 | | |
586 | 42.4M | bool IsNull() const { return stack.empty(); } |
587 | | |
588 | 3.69k | void SetNull() { stack.clear(); stack.shrink_to_fit(); } |
589 | | |
590 | | std::string ToString() const; |
591 | | |
592 | 13.8k | bool operator==(const CScriptWitness&) const = default; |
593 | | }; |
594 | | |
595 | | /** A reference to a CScript: the Hash160 of its serialization */ |
596 | | class CScriptID : public BaseHash<uint160> |
597 | | { |
598 | | public: |
599 | 5.89M | CScriptID() : BaseHash() {} |
600 | | explicit CScriptID(const CScript& in); |
601 | 746k | explicit CScriptID(const uint160& in) : BaseHash(in) {} |
602 | | }; |
603 | | |
604 | | /** Test for OP_SUCCESSx opcodes as defined by BIP342. */ |
605 | | bool IsOpSuccess(const opcodetype& opcode); |
606 | | |
607 | | bool CheckMinimalPush(const std::vector<unsigned char>& data, opcodetype opcode); |
608 | | |
609 | | /** Build a script by concatenating other scripts, or any argument accepted by CScript::operator<<. */ |
610 | | template<typename... Ts> |
611 | | CScript BuildScript(Ts&&... inputs) |
612 | 4.62M | { |
613 | 4.62M | CScript ret; |
614 | 4.62M | int cnt{0}; |
615 | | |
616 | 10.7M | ([&ret, &cnt] (Ts&& input) { |
617 | 10.7M | if constexpr (std::is_same_v<std::remove_cv_t<std::remove_reference_t<Ts>>, CScript>) { |
618 | | // If it is a CScript, extend ret with it. Move or copy the first element instead. |
619 | 3.84M | if (cnt == 0) { Branch (619:17): [True: 0, False: 123k]
Branch (619:17): [True: 0, False: 18.1k]
Branch (619:17): [True: 1.14M, False: 0]
Branch (619:17): [True: 0, False: 10.8k]
Branch (619:17): [True: 0, False: 82.4k]
Branch (619:17): [True: 156k, False: 0]
Branch (619:17): [True: 0, False: 156k]
Branch (619:17): [True: 142k, False: 0]
Branch (619:17): [True: 0, False: 142k]
Branch (619:17): [True: 28.2k, False: 0]
Branch (619:17): [True: 0, False: 28.2k]
Branch (619:17): [True: 14.4k, False: 0]
Branch (619:17): [True: 0, False: 14.4k]
Branch (619:17): [True: 0, False: 653k]
Branch (619:17): [True: 0, False: 653k]
Branch (619:17): [True: 45.9k, False: 0]
Branch (619:17): [True: 0, False: 45.9k]
Branch (619:17): [True: 0, False: 45.9k]
Branch (619:17): [True: 151k, False: 0]
Branch (619:17): [True: 36.2k, False: 0]
Branch (619:17): [True: 92.4k, False: 0]
Branch (619:17): [True: 51.6k, False: 0]
Branch (619:17): [True: 1.20k, False: 0]
Branch (619:17): [True: 29, False: 0]
|
620 | 1.86M | ret = std::forward<Ts>(input); |
621 | 1.97M | } else { |
622 | 1.97M | ret.insert(ret.end(), input.begin(), input.end()); |
623 | 1.97M | } |
624 | 6.85M | } else { |
625 | | // Otherwise invoke CScript::operator<<. |
626 | 6.85M | ret << input; |
627 | 6.85M | } |
628 | 10.7M | cnt++; |
629 | 10.7M | } (std::forward<Ts>(inputs)), ...); _ZZ11BuildScriptIJSt6vectorIhSaIhEEEE7CScriptDpOT_ENKUlOS2_E_clES7_ Line | Count | Source | 616 | 92.6k | ([&ret, &cnt] (Ts&& input) { | 617 | | if constexpr (std::is_same_v<std::remove_cv_t<std::remove_reference_t<Ts>>, CScript>) { | 618 | | // If it is a CScript, extend ret with it. Move or copy the first element instead. | 619 | | if (cnt == 0) { | 620 | | ret = std::forward<Ts>(input); | 621 | | } else { | 622 | | ret.insert(ret.end(), input.begin(), input.end()); | 623 | | } | 624 | 92.6k | } else { | 625 | | // Otherwise invoke CScript::operator<<. | 626 | 92.6k | ret << input; | 627 | 92.6k | } | 628 | 92.6k | cnt++; | 629 | 92.6k | } (std::forward<Ts>(inputs)), ...); |
_ZZ11BuildScriptIJ10opcodetypeS0_St6vectorIhSaIhEES0_EE7CScriptDpOT_ENKUlOS0_E1_clES8_ Line | Count | Source | 616 | 36.2k | ([&ret, &cnt] (Ts&& input) { | 617 | | if constexpr (std::is_same_v<std::remove_cv_t<std::remove_reference_t<Ts>>, CScript>) { | 618 | | // If it is a CScript, extend ret with it. Move or copy the first element instead. | 619 | | if (cnt == 0) { | 620 | | ret = std::forward<Ts>(input); | 621 | | } else { | 622 | | ret.insert(ret.end(), input.begin(), input.end()); | 623 | | } | 624 | 36.2k | } else { | 625 | | // Otherwise invoke CScript::operator<<. | 626 | 36.2k | ret << input; | 627 | 36.2k | } | 628 | 36.2k | cnt++; | 629 | 36.2k | } (std::forward<Ts>(inputs)), ...); |
_ZZ11BuildScriptIJ10opcodetypeS0_St6vectorIhSaIhEES0_EE7CScriptDpOT_ENKUlOS0_E0_clES8_ Line | Count | Source | 616 | 36.2k | ([&ret, &cnt] (Ts&& input) { | 617 | | if constexpr (std::is_same_v<std::remove_cv_t<std::remove_reference_t<Ts>>, CScript>) { | 618 | | // If it is a CScript, extend ret with it. Move or copy the first element instead. | 619 | | if (cnt == 0) { | 620 | | ret = std::forward<Ts>(input); | 621 | | } else { | 622 | | ret.insert(ret.end(), input.begin(), input.end()); | 623 | | } | 624 | 36.2k | } else { | 625 | | // Otherwise invoke CScript::operator<<. | 626 | 36.2k | ret << input; | 627 | 36.2k | } | 628 | 36.2k | cnt++; | 629 | 36.2k | } (std::forward<Ts>(inputs)), ...); |
_ZZ11BuildScriptIJ10opcodetypeS0_St6vectorIhSaIhEES0_EE7CScriptDpOT_ENKUlOS3_E_clES8_ Line | Count | Source | 616 | 36.2k | ([&ret, &cnt] (Ts&& input) { | 617 | | if constexpr (std::is_same_v<std::remove_cv_t<std::remove_reference_t<Ts>>, CScript>) { | 618 | | // If it is a CScript, extend ret with it. Move or copy the first element instead. | 619 | | if (cnt == 0) { | 620 | | ret = std::forward<Ts>(input); | 621 | | } else { | 622 | | ret.insert(ret.end(), input.begin(), input.end()); | 623 | | } | 624 | 36.2k | } else { | 625 | | // Otherwise invoke CScript::operator<<. | 626 | 36.2k | ret << input; | 627 | 36.2k | } | 628 | 36.2k | cnt++; | 629 | 36.2k | } (std::forward<Ts>(inputs)), ...); |
_ZZ11BuildScriptIJ10opcodetypeS0_St6vectorIhSaIhEES0_EE7CScriptDpOT_ENKUlOS0_E_clES8_ Line | Count | Source | 616 | 36.2k | ([&ret, &cnt] (Ts&& input) { | 617 | | if constexpr (std::is_same_v<std::remove_cv_t<std::remove_reference_t<Ts>>, CScript>) { | 618 | | // If it is a CScript, extend ret with it. Move or copy the first element instead. | 619 | | if (cnt == 0) { | 620 | | ret = std::forward<Ts>(input); | 621 | | } else { | 622 | | ret.insert(ret.end(), input.begin(), input.end()); | 623 | | } | 624 | 36.2k | } else { | 625 | | // Otherwise invoke CScript::operator<<. | 626 | 36.2k | ret << input; | 627 | 36.2k | } | 628 | 36.2k | cnt++; | 629 | 36.2k | } (std::forward<Ts>(inputs)), ...); |
_ZZ11BuildScriptIJRKj10opcodetypeEE7CScriptDpOT_ENKUlS1_E_clES1_ Line | Count | Source | 616 | 30.8k | ([&ret, &cnt] (Ts&& input) { | 617 | | if constexpr (std::is_same_v<std::remove_cv_t<std::remove_reference_t<Ts>>, CScript>) { | 618 | | // If it is a CScript, extend ret with it. Move or copy the first element instead. | 619 | | if (cnt == 0) { | 620 | | ret = std::forward<Ts>(input); | 621 | | } else { | 622 | | ret.insert(ret.end(), input.begin(), input.end()); | 623 | | } | 624 | 30.8k | } else { | 625 | | // Otherwise invoke CScript::operator<<. | 626 | 30.8k | ret << input; | 627 | 30.8k | } | 628 | 30.8k | cnt++; | 629 | 30.8k | } (std::forward<Ts>(inputs)), ...); |
_ZZ11BuildScriptIJRKj10opcodetypeEE7CScriptDpOT_ENKUlOS2_E_clES7_ Line | Count | Source | 616 | 30.8k | ([&ret, &cnt] (Ts&& input) { | 617 | | if constexpr (std::is_same_v<std::remove_cv_t<std::remove_reference_t<Ts>>, CScript>) { | 618 | | // If it is a CScript, extend ret with it. Move or copy the first element instead. | 619 | | if (cnt == 0) { | 620 | | ret = std::forward<Ts>(input); | 621 | | } else { | 622 | | ret.insert(ret.end(), input.begin(), input.end()); | 623 | | } | 624 | 30.8k | } else { | 625 | | // Otherwise invoke CScript::operator<<. | 626 | 30.8k | ret << input; | 627 | 30.8k | } | 628 | 30.8k | cnt++; | 629 | 30.8k | } (std::forward<Ts>(inputs)), ...); |
_ZZ11BuildScriptIJ10opcodetypeiS0_S0_RKSt6vectorIhSaIhEES0_EE7CScriptDpOT_ENKUlOS0_E2_clESA_ Line | Count | Source | 616 | 39.7k | ([&ret, &cnt] (Ts&& input) { | 617 | | if constexpr (std::is_same_v<std::remove_cv_t<std::remove_reference_t<Ts>>, CScript>) { | 618 | | // If it is a CScript, extend ret with it. Move or copy the first element instead. | 619 | | if (cnt == 0) { | 620 | | ret = std::forward<Ts>(input); | 621 | | } else { | 622 | | ret.insert(ret.end(), input.begin(), input.end()); | 623 | | } | 624 | 39.7k | } else { | 625 | | // Otherwise invoke CScript::operator<<. | 626 | 39.7k | ret << input; | 627 | 39.7k | } | 628 | 39.7k | cnt++; | 629 | 39.7k | } (std::forward<Ts>(inputs)), ...); |
_ZZ11BuildScriptIJ10opcodetypeiS0_S0_RKSt6vectorIhSaIhEES0_EE7CScriptDpOT_ENKUlOiE_clESA_ Line | Count | Source | 616 | 39.7k | ([&ret, &cnt] (Ts&& input) { | 617 | | if constexpr (std::is_same_v<std::remove_cv_t<std::remove_reference_t<Ts>>, CScript>) { | 618 | | // If it is a CScript, extend ret with it. Move or copy the first element instead. | 619 | | if (cnt == 0) { | 620 | | ret = std::forward<Ts>(input); | 621 | | } else { | 622 | | ret.insert(ret.end(), input.begin(), input.end()); | 623 | | } | 624 | 39.7k | } else { | 625 | | // Otherwise invoke CScript::operator<<. | 626 | 39.7k | ret << input; | 627 | 39.7k | } | 628 | 39.7k | cnt++; | 629 | 39.7k | } (std::forward<Ts>(inputs)), ...); |
_ZZ11BuildScriptIJ10opcodetypeiS0_S0_RKSt6vectorIhSaIhEES0_EE7CScriptDpOT_ENKUlOS0_E1_clESA_ Line | Count | Source | 616 | 39.7k | ([&ret, &cnt] (Ts&& input) { | 617 | | if constexpr (std::is_same_v<std::remove_cv_t<std::remove_reference_t<Ts>>, CScript>) { | 618 | | // If it is a CScript, extend ret with it. Move or copy the first element instead. | 619 | | if (cnt == 0) { | 620 | | ret = std::forward<Ts>(input); | 621 | | } else { | 622 | | ret.insert(ret.end(), input.begin(), input.end()); | 623 | | } | 624 | 39.7k | } else { | 625 | | // Otherwise invoke CScript::operator<<. | 626 | 39.7k | ret << input; | 627 | 39.7k | } | 628 | 39.7k | cnt++; | 629 | 39.7k | } (std::forward<Ts>(inputs)), ...); |
_ZZ11BuildScriptIJ10opcodetypeiS0_S0_RKSt6vectorIhSaIhEES0_EE7CScriptDpOT_ENKUlOS0_E0_clESA_ Line | Count | Source | 616 | 39.7k | ([&ret, &cnt] (Ts&& input) { | 617 | | if constexpr (std::is_same_v<std::remove_cv_t<std::remove_reference_t<Ts>>, CScript>) { | 618 | | // If it is a CScript, extend ret with it. Move or copy the first element instead. | 619 | | if (cnt == 0) { | 620 | | ret = std::forward<Ts>(input); | 621 | | } else { | 622 | | ret.insert(ret.end(), input.begin(), input.end()); | 623 | | } | 624 | 39.7k | } else { | 625 | | // Otherwise invoke CScript::operator<<. | 626 | 39.7k | ret << input; | 627 | 39.7k | } | 628 | 39.7k | cnt++; | 629 | 39.7k | } (std::forward<Ts>(inputs)), ...); |
_ZZ11BuildScriptIJ10opcodetypeiS0_S0_RKSt6vectorIhSaIhEES0_EE7CScriptDpOT_ENKUlS5_E_clES5_ Line | Count | Source | 616 | 39.7k | ([&ret, &cnt] (Ts&& input) { | 617 | | if constexpr (std::is_same_v<std::remove_cv_t<std::remove_reference_t<Ts>>, CScript>) { | 618 | | // If it is a CScript, extend ret with it. Move or copy the first element instead. | 619 | | if (cnt == 0) { | 620 | | ret = std::forward<Ts>(input); | 621 | | } else { | 622 | | ret.insert(ret.end(), input.begin(), input.end()); | 623 | | } | 624 | 39.7k | } else { | 625 | | // Otherwise invoke CScript::operator<<. | 626 | 39.7k | ret << input; | 627 | 39.7k | } | 628 | 39.7k | cnt++; | 629 | 39.7k | } (std::forward<Ts>(inputs)), ...); |
_ZZ11BuildScriptIJ10opcodetypeiS0_S0_RKSt6vectorIhSaIhEES0_EE7CScriptDpOT_ENKUlOS0_E_clESA_ Line | Count | Source | 616 | 39.7k | ([&ret, &cnt] (Ts&& input) { | 617 | | if constexpr (std::is_same_v<std::remove_cv_t<std::remove_reference_t<Ts>>, CScript>) { | 618 | | // If it is a CScript, extend ret with it. Move or copy the first element instead. | 619 | | if (cnt == 0) { | 620 | | ret = std::forward<Ts>(input); | 621 | | } else { | 622 | | ret.insert(ret.end(), input.begin(), input.end()); | 623 | | } | 624 | 39.7k | } else { | 625 | | // Otherwise invoke CScript::operator<<. | 626 | 39.7k | ret << input; | 627 | 39.7k | } | 628 | 39.7k | cnt++; | 629 | 39.7k | } (std::forward<Ts>(inputs)), ...); |
_ZZ11BuildScriptIJ10opcodetypeR7CScriptS0_EES1_DpOT_ENKUlOS0_E0_clES6_ Line | Count | Source | 616 | 123k | ([&ret, &cnt] (Ts&& input) { | 617 | | if constexpr (std::is_same_v<std::remove_cv_t<std::remove_reference_t<Ts>>, CScript>) { | 618 | | // If it is a CScript, extend ret with it. Move or copy the first element instead. | 619 | | if (cnt == 0) { | 620 | | ret = std::forward<Ts>(input); | 621 | | } else { | 622 | | ret.insert(ret.end(), input.begin(), input.end()); | 623 | | } | 624 | 123k | } else { | 625 | | // Otherwise invoke CScript::operator<<. | 626 | 123k | ret << input; | 627 | 123k | } | 628 | 123k | cnt++; | 629 | 123k | } (std::forward<Ts>(inputs)), ...); |
_ZZ11BuildScriptIJ10opcodetypeR7CScriptS0_EES1_DpOT_ENKUlS2_E_clES2_ Line | Count | Source | 616 | 123k | ([&ret, &cnt] (Ts&& input) { | 617 | 123k | if constexpr (std::is_same_v<std::remove_cv_t<std::remove_reference_t<Ts>>, CScript>) { | 618 | | // If it is a CScript, extend ret with it. Move or copy the first element instead. | 619 | 123k | if (cnt == 0) { Branch (619:17): [True: 0, False: 123k]
| 620 | 0 | ret = std::forward<Ts>(input); | 621 | 123k | } else { | 622 | 123k | ret.insert(ret.end(), input.begin(), input.end()); | 623 | 123k | } | 624 | | } else { | 625 | | // Otherwise invoke CScript::operator<<. | 626 | | ret << input; | 627 | | } | 628 | 123k | cnt++; | 629 | 123k | } (std::forward<Ts>(inputs)), ...); |
_ZZ11BuildScriptIJ10opcodetypeR7CScriptS0_EES1_DpOT_ENKUlOS0_E_clES6_ Line | Count | Source | 616 | 123k | ([&ret, &cnt] (Ts&& input) { | 617 | | if constexpr (std::is_same_v<std::remove_cv_t<std::remove_reference_t<Ts>>, CScript>) { | 618 | | // If it is a CScript, extend ret with it. Move or copy the first element instead. | 619 | | if (cnt == 0) { | 620 | | ret = std::forward<Ts>(input); | 621 | | } else { | 622 | | ret.insert(ret.end(), input.begin(), input.end()); | 623 | | } | 624 | 123k | } else { | 625 | | // Otherwise invoke CScript::operator<<. | 626 | 123k | ret << input; | 627 | 123k | } | 628 | 123k | cnt++; | 629 | 123k | } (std::forward<Ts>(inputs)), ...); |
_ZZ11BuildScriptIJ10opcodetypeR7CScriptEES1_DpOT_ENKUlOS0_E_clES6_ Line | Count | Source | 616 | 18.1k | ([&ret, &cnt] (Ts&& input) { | 617 | | if constexpr (std::is_same_v<std::remove_cv_t<std::remove_reference_t<Ts>>, CScript>) { | 618 | | // If it is a CScript, extend ret with it. Move or copy the first element instead. | 619 | | if (cnt == 0) { | 620 | | ret = std::forward<Ts>(input); | 621 | | } else { | 622 | | ret.insert(ret.end(), input.begin(), input.end()); | 623 | | } | 624 | 18.1k | } else { | 625 | | // Otherwise invoke CScript::operator<<. | 626 | 18.1k | ret << input; | 627 | 18.1k | } | 628 | 18.1k | cnt++; | 629 | 18.1k | } (std::forward<Ts>(inputs)), ...); |
_ZZ11BuildScriptIJ10opcodetypeR7CScriptEES1_DpOT_ENKUlS2_E_clES2_ Line | Count | Source | 616 | 18.1k | ([&ret, &cnt] (Ts&& input) { | 617 | 18.1k | if constexpr (std::is_same_v<std::remove_cv_t<std::remove_reference_t<Ts>>, CScript>) { | 618 | | // If it is a CScript, extend ret with it. Move or copy the first element instead. | 619 | 18.1k | if (cnt == 0) { Branch (619:17): [True: 0, False: 18.1k]
| 620 | 0 | ret = std::forward<Ts>(input); | 621 | 18.1k | } else { | 622 | 18.1k | ret.insert(ret.end(), input.begin(), input.end()); | 623 | 18.1k | } | 624 | | } else { | 625 | | // Otherwise invoke CScript::operator<<. | 626 | | ret << input; | 627 | | } | 628 | 18.1k | cnt++; | 629 | 18.1k | } (std::forward<Ts>(inputs)), ...); |
_ZZ11BuildScriptIJ7CScript10opcodetypeEES0_DpOT_ENKUlOS0_E_clES5_ Line | Count | Source | 616 | 1.14M | ([&ret, &cnt] (Ts&& input) { | 617 | 1.14M | if constexpr (std::is_same_v<std::remove_cv_t<std::remove_reference_t<Ts>>, CScript>) { | 618 | | // If it is a CScript, extend ret with it. Move or copy the first element instead. | 619 | 1.14M | if (cnt == 0) { Branch (619:17): [True: 1.14M, False: 0]
| 620 | 1.14M | ret = std::forward<Ts>(input); | 621 | 1.14M | } else { | 622 | 0 | ret.insert(ret.end(), input.begin(), input.end()); | 623 | 0 | } | 624 | | } else { | 625 | | // Otherwise invoke CScript::operator<<. | 626 | | ret << input; | 627 | | } | 628 | 1.14M | cnt++; | 629 | 1.14M | } (std::forward<Ts>(inputs)), ...); |
_ZZ11BuildScriptIJ7CScript10opcodetypeEES0_DpOT_ENKUlOS1_E_clES5_ Line | Count | Source | 616 | 1.14M | ([&ret, &cnt] (Ts&& input) { | 617 | | if constexpr (std::is_same_v<std::remove_cv_t<std::remove_reference_t<Ts>>, CScript>) { | 618 | | // If it is a CScript, extend ret with it. Move or copy the first element instead. | 619 | | if (cnt == 0) { | 620 | | ret = std::forward<Ts>(input); | 621 | | } else { | 622 | | ret.insert(ret.end(), input.begin(), input.end()); | 623 | | } | 624 | 1.14M | } else { | 625 | | // Otherwise invoke CScript::operator<<. | 626 | 1.14M | ret << input; | 627 | 1.14M | } | 628 | 1.14M | cnt++; | 629 | 1.14M | } (std::forward<Ts>(inputs)), ...); |
_ZZ11BuildScriptIJ10opcodetypeS0_R7CScriptS0_EES1_DpOT_ENKUlOS0_E1_clES6_ Line | Count | Source | 616 | 10.8k | ([&ret, &cnt] (Ts&& input) { | 617 | | if constexpr (std::is_same_v<std::remove_cv_t<std::remove_reference_t<Ts>>, CScript>) { | 618 | | // If it is a CScript, extend ret with it. Move or copy the first element instead. | 619 | | if (cnt == 0) { | 620 | | ret = std::forward<Ts>(input); | 621 | | } else { | 622 | | ret.insert(ret.end(), input.begin(), input.end()); | 623 | | } | 624 | 10.8k | } else { | 625 | | // Otherwise invoke CScript::operator<<. | 626 | 10.8k | ret << input; | 627 | 10.8k | } | 628 | 10.8k | cnt++; | 629 | 10.8k | } (std::forward<Ts>(inputs)), ...); |
_ZZ11BuildScriptIJ10opcodetypeS0_R7CScriptS0_EES1_DpOT_ENKUlOS0_E0_clES6_ Line | Count | Source | 616 | 10.8k | ([&ret, &cnt] (Ts&& input) { | 617 | | if constexpr (std::is_same_v<std::remove_cv_t<std::remove_reference_t<Ts>>, CScript>) { | 618 | | // If it is a CScript, extend ret with it. Move or copy the first element instead. | 619 | | if (cnt == 0) { | 620 | | ret = std::forward<Ts>(input); | 621 | | } else { | 622 | | ret.insert(ret.end(), input.begin(), input.end()); | 623 | | } | 624 | 10.8k | } else { | 625 | | // Otherwise invoke CScript::operator<<. | 626 | 10.8k | ret << input; | 627 | 10.8k | } | 628 | 10.8k | cnt++; | 629 | 10.8k | } (std::forward<Ts>(inputs)), ...); |
_ZZ11BuildScriptIJ10opcodetypeS0_R7CScriptS0_EES1_DpOT_ENKUlS2_E_clES2_ Line | Count | Source | 616 | 10.8k | ([&ret, &cnt] (Ts&& input) { | 617 | 10.8k | if constexpr (std::is_same_v<std::remove_cv_t<std::remove_reference_t<Ts>>, CScript>) { | 618 | | // If it is a CScript, extend ret with it. Move or copy the first element instead. | 619 | 10.8k | if (cnt == 0) { Branch (619:17): [True: 0, False: 10.8k]
| 620 | 0 | ret = std::forward<Ts>(input); | 621 | 10.8k | } else { | 622 | 10.8k | ret.insert(ret.end(), input.begin(), input.end()); | 623 | 10.8k | } | 624 | | } else { | 625 | | // Otherwise invoke CScript::operator<<. | 626 | | ret << input; | 627 | | } | 628 | 10.8k | cnt++; | 629 | 10.8k | } (std::forward<Ts>(inputs)), ...); |
_ZZ11BuildScriptIJ10opcodetypeS0_R7CScriptS0_EES1_DpOT_ENKUlOS0_E_clES6_ Line | Count | Source | 616 | 10.8k | ([&ret, &cnt] (Ts&& input) { | 617 | | if constexpr (std::is_same_v<std::remove_cv_t<std::remove_reference_t<Ts>>, CScript>) { | 618 | | // If it is a CScript, extend ret with it. Move or copy the first element instead. | 619 | | if (cnt == 0) { | 620 | | ret = std::forward<Ts>(input); | 621 | | } else { | 622 | | ret.insert(ret.end(), input.begin(), input.end()); | 623 | | } | 624 | 10.8k | } else { | 625 | | // Otherwise invoke CScript::operator<<. | 626 | 10.8k | ret << input; | 627 | 10.8k | } | 628 | 10.8k | cnt++; | 629 | 10.8k | } (std::forward<Ts>(inputs)), ...); |
_ZZ11BuildScriptIJ10opcodetypeS0_S0_R7CScriptS0_EES1_DpOT_ENKUlOS0_E2_clES6_ Line | Count | Source | 616 | 82.4k | ([&ret, &cnt] (Ts&& input) { | 617 | | if constexpr (std::is_same_v<std::remove_cv_t<std::remove_reference_t<Ts>>, CScript>) { | 618 | | // If it is a CScript, extend ret with it. Move or copy the first element instead. | 619 | | if (cnt == 0) { | 620 | | ret = std::forward<Ts>(input); | 621 | | } else { | 622 | | ret.insert(ret.end(), input.begin(), input.end()); | 623 | | } | 624 | 82.4k | } else { | 625 | | // Otherwise invoke CScript::operator<<. | 626 | 82.4k | ret << input; | 627 | 82.4k | } | 628 | 82.4k | cnt++; | 629 | 82.4k | } (std::forward<Ts>(inputs)), ...); |
_ZZ11BuildScriptIJ10opcodetypeS0_S0_R7CScriptS0_EES1_DpOT_ENKUlOS0_E1_clES6_ Line | Count | Source | 616 | 82.4k | ([&ret, &cnt] (Ts&& input) { | 617 | | if constexpr (std::is_same_v<std::remove_cv_t<std::remove_reference_t<Ts>>, CScript>) { | 618 | | // If it is a CScript, extend ret with it. Move or copy the first element instead. | 619 | | if (cnt == 0) { | 620 | | ret = std::forward<Ts>(input); | 621 | | } else { | 622 | | ret.insert(ret.end(), input.begin(), input.end()); | 623 | | } | 624 | 82.4k | } else { | 625 | | // Otherwise invoke CScript::operator<<. | 626 | 82.4k | ret << input; | 627 | 82.4k | } | 628 | 82.4k | cnt++; | 629 | 82.4k | } (std::forward<Ts>(inputs)), ...); |
_ZZ11BuildScriptIJ10opcodetypeS0_S0_R7CScriptS0_EES1_DpOT_ENKUlOS0_E0_clES6_ Line | Count | Source | 616 | 82.4k | ([&ret, &cnt] (Ts&& input) { | 617 | | if constexpr (std::is_same_v<std::remove_cv_t<std::remove_reference_t<Ts>>, CScript>) { | 618 | | // If it is a CScript, extend ret with it. Move or copy the first element instead. | 619 | | if (cnt == 0) { | 620 | | ret = std::forward<Ts>(input); | 621 | | } else { | 622 | | ret.insert(ret.end(), input.begin(), input.end()); | 623 | | } | 624 | 82.4k | } else { | 625 | | // Otherwise invoke CScript::operator<<. | 626 | 82.4k | ret << input; | 627 | 82.4k | } | 628 | 82.4k | cnt++; | 629 | 82.4k | } (std::forward<Ts>(inputs)), ...); |
_ZZ11BuildScriptIJ10opcodetypeS0_S0_R7CScriptS0_EES1_DpOT_ENKUlS2_E_clES2_ Line | Count | Source | 616 | 82.4k | ([&ret, &cnt] (Ts&& input) { | 617 | 82.4k | if constexpr (std::is_same_v<std::remove_cv_t<std::remove_reference_t<Ts>>, CScript>) { | 618 | | // If it is a CScript, extend ret with it. Move or copy the first element instead. | 619 | 82.4k | if (cnt == 0) { Branch (619:17): [True: 0, False: 82.4k]
| 620 | 0 | ret = std::forward<Ts>(input); | 621 | 82.4k | } else { | 622 | 82.4k | ret.insert(ret.end(), input.begin(), input.end()); | 623 | 82.4k | } | 624 | | } else { | 625 | | // Otherwise invoke CScript::operator<<. | 626 | | ret << input; | 627 | | } | 628 | 82.4k | cnt++; | 629 | 82.4k | } (std::forward<Ts>(inputs)), ...); |
_ZZ11BuildScriptIJ10opcodetypeS0_S0_R7CScriptS0_EES1_DpOT_ENKUlOS0_E_clES6_ Line | Count | Source | 616 | 82.4k | ([&ret, &cnt] (Ts&& input) { | 617 | | if constexpr (std::is_same_v<std::remove_cv_t<std::remove_reference_t<Ts>>, CScript>) { | 618 | | // If it is a CScript, extend ret with it. Move or copy the first element instead. | 619 | | if (cnt == 0) { | 620 | | ret = std::forward<Ts>(input); | 621 | | } else { | 622 | | ret.insert(ret.end(), input.begin(), input.end()); | 623 | | } | 624 | 82.4k | } else { | 625 | | // Otherwise invoke CScript::operator<<. | 626 | 82.4k | ret << input; | 627 | 82.4k | } | 628 | 82.4k | cnt++; | 629 | 82.4k | } (std::forward<Ts>(inputs)), ...); |
_ZZ11BuildScriptIJ10opcodetypeEE7CScriptDpOT_ENKUlOS0_E_clES5_ Line | Count | Source | 616 | 930k | ([&ret, &cnt] (Ts&& input) { | 617 | | if constexpr (std::is_same_v<std::remove_cv_t<std::remove_reference_t<Ts>>, CScript>) { | 618 | | // If it is a CScript, extend ret with it. Move or copy the first element instead. | 619 | | if (cnt == 0) { | 620 | | ret = std::forward<Ts>(input); | 621 | | } else { | 622 | | ret.insert(ret.end(), input.begin(), input.end()); | 623 | | } | 624 | 930k | } else { | 625 | | // Otherwise invoke CScript::operator<<. | 626 | 930k | ret << input; | 627 | 930k | } | 628 | 930k | cnt++; | 629 | 930k | } (std::forward<Ts>(inputs)), ...); |
_ZZ11BuildScriptIJ7CScriptRS0_EES0_DpOT_ENKUlOS0_E_clES5_ Line | Count | Source | 616 | 156k | ([&ret, &cnt] (Ts&& input) { | 617 | 156k | if constexpr (std::is_same_v<std::remove_cv_t<std::remove_reference_t<Ts>>, CScript>) { | 618 | | // If it is a CScript, extend ret with it. Move or copy the first element instead. | 619 | 156k | if (cnt == 0) { Branch (619:17): [True: 156k, False: 0]
| 620 | 156k | ret = std::forward<Ts>(input); | 621 | 156k | } else { | 622 | 0 | ret.insert(ret.end(), input.begin(), input.end()); | 623 | 0 | } | 624 | | } else { | 625 | | // Otherwise invoke CScript::operator<<. | 626 | | ret << input; | 627 | | } | 628 | 156k | cnt++; | 629 | 156k | } (std::forward<Ts>(inputs)), ...); |
_ZZ11BuildScriptIJ7CScriptRS0_EES0_DpOT_ENKUlS1_E_clES1_ Line | Count | Source | 616 | 156k | ([&ret, &cnt] (Ts&& input) { | 617 | 156k | if constexpr (std::is_same_v<std::remove_cv_t<std::remove_reference_t<Ts>>, CScript>) { | 618 | | // If it is a CScript, extend ret with it. Move or copy the first element instead. | 619 | 156k | if (cnt == 0) { Branch (619:17): [True: 0, False: 156k]
| 620 | 0 | ret = std::forward<Ts>(input); | 621 | 156k | } else { | 622 | 156k | ret.insert(ret.end(), input.begin(), input.end()); | 623 | 156k | } | 624 | | } else { | 625 | | // Otherwise invoke CScript::operator<<. | 626 | | ret << input; | 627 | | } | 628 | 156k | cnt++; | 629 | 156k | } (std::forward<Ts>(inputs)), ...); |
_ZZ11BuildScriptIJ7CScriptRS0_10opcodetypeEES0_DpOT_ENKUlOS0_E_clES6_ Line | Count | Source | 616 | 142k | ([&ret, &cnt] (Ts&& input) { | 617 | 142k | if constexpr (std::is_same_v<std::remove_cv_t<std::remove_reference_t<Ts>>, CScript>) { | 618 | | // If it is a CScript, extend ret with it. Move or copy the first element instead. | 619 | 142k | if (cnt == 0) { Branch (619:17): [True: 142k, False: 0]
| 620 | 142k | ret = std::forward<Ts>(input); | 621 | 142k | } else { | 622 | 0 | ret.insert(ret.end(), input.begin(), input.end()); | 623 | 0 | } | 624 | | } else { | 625 | | // Otherwise invoke CScript::operator<<. | 626 | | ret << input; | 627 | | } | 628 | 142k | cnt++; | 629 | 142k | } (std::forward<Ts>(inputs)), ...); |
_ZZ11BuildScriptIJ7CScriptRS0_10opcodetypeEES0_DpOT_ENKUlS1_E_clES1_ Line | Count | Source | 616 | 142k | ([&ret, &cnt] (Ts&& input) { | 617 | 142k | if constexpr (std::is_same_v<std::remove_cv_t<std::remove_reference_t<Ts>>, CScript>) { | 618 | | // If it is a CScript, extend ret with it. Move or copy the first element instead. | 619 | 142k | if (cnt == 0) { Branch (619:17): [True: 0, False: 142k]
| 620 | 0 | ret = std::forward<Ts>(input); | 621 | 142k | } else { | 622 | 142k | ret.insert(ret.end(), input.begin(), input.end()); | 623 | 142k | } | 624 | | } else { | 625 | | // Otherwise invoke CScript::operator<<. | 626 | | ret << input; | 627 | | } | 628 | 142k | cnt++; | 629 | 142k | } (std::forward<Ts>(inputs)), ...); |
_ZZ11BuildScriptIJ7CScriptRS0_10opcodetypeEES0_DpOT_ENKUlOS2_E_clES6_ Line | Count | Source | 616 | 142k | ([&ret, &cnt] (Ts&& input) { | 617 | | if constexpr (std::is_same_v<std::remove_cv_t<std::remove_reference_t<Ts>>, CScript>) { | 618 | | // If it is a CScript, extend ret with it. Move or copy the first element instead. | 619 | | if (cnt == 0) { | 620 | | ret = std::forward<Ts>(input); | 621 | | } else { | 622 | | ret.insert(ret.end(), input.begin(), input.end()); | 623 | | } | 624 | 142k | } else { | 625 | | // Otherwise invoke CScript::operator<<. | 626 | 142k | ret << input; | 627 | 142k | } | 628 | 142k | cnt++; | 629 | 142k | } (std::forward<Ts>(inputs)), ...); |
_ZZ11BuildScriptIJ7CScript10opcodetypeS1_RS0_S1_EES0_DpOT_ENKUlOS0_E_clES6_ Line | Count | Source | 616 | 28.2k | ([&ret, &cnt] (Ts&& input) { | 617 | 28.2k | if constexpr (std::is_same_v<std::remove_cv_t<std::remove_reference_t<Ts>>, CScript>) { | 618 | | // If it is a CScript, extend ret with it. Move or copy the first element instead. | 619 | 28.2k | if (cnt == 0) { Branch (619:17): [True: 28.2k, False: 0]
| 620 | 28.2k | ret = std::forward<Ts>(input); | 621 | 28.2k | } else { | 622 | 0 | ret.insert(ret.end(), input.begin(), input.end()); | 623 | 0 | } | 624 | | } else { | 625 | | // Otherwise invoke CScript::operator<<. | 626 | | ret << input; | 627 | | } | 628 | 28.2k | cnt++; | 629 | 28.2k | } (std::forward<Ts>(inputs)), ...); |
_ZZ11BuildScriptIJ7CScript10opcodetypeS1_RS0_S1_EES0_DpOT_ENKUlOS1_E1_clES6_ Line | Count | Source | 616 | 28.2k | ([&ret, &cnt] (Ts&& input) { | 617 | | if constexpr (std::is_same_v<std::remove_cv_t<std::remove_reference_t<Ts>>, CScript>) { | 618 | | // If it is a CScript, extend ret with it. Move or copy the first element instead. | 619 | | if (cnt == 0) { | 620 | | ret = std::forward<Ts>(input); | 621 | | } else { | 622 | | ret.insert(ret.end(), input.begin(), input.end()); | 623 | | } | 624 | 28.2k | } else { | 625 | | // Otherwise invoke CScript::operator<<. | 626 | 28.2k | ret << input; | 627 | 28.2k | } | 628 | 28.2k | cnt++; | 629 | 28.2k | } (std::forward<Ts>(inputs)), ...); |
_ZZ11BuildScriptIJ7CScript10opcodetypeS1_RS0_S1_EES0_DpOT_ENKUlOS1_E0_clES6_ Line | Count | Source | 616 | 28.2k | ([&ret, &cnt] (Ts&& input) { | 617 | | if constexpr (std::is_same_v<std::remove_cv_t<std::remove_reference_t<Ts>>, CScript>) { | 618 | | // If it is a CScript, extend ret with it. Move or copy the first element instead. | 619 | | if (cnt == 0) { | 620 | | ret = std::forward<Ts>(input); | 621 | | } else { | 622 | | ret.insert(ret.end(), input.begin(), input.end()); | 623 | | } | 624 | 28.2k | } else { | 625 | | // Otherwise invoke CScript::operator<<. | 626 | 28.2k | ret << input; | 627 | 28.2k | } | 628 | 28.2k | cnt++; | 629 | 28.2k | } (std::forward<Ts>(inputs)), ...); |
_ZZ11BuildScriptIJ7CScript10opcodetypeS1_RS0_S1_EES0_DpOT_ENKUlS2_E_clES2_ Line | Count | Source | 616 | 28.2k | ([&ret, &cnt] (Ts&& input) { | 617 | 28.2k | if constexpr (std::is_same_v<std::remove_cv_t<std::remove_reference_t<Ts>>, CScript>) { | 618 | | // If it is a CScript, extend ret with it. Move or copy the first element instead. | 619 | 28.2k | if (cnt == 0) { Branch (619:17): [True: 0, False: 28.2k]
| 620 | 0 | ret = std::forward<Ts>(input); | 621 | 28.2k | } else { | 622 | 28.2k | ret.insert(ret.end(), input.begin(), input.end()); | 623 | 28.2k | } | 624 | | } else { | 625 | | // Otherwise invoke CScript::operator<<. | 626 | | ret << input; | 627 | | } | 628 | 28.2k | cnt++; | 629 | 28.2k | } (std::forward<Ts>(inputs)), ...); |
_ZZ11BuildScriptIJ7CScript10opcodetypeS1_RS0_S1_EES0_DpOT_ENKUlOS1_E_clES6_ Line | Count | Source | 616 | 28.2k | ([&ret, &cnt] (Ts&& input) { | 617 | | if constexpr (std::is_same_v<std::remove_cv_t<std::remove_reference_t<Ts>>, CScript>) { | 618 | | // If it is a CScript, extend ret with it. Move or copy the first element instead. | 619 | | if (cnt == 0) { | 620 | | ret = std::forward<Ts>(input); | 621 | | } else { | 622 | | ret.insert(ret.end(), input.begin(), input.end()); | 623 | | } | 624 | 28.2k | } else { | 625 | | // Otherwise invoke CScript::operator<<. | 626 | 28.2k | ret << input; | 627 | 28.2k | } | 628 | 28.2k | cnt++; | 629 | 28.2k | } (std::forward<Ts>(inputs)), ...); |
_ZZ11BuildScriptIJ7CScript10opcodetypeRS0_S1_EES0_DpOT_ENKUlOS0_E_clES6_ Line | Count | Source | 616 | 14.4k | ([&ret, &cnt] (Ts&& input) { | 617 | 14.4k | if constexpr (std::is_same_v<std::remove_cv_t<std::remove_reference_t<Ts>>, CScript>) { | 618 | | // If it is a CScript, extend ret with it. Move or copy the first element instead. | 619 | 14.4k | if (cnt == 0) { Branch (619:17): [True: 14.4k, False: 0]
| 620 | 14.4k | ret = std::forward<Ts>(input); | 621 | 14.4k | } else { | 622 | 0 | ret.insert(ret.end(), input.begin(), input.end()); | 623 | 0 | } | 624 | | } else { | 625 | | // Otherwise invoke CScript::operator<<. | 626 | | ret << input; | 627 | | } | 628 | 14.4k | cnt++; | 629 | 14.4k | } (std::forward<Ts>(inputs)), ...); |
_ZZ11BuildScriptIJ7CScript10opcodetypeRS0_S1_EES0_DpOT_ENKUlOS1_E0_clES6_ Line | Count | Source | 616 | 14.4k | ([&ret, &cnt] (Ts&& input) { | 617 | | if constexpr (std::is_same_v<std::remove_cv_t<std::remove_reference_t<Ts>>, CScript>) { | 618 | | // If it is a CScript, extend ret with it. Move or copy the first element instead. | 619 | | if (cnt == 0) { | 620 | | ret = std::forward<Ts>(input); | 621 | | } else { | 622 | | ret.insert(ret.end(), input.begin(), input.end()); | 623 | | } | 624 | 14.4k | } else { | 625 | | // Otherwise invoke CScript::operator<<. | 626 | 14.4k | ret << input; | 627 | 14.4k | } | 628 | 14.4k | cnt++; | 629 | 14.4k | } (std::forward<Ts>(inputs)), ...); |
_ZZ11BuildScriptIJ7CScript10opcodetypeRS0_S1_EES0_DpOT_ENKUlS2_E_clES2_ Line | Count | Source | 616 | 14.4k | ([&ret, &cnt] (Ts&& input) { | 617 | 14.4k | if constexpr (std::is_same_v<std::remove_cv_t<std::remove_reference_t<Ts>>, CScript>) { | 618 | | // If it is a CScript, extend ret with it. Move or copy the first element instead. | 619 | 14.4k | if (cnt == 0) { Branch (619:17): [True: 0, False: 14.4k]
| 620 | 0 | ret = std::forward<Ts>(input); | 621 | 14.4k | } else { | 622 | 14.4k | ret.insert(ret.end(), input.begin(), input.end()); | 623 | 14.4k | } | 624 | | } else { | 625 | | // Otherwise invoke CScript::operator<<. | 626 | | ret << input; | 627 | | } | 628 | 14.4k | cnt++; | 629 | 14.4k | } (std::forward<Ts>(inputs)), ...); |
_ZZ11BuildScriptIJ7CScript10opcodetypeRS0_S1_EES0_DpOT_ENKUlOS1_E_clES6_ Line | Count | Source | 616 | 14.4k | ([&ret, &cnt] (Ts&& input) { | 617 | | if constexpr (std::is_same_v<std::remove_cv_t<std::remove_reference_t<Ts>>, CScript>) { | 618 | | // If it is a CScript, extend ret with it. Move or copy the first element instead. | 619 | | if (cnt == 0) { | 620 | | ret = std::forward<Ts>(input); | 621 | | } else { | 622 | | ret.insert(ret.end(), input.begin(), input.end()); | 623 | | } | 624 | 14.4k | } else { | 625 | | // Otherwise invoke CScript::operator<<. | 626 | 14.4k | ret << input; | 627 | 14.4k | } | 628 | 14.4k | cnt++; | 629 | 14.4k | } (std::forward<Ts>(inputs)), ...); |
_ZZ11BuildScriptIJ10opcodetypeR7CScriptS0_S2_S0_EES1_DpOT_ENKUlOS0_E1_clES6_ Line | Count | Source | 616 | 653k | ([&ret, &cnt] (Ts&& input) { | 617 | | if constexpr (std::is_same_v<std::remove_cv_t<std::remove_reference_t<Ts>>, CScript>) { | 618 | | // If it is a CScript, extend ret with it. Move or copy the first element instead. | 619 | | if (cnt == 0) { | 620 | | ret = std::forward<Ts>(input); | 621 | | } else { | 622 | | ret.insert(ret.end(), input.begin(), input.end()); | 623 | | } | 624 | 653k | } else { | 625 | | // Otherwise invoke CScript::operator<<. | 626 | 653k | ret << input; | 627 | 653k | } | 628 | 653k | cnt++; | 629 | 653k | } (std::forward<Ts>(inputs)), ...); |
_ZZ11BuildScriptIJ10opcodetypeR7CScriptS0_S2_S0_EES1_DpOT_ENKUlS2_E0_clES2_ Line | Count | Source | 616 | 653k | ([&ret, &cnt] (Ts&& input) { | 617 | 653k | if constexpr (std::is_same_v<std::remove_cv_t<std::remove_reference_t<Ts>>, CScript>) { | 618 | | // If it is a CScript, extend ret with it. Move or copy the first element instead. | 619 | 653k | if (cnt == 0) { Branch (619:17): [True: 0, False: 653k]
| 620 | 0 | ret = std::forward<Ts>(input); | 621 | 653k | } else { | 622 | 653k | ret.insert(ret.end(), input.begin(), input.end()); | 623 | 653k | } | 624 | | } else { | 625 | | // Otherwise invoke CScript::operator<<. | 626 | | ret << input; | 627 | | } | 628 | 653k | cnt++; | 629 | 653k | } (std::forward<Ts>(inputs)), ...); |
_ZZ11BuildScriptIJ10opcodetypeR7CScriptS0_S2_S0_EES1_DpOT_ENKUlOS0_E0_clES6_ Line | Count | Source | 616 | 653k | ([&ret, &cnt] (Ts&& input) { | 617 | | if constexpr (std::is_same_v<std::remove_cv_t<std::remove_reference_t<Ts>>, CScript>) { | 618 | | // If it is a CScript, extend ret with it. Move or copy the first element instead. | 619 | | if (cnt == 0) { | 620 | | ret = std::forward<Ts>(input); | 621 | | } else { | 622 | | ret.insert(ret.end(), input.begin(), input.end()); | 623 | | } | 624 | 653k | } else { | 625 | | // Otherwise invoke CScript::operator<<. | 626 | 653k | ret << input; | 627 | 653k | } | 628 | 653k | cnt++; | 629 | 653k | } (std::forward<Ts>(inputs)), ...); |
_ZZ11BuildScriptIJ10opcodetypeR7CScriptS0_S2_S0_EES1_DpOT_ENKUlS2_E_clES2_ Line | Count | Source | 616 | 653k | ([&ret, &cnt] (Ts&& input) { | 617 | 653k | if constexpr (std::is_same_v<std::remove_cv_t<std::remove_reference_t<Ts>>, CScript>) { | 618 | | // If it is a CScript, extend ret with it. Move or copy the first element instead. | 619 | 653k | if (cnt == 0) { Branch (619:17): [True: 0, False: 653k]
| 620 | 0 | ret = std::forward<Ts>(input); | 621 | 653k | } else { | 622 | 653k | ret.insert(ret.end(), input.begin(), input.end()); | 623 | 653k | } | 624 | | } else { | 625 | | // Otherwise invoke CScript::operator<<. | 626 | | ret << input; | 627 | | } | 628 | 653k | cnt++; | 629 | 653k | } (std::forward<Ts>(inputs)), ...); |
_ZZ11BuildScriptIJ10opcodetypeR7CScriptS0_S2_S0_EES1_DpOT_ENKUlOS0_E_clES6_ Line | Count | Source | 616 | 653k | ([&ret, &cnt] (Ts&& input) { | 617 | | if constexpr (std::is_same_v<std::remove_cv_t<std::remove_reference_t<Ts>>, CScript>) { | 618 | | // If it is a CScript, extend ret with it. Move or copy the first element instead. | 619 | | if (cnt == 0) { | 620 | | ret = std::forward<Ts>(input); | 621 | | } else { | 622 | | ret.insert(ret.end(), input.begin(), input.end()); | 623 | | } | 624 | 653k | } else { | 625 | | // Otherwise invoke CScript::operator<<. | 626 | 653k | ret << input; | 627 | 653k | } | 628 | 653k | cnt++; | 629 | 653k | } (std::forward<Ts>(inputs)), ...); |
_ZZ11BuildScriptIJ7CScript10opcodetypeRS0_S1_S2_S1_EES0_DpOT_ENKUlOS0_E_clES6_ Line | Count | Source | 616 | 45.9k | ([&ret, &cnt] (Ts&& input) { | 617 | 45.9k | if constexpr (std::is_same_v<std::remove_cv_t<std::remove_reference_t<Ts>>, CScript>) { | 618 | | // If it is a CScript, extend ret with it. Move or copy the first element instead. | 619 | 45.9k | if (cnt == 0) { Branch (619:17): [True: 45.9k, False: 0]
| 620 | 45.9k | ret = std::forward<Ts>(input); | 621 | 45.9k | } else { | 622 | 0 | ret.insert(ret.end(), input.begin(), input.end()); | 623 | 0 | } | 624 | | } else { | 625 | | // Otherwise invoke CScript::operator<<. | 626 | | ret << input; | 627 | | } | 628 | 45.9k | cnt++; | 629 | 45.9k | } (std::forward<Ts>(inputs)), ...); |
_ZZ11BuildScriptIJ7CScript10opcodetypeRS0_S1_S2_S1_EES0_DpOT_ENKUlOS1_E1_clES6_ Line | Count | Source | 616 | 45.9k | ([&ret, &cnt] (Ts&& input) { | 617 | | if constexpr (std::is_same_v<std::remove_cv_t<std::remove_reference_t<Ts>>, CScript>) { | 618 | | // If it is a CScript, extend ret with it. Move or copy the first element instead. | 619 | | if (cnt == 0) { | 620 | | ret = std::forward<Ts>(input); | 621 | | } else { | 622 | | ret.insert(ret.end(), input.begin(), input.end()); | 623 | | } | 624 | 45.9k | } else { | 625 | | // Otherwise invoke CScript::operator<<. | 626 | 45.9k | ret << input; | 627 | 45.9k | } | 628 | 45.9k | cnt++; | 629 | 45.9k | } (std::forward<Ts>(inputs)), ...); |
_ZZ11BuildScriptIJ7CScript10opcodetypeRS0_S1_S2_S1_EES0_DpOT_ENKUlS2_E0_clES2_ Line | Count | Source | 616 | 45.9k | ([&ret, &cnt] (Ts&& input) { | 617 | 45.9k | if constexpr (std::is_same_v<std::remove_cv_t<std::remove_reference_t<Ts>>, CScript>) { | 618 | | // If it is a CScript, extend ret with it. Move or copy the first element instead. | 619 | 45.9k | if (cnt == 0) { Branch (619:17): [True: 0, False: 45.9k]
| 620 | 0 | ret = std::forward<Ts>(input); | 621 | 45.9k | } else { | 622 | 45.9k | ret.insert(ret.end(), input.begin(), input.end()); | 623 | 45.9k | } | 624 | | } else { | 625 | | // Otherwise invoke CScript::operator<<. | 626 | | ret << input; | 627 | | } | 628 | 45.9k | cnt++; | 629 | 45.9k | } (std::forward<Ts>(inputs)), ...); |
_ZZ11BuildScriptIJ7CScript10opcodetypeRS0_S1_S2_S1_EES0_DpOT_ENKUlOS1_E0_clES6_ Line | Count | Source | 616 | 45.9k | ([&ret, &cnt] (Ts&& input) { | 617 | | if constexpr (std::is_same_v<std::remove_cv_t<std::remove_reference_t<Ts>>, CScript>) { | 618 | | // If it is a CScript, extend ret with it. Move or copy the first element instead. | 619 | | if (cnt == 0) { | 620 | | ret = std::forward<Ts>(input); | 621 | | } else { | 622 | | ret.insert(ret.end(), input.begin(), input.end()); | 623 | | } | 624 | 45.9k | } else { | 625 | | // Otherwise invoke CScript::operator<<. | 626 | 45.9k | ret << input; | 627 | 45.9k | } | 628 | 45.9k | cnt++; | 629 | 45.9k | } (std::forward<Ts>(inputs)), ...); |
_ZZ11BuildScriptIJ7CScript10opcodetypeRS0_S1_S2_S1_EES0_DpOT_ENKUlS2_E_clES2_ Line | Count | Source | 616 | 45.9k | ([&ret, &cnt] (Ts&& input) { | 617 | 45.9k | if constexpr (std::is_same_v<std::remove_cv_t<std::remove_reference_t<Ts>>, CScript>) { | 618 | | // If it is a CScript, extend ret with it. Move or copy the first element instead. | 619 | 45.9k | if (cnt == 0) { Branch (619:17): [True: 0, False: 45.9k]
| 620 | 0 | ret = std::forward<Ts>(input); | 621 | 45.9k | } else { | 622 | 45.9k | ret.insert(ret.end(), input.begin(), input.end()); | 623 | 45.9k | } | 624 | | } else { | 625 | | // Otherwise invoke CScript::operator<<. | 626 | | ret << input; | 627 | | } | 628 | 45.9k | cnt++; | 629 | 45.9k | } (std::forward<Ts>(inputs)), ...); |
_ZZ11BuildScriptIJ7CScript10opcodetypeRS0_S1_S2_S1_EES0_DpOT_ENKUlOS1_E_clES6_ Line | Count | Source | 616 | 45.9k | ([&ret, &cnt] (Ts&& input) { | 617 | | if constexpr (std::is_same_v<std::remove_cv_t<std::remove_reference_t<Ts>>, CScript>) { | 618 | | // If it is a CScript, extend ret with it. Move or copy the first element instead. | 619 | | if (cnt == 0) { | 620 | | ret = std::forward<Ts>(input); | 621 | | } else { | 622 | | ret.insert(ret.end(), input.begin(), input.end()); | 623 | | } | 624 | 45.9k | } else { | 625 | | // Otherwise invoke CScript::operator<<. | 626 | 45.9k | ret << input; | 627 | 45.9k | } | 628 | 45.9k | cnt++; | 629 | 45.9k | } (std::forward<Ts>(inputs)), ...); |
_ZZ11BuildScriptIJRKjEE7CScriptDpOT_ENKUlS1_E_clES1_ Line | Count | Source | 616 | 36.2k | ([&ret, &cnt] (Ts&& input) { | 617 | | if constexpr (std::is_same_v<std::remove_cv_t<std::remove_reference_t<Ts>>, CScript>) { | 618 | | // If it is a CScript, extend ret with it. Move or copy the first element instead. | 619 | | if (cnt == 0) { | 620 | | ret = std::forward<Ts>(input); | 621 | | } else { | 622 | | ret.insert(ret.end(), input.begin(), input.end()); | 623 | | } | 624 | 36.2k | } else { | 625 | | // Otherwise invoke CScript::operator<<. | 626 | 36.2k | ret << input; | 627 | 36.2k | } | 628 | 36.2k | cnt++; | 629 | 36.2k | } (std::forward<Ts>(inputs)), ...); |
_ZZ11BuildScriptIJ7CScriptSt6vectorIhSaIhEEEES0_DpOT_ENKUlOS0_E_clES7_ Line | Count | Source | 616 | 151k | ([&ret, &cnt] (Ts&& input) { | 617 | 151k | if constexpr (std::is_same_v<std::remove_cv_t<std::remove_reference_t<Ts>>, CScript>) { | 618 | | // If it is a CScript, extend ret with it. Move or copy the first element instead. | 619 | 151k | if (cnt == 0) { Branch (619:17): [True: 151k, False: 0]
| 620 | 151k | ret = std::forward<Ts>(input); | 621 | 151k | } else { | 622 | 0 | ret.insert(ret.end(), input.begin(), input.end()); | 623 | 0 | } | 624 | | } else { | 625 | | // Otherwise invoke CScript::operator<<. | 626 | | ret << input; | 627 | | } | 628 | 151k | cnt++; | 629 | 151k | } (std::forward<Ts>(inputs)), ...); |
_ZZ11BuildScriptIJ7CScriptSt6vectorIhSaIhEEEES0_DpOT_ENKUlOS3_E_clES7_ Line | Count | Source | 616 | 151k | ([&ret, &cnt] (Ts&& input) { | 617 | | if constexpr (std::is_same_v<std::remove_cv_t<std::remove_reference_t<Ts>>, CScript>) { | 618 | | // If it is a CScript, extend ret with it. Move or copy the first element instead. | 619 | | if (cnt == 0) { | 620 | | ret = std::forward<Ts>(input); | 621 | | } else { | 622 | | ret.insert(ret.end(), input.begin(), input.end()); | 623 | | } | 624 | 151k | } else { | 625 | | // Otherwise invoke CScript::operator<<. | 626 | 151k | ret << input; | 627 | 151k | } | 628 | 151k | cnt++; | 629 | 151k | } (std::forward<Ts>(inputs)), ...); |
_ZZ11BuildScriptIJ7CScriptm10opcodetypeEES0_DpOT_ENKUlOS0_E_clES5_ Line | Count | Source | 616 | 36.2k | ([&ret, &cnt] (Ts&& input) { | 617 | 36.2k | if constexpr (std::is_same_v<std::remove_cv_t<std::remove_reference_t<Ts>>, CScript>) { | 618 | | // If it is a CScript, extend ret with it. Move or copy the first element instead. | 619 | 36.2k | if (cnt == 0) { Branch (619:17): [True: 36.2k, False: 0]
| 620 | 36.2k | ret = std::forward<Ts>(input); | 621 | 36.2k | } else { | 622 | 0 | ret.insert(ret.end(), input.begin(), input.end()); | 623 | 0 | } | 624 | | } else { | 625 | | // Otherwise invoke CScript::operator<<. | 626 | | ret << input; | 627 | | } | 628 | 36.2k | cnt++; | 629 | 36.2k | } (std::forward<Ts>(inputs)), ...); |
_ZZ11BuildScriptIJ7CScriptm10opcodetypeEES0_DpOT_ENKUlOmE_clES5_ Line | Count | Source | 616 | 36.2k | ([&ret, &cnt] (Ts&& input) { | 617 | | if constexpr (std::is_same_v<std::remove_cv_t<std::remove_reference_t<Ts>>, CScript>) { | 618 | | // If it is a CScript, extend ret with it. Move or copy the first element instead. | 619 | | if (cnt == 0) { | 620 | | ret = std::forward<Ts>(input); | 621 | | } else { | 622 | | ret.insert(ret.end(), input.begin(), input.end()); | 623 | | } | 624 | 36.2k | } else { | 625 | | // Otherwise invoke CScript::operator<<. | 626 | 36.2k | ret << input; | 627 | 36.2k | } | 628 | 36.2k | cnt++; | 629 | 36.2k | } (std::forward<Ts>(inputs)), ...); |
_ZZ11BuildScriptIJ7CScriptm10opcodetypeEES0_DpOT_ENKUlOS1_E_clES5_ Line | Count | Source | 616 | 36.2k | ([&ret, &cnt] (Ts&& input) { | 617 | | if constexpr (std::is_same_v<std::remove_cv_t<std::remove_reference_t<Ts>>, CScript>) { | 618 | | // If it is a CScript, extend ret with it. Move or copy the first element instead. | 619 | | if (cnt == 0) { | 620 | | ret = std::forward<Ts>(input); | 621 | | } else { | 622 | | ret.insert(ret.end(), input.begin(), input.end()); | 623 | | } | 624 | 36.2k | } else { | 625 | | // Otherwise invoke CScript::operator<<. | 626 | 36.2k | ret << input; | 627 | 36.2k | } | 628 | 36.2k | cnt++; | 629 | 36.2k | } (std::forward<Ts>(inputs)), ...); |
_ZZ11BuildScriptIJSt6vectorIhSaIhEE10opcodetypeEE7CScriptDpOT_ENKUlOS2_E_clES8_ Line | Count | Source | 616 | 9.47k | ([&ret, &cnt] (Ts&& input) { | 617 | | if constexpr (std::is_same_v<std::remove_cv_t<std::remove_reference_t<Ts>>, CScript>) { | 618 | | // If it is a CScript, extend ret with it. Move or copy the first element instead. | 619 | | if (cnt == 0) { | 620 | | ret = std::forward<Ts>(input); | 621 | | } else { | 622 | | ret.insert(ret.end(), input.begin(), input.end()); | 623 | | } | 624 | 9.47k | } else { | 625 | | // Otherwise invoke CScript::operator<<. | 626 | 9.47k | ret << input; | 627 | 9.47k | } | 628 | 9.47k | cnt++; | 629 | 9.47k | } (std::forward<Ts>(inputs)), ...); |
_ZZ11BuildScriptIJSt6vectorIhSaIhEE10opcodetypeEE7CScriptDpOT_ENKUlOS3_E_clES8_ Line | Count | Source | 616 | 9.47k | ([&ret, &cnt] (Ts&& input) { | 617 | | if constexpr (std::is_same_v<std::remove_cv_t<std::remove_reference_t<Ts>>, CScript>) { | 618 | | // If it is a CScript, extend ret with it. Move or copy the first element instead. | 619 | | if (cnt == 0) { | 620 | | ret = std::forward<Ts>(input); | 621 | | } else { | 622 | | ret.insert(ret.end(), input.begin(), input.end()); | 623 | | } | 624 | 9.47k | } else { | 625 | | // Otherwise invoke CScript::operator<<. | 626 | 9.47k | ret << input; | 627 | 9.47k | } | 628 | 9.47k | cnt++; | 629 | 9.47k | } (std::forward<Ts>(inputs)), ...); |
_ZZ11BuildScriptIJ7CScriptSt6vectorIhSaIhEE10opcodetypeEES0_DpOT_ENKUlOS0_E_clES8_ Line | Count | Source | 616 | 92.4k | ([&ret, &cnt] (Ts&& input) { | 617 | 92.4k | if constexpr (std::is_same_v<std::remove_cv_t<std::remove_reference_t<Ts>>, CScript>) { | 618 | | // If it is a CScript, extend ret with it. Move or copy the first element instead. | 619 | 92.4k | if (cnt == 0) { Branch (619:17): [True: 92.4k, False: 0]
| 620 | 92.4k | ret = std::forward<Ts>(input); | 621 | 92.4k | } else { | 622 | 0 | ret.insert(ret.end(), input.begin(), input.end()); | 623 | 0 | } | 624 | | } else { | 625 | | // Otherwise invoke CScript::operator<<. | 626 | | ret << input; | 627 | | } | 628 | 92.4k | cnt++; | 629 | 92.4k | } (std::forward<Ts>(inputs)), ...); |
_ZZ11BuildScriptIJ7CScriptSt6vectorIhSaIhEE10opcodetypeEES0_DpOT_ENKUlOS3_E_clES8_ Line | Count | Source | 616 | 92.4k | ([&ret, &cnt] (Ts&& input) { | 617 | | if constexpr (std::is_same_v<std::remove_cv_t<std::remove_reference_t<Ts>>, CScript>) { | 618 | | // If it is a CScript, extend ret with it. Move or copy the first element instead. | 619 | | if (cnt == 0) { | 620 | | ret = std::forward<Ts>(input); | 621 | | } else { | 622 | | ret.insert(ret.end(), input.begin(), input.end()); | 623 | | } | 624 | 92.4k | } else { | 625 | | // Otherwise invoke CScript::operator<<. | 626 | 92.4k | ret << input; | 627 | 92.4k | } | 628 | 92.4k | cnt++; | 629 | 92.4k | } (std::forward<Ts>(inputs)), ...); |
_ZZ11BuildScriptIJ7CScriptSt6vectorIhSaIhEE10opcodetypeEES0_DpOT_ENKUlOS4_E_clES8_ Line | Count | Source | 616 | 92.4k | ([&ret, &cnt] (Ts&& input) { | 617 | | if constexpr (std::is_same_v<std::remove_cv_t<std::remove_reference_t<Ts>>, CScript>) { | 618 | | // If it is a CScript, extend ret with it. Move or copy the first element instead. | 619 | | if (cnt == 0) { | 620 | | ret = std::forward<Ts>(input); | 621 | | } else { | 622 | | ret.insert(ret.end(), input.begin(), input.end()); | 623 | | } | 624 | 92.4k | } else { | 625 | | // Otherwise invoke CScript::operator<<. | 626 | 92.4k | ret << input; | 627 | 92.4k | } | 628 | 92.4k | cnt++; | 629 | 92.4k | } (std::forward<Ts>(inputs)), ...); |
_ZZ11BuildScriptIJ7CScriptRKj10opcodetypeEES0_DpOT_ENKUlOS0_E_clES7_ Line | Count | Source | 616 | 51.6k | ([&ret, &cnt] (Ts&& input) { | 617 | 51.6k | if constexpr (std::is_same_v<std::remove_cv_t<std::remove_reference_t<Ts>>, CScript>) { | 618 | | // If it is a CScript, extend ret with it. Move or copy the first element instead. | 619 | 51.6k | if (cnt == 0) { Branch (619:17): [True: 51.6k, False: 0]
| 620 | 51.6k | ret = std::forward<Ts>(input); | 621 | 51.6k | } else { | 622 | 0 | ret.insert(ret.end(), input.begin(), input.end()); | 623 | 0 | } | 624 | | } else { | 625 | | // Otherwise invoke CScript::operator<<. | 626 | | ret << input; | 627 | | } | 628 | 51.6k | cnt++; | 629 | 51.6k | } (std::forward<Ts>(inputs)), ...); |
_ZZ11BuildScriptIJ7CScriptRKj10opcodetypeEES0_DpOT_ENKUlS2_E_clES2_ Line | Count | Source | 616 | 51.6k | ([&ret, &cnt] (Ts&& input) { | 617 | | if constexpr (std::is_same_v<std::remove_cv_t<std::remove_reference_t<Ts>>, CScript>) { | 618 | | // If it is a CScript, extend ret with it. Move or copy the first element instead. | 619 | | if (cnt == 0) { | 620 | | ret = std::forward<Ts>(input); | 621 | | } else { | 622 | | ret.insert(ret.end(), input.begin(), input.end()); | 623 | | } | 624 | 51.6k | } else { | 625 | | // Otherwise invoke CScript::operator<<. | 626 | 51.6k | ret << input; | 627 | 51.6k | } | 628 | 51.6k | cnt++; | 629 | 51.6k | } (std::forward<Ts>(inputs)), ...); |
_ZZ11BuildScriptIJ7CScriptRKj10opcodetypeEES0_DpOT_ENKUlOS3_E_clES7_ Line | Count | Source | 616 | 51.6k | ([&ret, &cnt] (Ts&& input) { | 617 | | if constexpr (std::is_same_v<std::remove_cv_t<std::remove_reference_t<Ts>>, CScript>) { | 618 | | // If it is a CScript, extend ret with it. Move or copy the first element instead. | 619 | | if (cnt == 0) { | 620 | | ret = std::forward<Ts>(input); | 621 | | } else { | 622 | | ret.insert(ret.end(), input.begin(), input.end()); | 623 | | } | 624 | 51.6k | } else { | 625 | | // Otherwise invoke CScript::operator<<. | 626 | 51.6k | ret << input; | 627 | 51.6k | } | 628 | 51.6k | cnt++; | 629 | 51.6k | } (std::forward<Ts>(inputs)), ...); |
_ZZ11BuildScriptIJRKlEE7CScriptDpOT_ENKUlS1_E_clES1_ Line | Count | Source | 616 | 15.6k | ([&ret, &cnt] (Ts&& input) { | 617 | | if constexpr (std::is_same_v<std::remove_cv_t<std::remove_reference_t<Ts>>, CScript>) { | 618 | | // If it is a CScript, extend ret with it. Move or copy the first element instead. | 619 | | if (cnt == 0) { | 620 | | ret = std::forward<Ts>(input); | 621 | | } else { | 622 | | ret.insert(ret.end(), input.begin(), input.end()); | 623 | | } | 624 | 15.6k | } else { | 625 | | // Otherwise invoke CScript::operator<<. | 626 | 15.6k | ret << input; | 627 | 15.6k | } | 628 | 15.6k | cnt++; | 629 | 15.6k | } (std::forward<Ts>(inputs)), ...); |
_ZZ11BuildScriptIJRKSt6vectorIhSaIhEEEE7CScriptDpOT_ENKUlS4_E_clES4_ Line | Count | Source | 616 | 504 | ([&ret, &cnt] (Ts&& input) { | 617 | | if constexpr (std::is_same_v<std::remove_cv_t<std::remove_reference_t<Ts>>, CScript>) { | 618 | | // If it is a CScript, extend ret with it. Move or copy the first element instead. | 619 | | if (cnt == 0) { | 620 | | ret = std::forward<Ts>(input); | 621 | | } else { | 622 | | ret.insert(ret.end(), input.begin(), input.end()); | 623 | | } | 624 | 504 | } else { | 625 | | // Otherwise invoke CScript::operator<<. | 626 | 504 | ret << input; | 627 | 504 | } | 628 | 504 | cnt++; | 629 | 504 | } (std::forward<Ts>(inputs)), ...); |
_ZZ11BuildScriptIJ7CScriptRKSt6vectorIhSaIhEEEES0_DpOT_ENKUlOS0_E_clES9_ Line | Count | Source | 616 | 1.20k | ([&ret, &cnt] (Ts&& input) { | 617 | 1.20k | if constexpr (std::is_same_v<std::remove_cv_t<std::remove_reference_t<Ts>>, CScript>) { | 618 | | // If it is a CScript, extend ret with it. Move or copy the first element instead. | 619 | 1.20k | if (cnt == 0) { Branch (619:17): [True: 1.20k, False: 0]
| 620 | 1.20k | ret = std::forward<Ts>(input); | 621 | 1.20k | } else { | 622 | 0 | ret.insert(ret.end(), input.begin(), input.end()); | 623 | 0 | } | 624 | | } else { | 625 | | // Otherwise invoke CScript::operator<<. | 626 | | ret << input; | 627 | | } | 628 | 1.20k | cnt++; | 629 | 1.20k | } (std::forward<Ts>(inputs)), ...); |
_ZZ11BuildScriptIJ7CScriptRKSt6vectorIhSaIhEEEES0_DpOT_ENKUlS5_E_clES5_ Line | Count | Source | 616 | 1.20k | ([&ret, &cnt] (Ts&& input) { | 617 | | if constexpr (std::is_same_v<std::remove_cv_t<std::remove_reference_t<Ts>>, CScript>) { | 618 | | // If it is a CScript, extend ret with it. Move or copy the first element instead. | 619 | | if (cnt == 0) { | 620 | | ret = std::forward<Ts>(input); | 621 | | } else { | 622 | | ret.insert(ret.end(), input.begin(), input.end()); | 623 | | } | 624 | 1.20k | } else { | 625 | | // Otherwise invoke CScript::operator<<. | 626 | 1.20k | ret << input; | 627 | 1.20k | } | 628 | 1.20k | cnt++; | 629 | 1.20k | } (std::forward<Ts>(inputs)), ...); |
_ZZ11BuildScriptIJRKSt6vectorIhSaIhEE10opcodetypeEE7CScriptDpOT_ENKUlS4_E_clES4_ Line | Count | Source | 616 | 76 | ([&ret, &cnt] (Ts&& input) { | 617 | | if constexpr (std::is_same_v<std::remove_cv_t<std::remove_reference_t<Ts>>, CScript>) { | 618 | | // If it is a CScript, extend ret with it. Move or copy the first element instead. | 619 | | if (cnt == 0) { | 620 | | ret = std::forward<Ts>(input); | 621 | | } else { | 622 | | ret.insert(ret.end(), input.begin(), input.end()); | 623 | | } | 624 | 76 | } else { | 625 | | // Otherwise invoke CScript::operator<<. | 626 | 76 | ret << input; | 627 | 76 | } | 628 | 76 | cnt++; | 629 | 76 | } (std::forward<Ts>(inputs)), ...); |
_ZZ11BuildScriptIJRKSt6vectorIhSaIhEE10opcodetypeEE7CScriptDpOT_ENKUlOS5_E_clESA_ Line | Count | Source | 616 | 76 | ([&ret, &cnt] (Ts&& input) { | 617 | | if constexpr (std::is_same_v<std::remove_cv_t<std::remove_reference_t<Ts>>, CScript>) { | 618 | | // If it is a CScript, extend ret with it. Move or copy the first element instead. | 619 | | if (cnt == 0) { | 620 | | ret = std::forward<Ts>(input); | 621 | | } else { | 622 | | ret.insert(ret.end(), input.begin(), input.end()); | 623 | | } | 624 | 76 | } else { | 625 | | // Otherwise invoke CScript::operator<<. | 626 | 76 | ret << input; | 627 | 76 | } | 628 | 76 | cnt++; | 629 | 76 | } (std::forward<Ts>(inputs)), ...); |
_ZZ11BuildScriptIJ7CScriptRKSt6vectorIhSaIhEE10opcodetypeEES0_DpOT_ENKUlOS0_E_clESA_ Line | Count | Source | 616 | 29 | ([&ret, &cnt] (Ts&& input) { | 617 | 29 | if constexpr (std::is_same_v<std::remove_cv_t<std::remove_reference_t<Ts>>, CScript>) { | 618 | | // If it is a CScript, extend ret with it. Move or copy the first element instead. | 619 | 29 | if (cnt == 0) { Branch (619:17): [True: 29, False: 0]
| 620 | 29 | ret = std::forward<Ts>(input); | 621 | 29 | } else { | 622 | 0 | ret.insert(ret.end(), input.begin(), input.end()); | 623 | 0 | } | 624 | | } else { | 625 | | // Otherwise invoke CScript::operator<<. | 626 | | ret << input; | 627 | | } | 628 | 29 | cnt++; | 629 | 29 | } (std::forward<Ts>(inputs)), ...); |
_ZZ11BuildScriptIJ7CScriptRKSt6vectorIhSaIhEE10opcodetypeEES0_DpOT_ENKUlS5_E_clES5_ Line | Count | Source | 616 | 29 | ([&ret, &cnt] (Ts&& input) { | 617 | | if constexpr (std::is_same_v<std::remove_cv_t<std::remove_reference_t<Ts>>, CScript>) { | 618 | | // If it is a CScript, extend ret with it. Move or copy the first element instead. | 619 | | if (cnt == 0) { | 620 | | ret = std::forward<Ts>(input); | 621 | | } else { | 622 | | ret.insert(ret.end(), input.begin(), input.end()); | 623 | | } | 624 | 29 | } else { | 625 | | // Otherwise invoke CScript::operator<<. | 626 | 29 | ret << input; | 627 | 29 | } | 628 | 29 | cnt++; | 629 | 29 | } (std::forward<Ts>(inputs)), ...); |
_ZZ11BuildScriptIJ7CScriptRKSt6vectorIhSaIhEE10opcodetypeEES0_DpOT_ENKUlOS6_E_clESA_ Line | Count | Source | 616 | 29 | ([&ret, &cnt] (Ts&& input) { | 617 | | if constexpr (std::is_same_v<std::remove_cv_t<std::remove_reference_t<Ts>>, CScript>) { | 618 | | // If it is a CScript, extend ret with it. Move or copy the first element instead. | 619 | | if (cnt == 0) { | 620 | | ret = std::forward<Ts>(input); | 621 | | } else { | 622 | | ret.insert(ret.end(), input.begin(), input.end()); | 623 | | } | 624 | 29 | } else { | 625 | | // Otherwise invoke CScript::operator<<. | 626 | 29 | ret << input; | 627 | 29 | } | 628 | 29 | cnt++; | 629 | 29 | } (std::forward<Ts>(inputs)), ...); |
_ZZ11BuildScriptIJRKmEE7CScriptDpOT_ENKUlS1_E_clES1_ Line | Count | Source | 616 | 4.62k | ([&ret, &cnt] (Ts&& input) { | 617 | | if constexpr (std::is_same_v<std::remove_cv_t<std::remove_reference_t<Ts>>, CScript>) { | 618 | | // If it is a CScript, extend ret with it. Move or copy the first element instead. | 619 | | if (cnt == 0) { | 620 | | ret = std::forward<Ts>(input); | 621 | | } else { | 622 | | ret.insert(ret.end(), input.begin(), input.end()); | 623 | | } | 624 | 4.62k | } else { | 625 | | // Otherwise invoke CScript::operator<<. | 626 | 4.62k | ret << input; | 627 | 4.62k | } | 628 | 4.62k | cnt++; | 629 | 4.62k | } (std::forward<Ts>(inputs)), ...); |
_ZZ11BuildScriptIJRKiEE7CScriptDpOT_ENKUlS1_E_clES1_ Line | Count | Source | 616 | 4.62k | ([&ret, &cnt] (Ts&& input) { | 617 | | if constexpr (std::is_same_v<std::remove_cv_t<std::remove_reference_t<Ts>>, CScript>) { | 618 | | // If it is a CScript, extend ret with it. Move or copy the first element instead. | 619 | | if (cnt == 0) { | 620 | | ret = std::forward<Ts>(input); | 621 | | } else { | 622 | | ret.insert(ret.end(), input.begin(), input.end()); | 623 | | } | 624 | 4.62k | } else { | 625 | | // Otherwise invoke CScript::operator<<. | 626 | 4.62k | ret << input; | 627 | 4.62k | } | 628 | 4.62k | cnt++; | 629 | 4.62k | } (std::forward<Ts>(inputs)), ...); |
_ZZ11BuildScriptIJRjEE7CScriptDpOT_ENKUlS0_E_clES0_ Line | Count | Source | 616 | 601k | ([&ret, &cnt] (Ts&& input) { | 617 | | if constexpr (std::is_same_v<std::remove_cv_t<std::remove_reference_t<Ts>>, CScript>) { | 618 | | // If it is a CScript, extend ret with it. Move or copy the first element instead. | 619 | | if (cnt == 0) { | 620 | | ret = std::forward<Ts>(input); | 621 | | } else { | 622 | | ret.insert(ret.end(), input.begin(), input.end()); | 623 | | } | 624 | 601k | } else { | 625 | | // Otherwise invoke CScript::operator<<. | 626 | 601k | ret << input; | 627 | 601k | } | 628 | 601k | cnt++; | 629 | 601k | } (std::forward<Ts>(inputs)), ...); |
_ZZ11BuildScriptIJRmEE7CScriptDpOT_ENKUlS0_E_clES0_ Line | Count | Source | 616 | 65.2k | ([&ret, &cnt] (Ts&& input) { | 617 | | if constexpr (std::is_same_v<std::remove_cv_t<std::remove_reference_t<Ts>>, CScript>) { | 618 | | // If it is a CScript, extend ret with it. Move or copy the first element instead. | 619 | | if (cnt == 0) { | 620 | | ret = std::forward<Ts>(input); | 621 | | } else { | 622 | | ret.insert(ret.end(), input.begin(), input.end()); | 623 | | } | 624 | 65.2k | } else { | 625 | | // Otherwise invoke CScript::operator<<. | 626 | 65.2k | ret << input; | 627 | 65.2k | } | 628 | 65.2k | cnt++; | 629 | 65.2k | } (std::forward<Ts>(inputs)), ...); |
|
630 | | |
631 | 4.62M | return ret; |
632 | 4.62M | } _Z11BuildScriptIJSt6vectorIhSaIhEEEE7CScriptDpOT_ Line | Count | Source | 612 | 92.6k | { | 613 | 92.6k | CScript ret; | 614 | 92.6k | int cnt{0}; | 615 | | | 616 | 92.6k | ([&ret, &cnt] (Ts&& input) { | 617 | 92.6k | if constexpr (std::is_same_v<std::remove_cv_t<std::remove_reference_t<Ts>>, CScript>) { | 618 | | // If it is a CScript, extend ret with it. Move or copy the first element instead. | 619 | 92.6k | if (cnt == 0) { | 620 | 92.6k | ret = std::forward<Ts>(input); | 621 | 92.6k | } else { | 622 | 92.6k | ret.insert(ret.end(), input.begin(), input.end()); | 623 | 92.6k | } | 624 | 92.6k | } else { | 625 | | // Otherwise invoke CScript::operator<<. | 626 | 92.6k | ret << input; | 627 | 92.6k | } | 628 | 92.6k | cnt++; | 629 | 92.6k | } (std::forward<Ts>(inputs)), ...); | 630 | | | 631 | 92.6k | return ret; | 632 | 92.6k | } |
_Z11BuildScriptIJ10opcodetypeS0_St6vectorIhSaIhEES0_EE7CScriptDpOT_ Line | Count | Source | 612 | 36.2k | { | 613 | 36.2k | CScript ret; | 614 | 36.2k | int cnt{0}; | 615 | | | 616 | 36.2k | ([&ret, &cnt] (Ts&& input) { | 617 | 36.2k | if constexpr (std::is_same_v<std::remove_cv_t<std::remove_reference_t<Ts>>, CScript>) { | 618 | | // If it is a CScript, extend ret with it. Move or copy the first element instead. | 619 | 36.2k | if (cnt == 0) { | 620 | 36.2k | ret = std::forward<Ts>(input); | 621 | 36.2k | } else { | 622 | 36.2k | ret.insert(ret.end(), input.begin(), input.end()); | 623 | 36.2k | } | 624 | 36.2k | } else { | 625 | | // Otherwise invoke CScript::operator<<. | 626 | 36.2k | ret << input; | 627 | 36.2k | } | 628 | 36.2k | cnt++; | 629 | 36.2k | } (std::forward<Ts>(inputs)), ...); | 630 | | | 631 | 36.2k | return ret; | 632 | 36.2k | } |
_Z11BuildScriptIJRKj10opcodetypeEE7CScriptDpOT_ Line | Count | Source | 612 | 30.8k | { | 613 | 30.8k | CScript ret; | 614 | 30.8k | int cnt{0}; | 615 | | | 616 | 30.8k | ([&ret, &cnt] (Ts&& input) { | 617 | 30.8k | if constexpr (std::is_same_v<std::remove_cv_t<std::remove_reference_t<Ts>>, CScript>) { | 618 | | // If it is a CScript, extend ret with it. Move or copy the first element instead. | 619 | 30.8k | if (cnt == 0) { | 620 | 30.8k | ret = std::forward<Ts>(input); | 621 | 30.8k | } else { | 622 | 30.8k | ret.insert(ret.end(), input.begin(), input.end()); | 623 | 30.8k | } | 624 | 30.8k | } else { | 625 | | // Otherwise invoke CScript::operator<<. | 626 | 30.8k | ret << input; | 627 | 30.8k | } | 628 | 30.8k | cnt++; | 629 | 30.8k | } (std::forward<Ts>(inputs)), ...); | 630 | | | 631 | 30.8k | return ret; | 632 | 30.8k | } |
_Z11BuildScriptIJ10opcodetypeiS0_S0_RKSt6vectorIhSaIhEES0_EE7CScriptDpOT_ Line | Count | Source | 612 | 39.7k | { | 613 | 39.7k | CScript ret; | 614 | 39.7k | int cnt{0}; | 615 | | | 616 | 39.7k | ([&ret, &cnt] (Ts&& input) { | 617 | 39.7k | if constexpr (std::is_same_v<std::remove_cv_t<std::remove_reference_t<Ts>>, CScript>) { | 618 | | // If it is a CScript, extend ret with it. Move or copy the first element instead. | 619 | 39.7k | if (cnt == 0) { | 620 | 39.7k | ret = std::forward<Ts>(input); | 621 | 39.7k | } else { | 622 | 39.7k | ret.insert(ret.end(), input.begin(), input.end()); | 623 | 39.7k | } | 624 | 39.7k | } else { | 625 | | // Otherwise invoke CScript::operator<<. | 626 | 39.7k | ret << input; | 627 | 39.7k | } | 628 | 39.7k | cnt++; | 629 | 39.7k | } (std::forward<Ts>(inputs)), ...); | 630 | | | 631 | 39.7k | return ret; | 632 | 39.7k | } |
_Z11BuildScriptIJ10opcodetypeR7CScriptS0_EES1_DpOT_ Line | Count | Source | 612 | 123k | { | 613 | 123k | CScript ret; | 614 | 123k | int cnt{0}; | 615 | | | 616 | 123k | ([&ret, &cnt] (Ts&& input) { | 617 | 123k | if constexpr (std::is_same_v<std::remove_cv_t<std::remove_reference_t<Ts>>, CScript>) { | 618 | | // If it is a CScript, extend ret with it. Move or copy the first element instead. | 619 | 123k | if (cnt == 0) { | 620 | 123k | ret = std::forward<Ts>(input); | 621 | 123k | } else { | 622 | 123k | ret.insert(ret.end(), input.begin(), input.end()); | 623 | 123k | } | 624 | 123k | } else { | 625 | | // Otherwise invoke CScript::operator<<. | 626 | 123k | ret << input; | 627 | 123k | } | 628 | 123k | cnt++; | 629 | 123k | } (std::forward<Ts>(inputs)), ...); | 630 | | | 631 | 123k | return ret; | 632 | 123k | } |
_Z11BuildScriptIJ10opcodetypeR7CScriptEES1_DpOT_ Line | Count | Source | 612 | 18.1k | { | 613 | 18.1k | CScript ret; | 614 | 18.1k | int cnt{0}; | 615 | | | 616 | 18.1k | ([&ret, &cnt] (Ts&& input) { | 617 | 18.1k | if constexpr (std::is_same_v<std::remove_cv_t<std::remove_reference_t<Ts>>, CScript>) { | 618 | | // If it is a CScript, extend ret with it. Move or copy the first element instead. | 619 | 18.1k | if (cnt == 0) { | 620 | 18.1k | ret = std::forward<Ts>(input); | 621 | 18.1k | } else { | 622 | 18.1k | ret.insert(ret.end(), input.begin(), input.end()); | 623 | 18.1k | } | 624 | 18.1k | } else { | 625 | | // Otherwise invoke CScript::operator<<. | 626 | 18.1k | ret << input; | 627 | 18.1k | } | 628 | 18.1k | cnt++; | 629 | 18.1k | } (std::forward<Ts>(inputs)), ...); | 630 | | | 631 | 18.1k | return ret; | 632 | 18.1k | } |
_Z11BuildScriptIJ7CScript10opcodetypeEES0_DpOT_ Line | Count | Source | 612 | 1.14M | { | 613 | 1.14M | CScript ret; | 614 | 1.14M | int cnt{0}; | 615 | | | 616 | 1.14M | ([&ret, &cnt] (Ts&& input) { | 617 | 1.14M | if constexpr (std::is_same_v<std::remove_cv_t<std::remove_reference_t<Ts>>, CScript>) { | 618 | | // If it is a CScript, extend ret with it. Move or copy the first element instead. | 619 | 1.14M | if (cnt == 0) { | 620 | 1.14M | ret = std::forward<Ts>(input); | 621 | 1.14M | } else { | 622 | 1.14M | ret.insert(ret.end(), input.begin(), input.end()); | 623 | 1.14M | } | 624 | 1.14M | } else { | 625 | | // Otherwise invoke CScript::operator<<. | 626 | 1.14M | ret << input; | 627 | 1.14M | } | 628 | 1.14M | cnt++; | 629 | 1.14M | } (std::forward<Ts>(inputs)), ...); | 630 | | | 631 | 1.14M | return ret; | 632 | 1.14M | } |
_Z11BuildScriptIJ10opcodetypeS0_R7CScriptS0_EES1_DpOT_ Line | Count | Source | 612 | 10.8k | { | 613 | 10.8k | CScript ret; | 614 | 10.8k | int cnt{0}; | 615 | | | 616 | 10.8k | ([&ret, &cnt] (Ts&& input) { | 617 | 10.8k | if constexpr (std::is_same_v<std::remove_cv_t<std::remove_reference_t<Ts>>, CScript>) { | 618 | | // If it is a CScript, extend ret with it. Move or copy the first element instead. | 619 | 10.8k | if (cnt == 0) { | 620 | 10.8k | ret = std::forward<Ts>(input); | 621 | 10.8k | } else { | 622 | 10.8k | ret.insert(ret.end(), input.begin(), input.end()); | 623 | 10.8k | } | 624 | 10.8k | } else { | 625 | | // Otherwise invoke CScript::operator<<. | 626 | 10.8k | ret << input; | 627 | 10.8k | } | 628 | 10.8k | cnt++; | 629 | 10.8k | } (std::forward<Ts>(inputs)), ...); | 630 | | | 631 | 10.8k | return ret; | 632 | 10.8k | } |
_Z11BuildScriptIJ10opcodetypeS0_S0_R7CScriptS0_EES1_DpOT_ Line | Count | Source | 612 | 82.4k | { | 613 | 82.4k | CScript ret; | 614 | 82.4k | int cnt{0}; | 615 | | | 616 | 82.4k | ([&ret, &cnt] (Ts&& input) { | 617 | 82.4k | if constexpr (std::is_same_v<std::remove_cv_t<std::remove_reference_t<Ts>>, CScript>) { | 618 | | // If it is a CScript, extend ret with it. Move or copy the first element instead. | 619 | 82.4k | if (cnt == 0) { | 620 | 82.4k | ret = std::forward<Ts>(input); | 621 | 82.4k | } else { | 622 | 82.4k | ret.insert(ret.end(), input.begin(), input.end()); | 623 | 82.4k | } | 624 | 82.4k | } else { | 625 | | // Otherwise invoke CScript::operator<<. | 626 | 82.4k | ret << input; | 627 | 82.4k | } | 628 | 82.4k | cnt++; | 629 | 82.4k | } (std::forward<Ts>(inputs)), ...); | 630 | | | 631 | 82.4k | return ret; | 632 | 82.4k | } |
_Z11BuildScriptIJ10opcodetypeEE7CScriptDpOT_ Line | Count | Source | 612 | 930k | { | 613 | 930k | CScript ret; | 614 | 930k | int cnt{0}; | 615 | | | 616 | 930k | ([&ret, &cnt] (Ts&& input) { | 617 | 930k | if constexpr (std::is_same_v<std::remove_cv_t<std::remove_reference_t<Ts>>, CScript>) { | 618 | | // If it is a CScript, extend ret with it. Move or copy the first element instead. | 619 | 930k | if (cnt == 0) { | 620 | 930k | ret = std::forward<Ts>(input); | 621 | 930k | } else { | 622 | 930k | ret.insert(ret.end(), input.begin(), input.end()); | 623 | 930k | } | 624 | 930k | } else { | 625 | | // Otherwise invoke CScript::operator<<. | 626 | 930k | ret << input; | 627 | 930k | } | 628 | 930k | cnt++; | 629 | 930k | } (std::forward<Ts>(inputs)), ...); | 630 | | | 631 | 930k | return ret; | 632 | 930k | } |
_Z11BuildScriptIJ7CScriptRS0_EES0_DpOT_ Line | Count | Source | 612 | 156k | { | 613 | 156k | CScript ret; | 614 | 156k | int cnt{0}; | 615 | | | 616 | 156k | ([&ret, &cnt] (Ts&& input) { | 617 | 156k | if constexpr (std::is_same_v<std::remove_cv_t<std::remove_reference_t<Ts>>, CScript>) { | 618 | | // If it is a CScript, extend ret with it. Move or copy the first element instead. | 619 | 156k | if (cnt == 0) { | 620 | 156k | ret = std::forward<Ts>(input); | 621 | 156k | } else { | 622 | 156k | ret.insert(ret.end(), input.begin(), input.end()); | 623 | 156k | } | 624 | 156k | } else { | 625 | | // Otherwise invoke CScript::operator<<. | 626 | 156k | ret << input; | 627 | 156k | } | 628 | 156k | cnt++; | 629 | 156k | } (std::forward<Ts>(inputs)), ...); | 630 | | | 631 | 156k | return ret; | 632 | 156k | } |
_Z11BuildScriptIJ7CScriptRS0_10opcodetypeEES0_DpOT_ Line | Count | Source | 612 | 142k | { | 613 | 142k | CScript ret; | 614 | 142k | int cnt{0}; | 615 | | | 616 | 142k | ([&ret, &cnt] (Ts&& input) { | 617 | 142k | if constexpr (std::is_same_v<std::remove_cv_t<std::remove_reference_t<Ts>>, CScript>) { | 618 | | // If it is a CScript, extend ret with it. Move or copy the first element instead. | 619 | 142k | if (cnt == 0) { | 620 | 142k | ret = std::forward<Ts>(input); | 621 | 142k | } else { | 622 | 142k | ret.insert(ret.end(), input.begin(), input.end()); | 623 | 142k | } | 624 | 142k | } else { | 625 | | // Otherwise invoke CScript::operator<<. | 626 | 142k | ret << input; | 627 | 142k | } | 628 | 142k | cnt++; | 629 | 142k | } (std::forward<Ts>(inputs)), ...); | 630 | | | 631 | 142k | return ret; | 632 | 142k | } |
_Z11BuildScriptIJ7CScript10opcodetypeS1_RS0_S1_EES0_DpOT_ Line | Count | Source | 612 | 28.2k | { | 613 | 28.2k | CScript ret; | 614 | 28.2k | int cnt{0}; | 615 | | | 616 | 28.2k | ([&ret, &cnt] (Ts&& input) { | 617 | 28.2k | if constexpr (std::is_same_v<std::remove_cv_t<std::remove_reference_t<Ts>>, CScript>) { | 618 | | // If it is a CScript, extend ret with it. Move or copy the first element instead. | 619 | 28.2k | if (cnt == 0) { | 620 | 28.2k | ret = std::forward<Ts>(input); | 621 | 28.2k | } else { | 622 | 28.2k | ret.insert(ret.end(), input.begin(), input.end()); | 623 | 28.2k | } | 624 | 28.2k | } else { | 625 | | // Otherwise invoke CScript::operator<<. | 626 | 28.2k | ret << input; | 627 | 28.2k | } | 628 | 28.2k | cnt++; | 629 | 28.2k | } (std::forward<Ts>(inputs)), ...); | 630 | | | 631 | 28.2k | return ret; | 632 | 28.2k | } |
_Z11BuildScriptIJ7CScript10opcodetypeRS0_S1_EES0_DpOT_ Line | Count | Source | 612 | 14.4k | { | 613 | 14.4k | CScript ret; | 614 | 14.4k | int cnt{0}; | 615 | | | 616 | 14.4k | ([&ret, &cnt] (Ts&& input) { | 617 | 14.4k | if constexpr (std::is_same_v<std::remove_cv_t<std::remove_reference_t<Ts>>, CScript>) { | 618 | | // If it is a CScript, extend ret with it. Move or copy the first element instead. | 619 | 14.4k | if (cnt == 0) { | 620 | 14.4k | ret = std::forward<Ts>(input); | 621 | 14.4k | } else { | 622 | 14.4k | ret.insert(ret.end(), input.begin(), input.end()); | 623 | 14.4k | } | 624 | 14.4k | } else { | 625 | | // Otherwise invoke CScript::operator<<. | 626 | 14.4k | ret << input; | 627 | 14.4k | } | 628 | 14.4k | cnt++; | 629 | 14.4k | } (std::forward<Ts>(inputs)), ...); | 630 | | | 631 | 14.4k | return ret; | 632 | 14.4k | } |
_Z11BuildScriptIJ10opcodetypeR7CScriptS0_S2_S0_EES1_DpOT_ Line | Count | Source | 612 | 653k | { | 613 | 653k | CScript ret; | 614 | 653k | int cnt{0}; | 615 | | | 616 | 653k | ([&ret, &cnt] (Ts&& input) { | 617 | 653k | if constexpr (std::is_same_v<std::remove_cv_t<std::remove_reference_t<Ts>>, CScript>) { | 618 | | // If it is a CScript, extend ret with it. Move or copy the first element instead. | 619 | 653k | if (cnt == 0) { | 620 | 653k | ret = std::forward<Ts>(input); | 621 | 653k | } else { | 622 | 653k | ret.insert(ret.end(), input.begin(), input.end()); | 623 | 653k | } | 624 | 653k | } else { | 625 | | // Otherwise invoke CScript::operator<<. | 626 | 653k | ret << input; | 627 | 653k | } | 628 | 653k | cnt++; | 629 | 653k | } (std::forward<Ts>(inputs)), ...); | 630 | | | 631 | 653k | return ret; | 632 | 653k | } |
_Z11BuildScriptIJ7CScript10opcodetypeRS0_S1_S2_S1_EES0_DpOT_ Line | Count | Source | 612 | 45.9k | { | 613 | 45.9k | CScript ret; | 614 | 45.9k | int cnt{0}; | 615 | | | 616 | 45.9k | ([&ret, &cnt] (Ts&& input) { | 617 | 45.9k | if constexpr (std::is_same_v<std::remove_cv_t<std::remove_reference_t<Ts>>, CScript>) { | 618 | | // If it is a CScript, extend ret with it. Move or copy the first element instead. | 619 | 45.9k | if (cnt == 0) { | 620 | 45.9k | ret = std::forward<Ts>(input); | 621 | 45.9k | } else { | 622 | 45.9k | ret.insert(ret.end(), input.begin(), input.end()); | 623 | 45.9k | } | 624 | 45.9k | } else { | 625 | | // Otherwise invoke CScript::operator<<. | 626 | 45.9k | ret << input; | 627 | 45.9k | } | 628 | 45.9k | cnt++; | 629 | 45.9k | } (std::forward<Ts>(inputs)), ...); | 630 | | | 631 | 45.9k | return ret; | 632 | 45.9k | } |
_Z11BuildScriptIJRKjEE7CScriptDpOT_ Line | Count | Source | 612 | 36.2k | { | 613 | 36.2k | CScript ret; | 614 | 36.2k | int cnt{0}; | 615 | | | 616 | 36.2k | ([&ret, &cnt] (Ts&& input) { | 617 | 36.2k | if constexpr (std::is_same_v<std::remove_cv_t<std::remove_reference_t<Ts>>, CScript>) { | 618 | | // If it is a CScript, extend ret with it. Move or copy the first element instead. | 619 | 36.2k | if (cnt == 0) { | 620 | 36.2k | ret = std::forward<Ts>(input); | 621 | 36.2k | } else { | 622 | 36.2k | ret.insert(ret.end(), input.begin(), input.end()); | 623 | 36.2k | } | 624 | 36.2k | } else { | 625 | | // Otherwise invoke CScript::operator<<. | 626 | 36.2k | ret << input; | 627 | 36.2k | } | 628 | 36.2k | cnt++; | 629 | 36.2k | } (std::forward<Ts>(inputs)), ...); | 630 | | | 631 | 36.2k | return ret; | 632 | 36.2k | } |
_Z11BuildScriptIJ7CScriptSt6vectorIhSaIhEEEES0_DpOT_ Line | Count | Source | 612 | 151k | { | 613 | 151k | CScript ret; | 614 | 151k | int cnt{0}; | 615 | | | 616 | 151k | ([&ret, &cnt] (Ts&& input) { | 617 | 151k | if constexpr (std::is_same_v<std::remove_cv_t<std::remove_reference_t<Ts>>, CScript>) { | 618 | | // If it is a CScript, extend ret with it. Move or copy the first element instead. | 619 | 151k | if (cnt == 0) { | 620 | 151k | ret = std::forward<Ts>(input); | 621 | 151k | } else { | 622 | 151k | ret.insert(ret.end(), input.begin(), input.end()); | 623 | 151k | } | 624 | 151k | } else { | 625 | | // Otherwise invoke CScript::operator<<. | 626 | 151k | ret << input; | 627 | 151k | } | 628 | 151k | cnt++; | 629 | 151k | } (std::forward<Ts>(inputs)), ...); | 630 | | | 631 | 151k | return ret; | 632 | 151k | } |
_Z11BuildScriptIJ7CScriptm10opcodetypeEES0_DpOT_ Line | Count | Source | 612 | 36.2k | { | 613 | 36.2k | CScript ret; | 614 | 36.2k | int cnt{0}; | 615 | | | 616 | 36.2k | ([&ret, &cnt] (Ts&& input) { | 617 | 36.2k | if constexpr (std::is_same_v<std::remove_cv_t<std::remove_reference_t<Ts>>, CScript>) { | 618 | | // If it is a CScript, extend ret with it. Move or copy the first element instead. | 619 | 36.2k | if (cnt == 0) { | 620 | 36.2k | ret = std::forward<Ts>(input); | 621 | 36.2k | } else { | 622 | 36.2k | ret.insert(ret.end(), input.begin(), input.end()); | 623 | 36.2k | } | 624 | 36.2k | } else { | 625 | | // Otherwise invoke CScript::operator<<. | 626 | 36.2k | ret << input; | 627 | 36.2k | } | 628 | 36.2k | cnt++; | 629 | 36.2k | } (std::forward<Ts>(inputs)), ...); | 630 | | | 631 | 36.2k | return ret; | 632 | 36.2k | } |
_Z11BuildScriptIJSt6vectorIhSaIhEE10opcodetypeEE7CScriptDpOT_ Line | Count | Source | 612 | 9.47k | { | 613 | 9.47k | CScript ret; | 614 | 9.47k | int cnt{0}; | 615 | | | 616 | 9.47k | ([&ret, &cnt] (Ts&& input) { | 617 | 9.47k | if constexpr (std::is_same_v<std::remove_cv_t<std::remove_reference_t<Ts>>, CScript>) { | 618 | | // If it is a CScript, extend ret with it. Move or copy the first element instead. | 619 | 9.47k | if (cnt == 0) { | 620 | 9.47k | ret = std::forward<Ts>(input); | 621 | 9.47k | } else { | 622 | 9.47k | ret.insert(ret.end(), input.begin(), input.end()); | 623 | 9.47k | } | 624 | 9.47k | } else { | 625 | | // Otherwise invoke CScript::operator<<. | 626 | 9.47k | ret << input; | 627 | 9.47k | } | 628 | 9.47k | cnt++; | 629 | 9.47k | } (std::forward<Ts>(inputs)), ...); | 630 | | | 631 | 9.47k | return ret; | 632 | 9.47k | } |
_Z11BuildScriptIJ7CScriptSt6vectorIhSaIhEE10opcodetypeEES0_DpOT_ Line | Count | Source | 612 | 92.4k | { | 613 | 92.4k | CScript ret; | 614 | 92.4k | int cnt{0}; | 615 | | | 616 | 92.4k | ([&ret, &cnt] (Ts&& input) { | 617 | 92.4k | if constexpr (std::is_same_v<std::remove_cv_t<std::remove_reference_t<Ts>>, CScript>) { | 618 | | // If it is a CScript, extend ret with it. Move or copy the first element instead. | 619 | 92.4k | if (cnt == 0) { | 620 | 92.4k | ret = std::forward<Ts>(input); | 621 | 92.4k | } else { | 622 | 92.4k | ret.insert(ret.end(), input.begin(), input.end()); | 623 | 92.4k | } | 624 | 92.4k | } else { | 625 | | // Otherwise invoke CScript::operator<<. | 626 | 92.4k | ret << input; | 627 | 92.4k | } | 628 | 92.4k | cnt++; | 629 | 92.4k | } (std::forward<Ts>(inputs)), ...); | 630 | | | 631 | 92.4k | return ret; | 632 | 92.4k | } |
_Z11BuildScriptIJ7CScriptRKj10opcodetypeEES0_DpOT_ Line | Count | Source | 612 | 51.6k | { | 613 | 51.6k | CScript ret; | 614 | 51.6k | int cnt{0}; | 615 | | | 616 | 51.6k | ([&ret, &cnt] (Ts&& input) { | 617 | 51.6k | if constexpr (std::is_same_v<std::remove_cv_t<std::remove_reference_t<Ts>>, CScript>) { | 618 | | // If it is a CScript, extend ret with it. Move or copy the first element instead. | 619 | 51.6k | if (cnt == 0) { | 620 | 51.6k | ret = std::forward<Ts>(input); | 621 | 51.6k | } else { | 622 | 51.6k | ret.insert(ret.end(), input.begin(), input.end()); | 623 | 51.6k | } | 624 | 51.6k | } else { | 625 | | // Otherwise invoke CScript::operator<<. | 626 | 51.6k | ret << input; | 627 | 51.6k | } | 628 | 51.6k | cnt++; | 629 | 51.6k | } (std::forward<Ts>(inputs)), ...); | 630 | | | 631 | 51.6k | return ret; | 632 | 51.6k | } |
_Z11BuildScriptIJRKlEE7CScriptDpOT_ Line | Count | Source | 612 | 15.6k | { | 613 | 15.6k | CScript ret; | 614 | 15.6k | int cnt{0}; | 615 | | | 616 | 15.6k | ([&ret, &cnt] (Ts&& input) { | 617 | 15.6k | if constexpr (std::is_same_v<std::remove_cv_t<std::remove_reference_t<Ts>>, CScript>) { | 618 | | // If it is a CScript, extend ret with it. Move or copy the first element instead. | 619 | 15.6k | if (cnt == 0) { | 620 | 15.6k | ret = std::forward<Ts>(input); | 621 | 15.6k | } else { | 622 | 15.6k | ret.insert(ret.end(), input.begin(), input.end()); | 623 | 15.6k | } | 624 | 15.6k | } else { | 625 | | // Otherwise invoke CScript::operator<<. | 626 | 15.6k | ret << input; | 627 | 15.6k | } | 628 | 15.6k | cnt++; | 629 | 15.6k | } (std::forward<Ts>(inputs)), ...); | 630 | | | 631 | 15.6k | return ret; | 632 | 15.6k | } |
_Z11BuildScriptIJRKSt6vectorIhSaIhEEEE7CScriptDpOT_ Line | Count | Source | 612 | 504 | { | 613 | 504 | CScript ret; | 614 | 504 | int cnt{0}; | 615 | | | 616 | 504 | ([&ret, &cnt] (Ts&& input) { | 617 | 504 | if constexpr (std::is_same_v<std::remove_cv_t<std::remove_reference_t<Ts>>, CScript>) { | 618 | | // If it is a CScript, extend ret with it. Move or copy the first element instead. | 619 | 504 | if (cnt == 0) { | 620 | 504 | ret = std::forward<Ts>(input); | 621 | 504 | } else { | 622 | 504 | ret.insert(ret.end(), input.begin(), input.end()); | 623 | 504 | } | 624 | 504 | } else { | 625 | | // Otherwise invoke CScript::operator<<. | 626 | 504 | ret << input; | 627 | 504 | } | 628 | 504 | cnt++; | 629 | 504 | } (std::forward<Ts>(inputs)), ...); | 630 | | | 631 | 504 | return ret; | 632 | 504 | } |
_Z11BuildScriptIJ7CScriptRKSt6vectorIhSaIhEEEES0_DpOT_ Line | Count | Source | 612 | 1.20k | { | 613 | 1.20k | CScript ret; | 614 | 1.20k | int cnt{0}; | 615 | | | 616 | 1.20k | ([&ret, &cnt] (Ts&& input) { | 617 | 1.20k | if constexpr (std::is_same_v<std::remove_cv_t<std::remove_reference_t<Ts>>, CScript>) { | 618 | | // If it is a CScript, extend ret with it. Move or copy the first element instead. | 619 | 1.20k | if (cnt == 0) { | 620 | 1.20k | ret = std::forward<Ts>(input); | 621 | 1.20k | } else { | 622 | 1.20k | ret.insert(ret.end(), input.begin(), input.end()); | 623 | 1.20k | } | 624 | 1.20k | } else { | 625 | | // Otherwise invoke CScript::operator<<. | 626 | 1.20k | ret << input; | 627 | 1.20k | } | 628 | 1.20k | cnt++; | 629 | 1.20k | } (std::forward<Ts>(inputs)), ...); | 630 | | | 631 | 1.20k | return ret; | 632 | 1.20k | } |
_Z11BuildScriptIJRKSt6vectorIhSaIhEE10opcodetypeEE7CScriptDpOT_ Line | Count | Source | 612 | 76 | { | 613 | 76 | CScript ret; | 614 | 76 | int cnt{0}; | 615 | | | 616 | 76 | ([&ret, &cnt] (Ts&& input) { | 617 | 76 | if constexpr (std::is_same_v<std::remove_cv_t<std::remove_reference_t<Ts>>, CScript>) { | 618 | | // If it is a CScript, extend ret with it. Move or copy the first element instead. | 619 | 76 | if (cnt == 0) { | 620 | 76 | ret = std::forward<Ts>(input); | 621 | 76 | } else { | 622 | 76 | ret.insert(ret.end(), input.begin(), input.end()); | 623 | 76 | } | 624 | 76 | } else { | 625 | | // Otherwise invoke CScript::operator<<. | 626 | 76 | ret << input; | 627 | 76 | } | 628 | 76 | cnt++; | 629 | 76 | } (std::forward<Ts>(inputs)), ...); | 630 | | | 631 | 76 | return ret; | 632 | 76 | } |
_Z11BuildScriptIJ7CScriptRKSt6vectorIhSaIhEE10opcodetypeEES0_DpOT_ Line | Count | Source | 612 | 29 | { | 613 | 29 | CScript ret; | 614 | 29 | int cnt{0}; | 615 | | | 616 | 29 | ([&ret, &cnt] (Ts&& input) { | 617 | 29 | if constexpr (std::is_same_v<std::remove_cv_t<std::remove_reference_t<Ts>>, CScript>) { | 618 | | // If it is a CScript, extend ret with it. Move or copy the first element instead. | 619 | 29 | if (cnt == 0) { | 620 | 29 | ret = std::forward<Ts>(input); | 621 | 29 | } else { | 622 | 29 | ret.insert(ret.end(), input.begin(), input.end()); | 623 | 29 | } | 624 | 29 | } else { | 625 | | // Otherwise invoke CScript::operator<<. | 626 | 29 | ret << input; | 627 | 29 | } | 628 | 29 | cnt++; | 629 | 29 | } (std::forward<Ts>(inputs)), ...); | 630 | | | 631 | 29 | return ret; | 632 | 29 | } |
_Z11BuildScriptIJRKmEE7CScriptDpOT_ Line | Count | Source | 612 | 4.62k | { | 613 | 4.62k | CScript ret; | 614 | 4.62k | int cnt{0}; | 615 | | | 616 | 4.62k | ([&ret, &cnt] (Ts&& input) { | 617 | 4.62k | if constexpr (std::is_same_v<std::remove_cv_t<std::remove_reference_t<Ts>>, CScript>) { | 618 | | // If it is a CScript, extend ret with it. Move or copy the first element instead. | 619 | 4.62k | if (cnt == 0) { | 620 | 4.62k | ret = std::forward<Ts>(input); | 621 | 4.62k | } else { | 622 | 4.62k | ret.insert(ret.end(), input.begin(), input.end()); | 623 | 4.62k | } | 624 | 4.62k | } else { | 625 | | // Otherwise invoke CScript::operator<<. | 626 | 4.62k | ret << input; | 627 | 4.62k | } | 628 | 4.62k | cnt++; | 629 | 4.62k | } (std::forward<Ts>(inputs)), ...); | 630 | | | 631 | 4.62k | return ret; | 632 | 4.62k | } |
_Z11BuildScriptIJRKiEE7CScriptDpOT_ Line | Count | Source | 612 | 4.62k | { | 613 | 4.62k | CScript ret; | 614 | 4.62k | int cnt{0}; | 615 | | | 616 | 4.62k | ([&ret, &cnt] (Ts&& input) { | 617 | 4.62k | if constexpr (std::is_same_v<std::remove_cv_t<std::remove_reference_t<Ts>>, CScript>) { | 618 | | // If it is a CScript, extend ret with it. Move or copy the first element instead. | 619 | 4.62k | if (cnt == 0) { | 620 | 4.62k | ret = std::forward<Ts>(input); | 621 | 4.62k | } else { | 622 | 4.62k | ret.insert(ret.end(), input.begin(), input.end()); | 623 | 4.62k | } | 624 | 4.62k | } else { | 625 | | // Otherwise invoke CScript::operator<<. | 626 | 4.62k | ret << input; | 627 | 4.62k | } | 628 | 4.62k | cnt++; | 629 | 4.62k | } (std::forward<Ts>(inputs)), ...); | 630 | | | 631 | 4.62k | return ret; | 632 | 4.62k | } |
_Z11BuildScriptIJRjEE7CScriptDpOT_ Line | Count | Source | 612 | 601k | { | 613 | 601k | CScript ret; | 614 | 601k | int cnt{0}; | 615 | | | 616 | 601k | ([&ret, &cnt] (Ts&& input) { | 617 | 601k | if constexpr (std::is_same_v<std::remove_cv_t<std::remove_reference_t<Ts>>, CScript>) { | 618 | | // If it is a CScript, extend ret with it. Move or copy the first element instead. | 619 | 601k | if (cnt == 0) { | 620 | 601k | ret = std::forward<Ts>(input); | 621 | 601k | } else { | 622 | 601k | ret.insert(ret.end(), input.begin(), input.end()); | 623 | 601k | } | 624 | 601k | } else { | 625 | | // Otherwise invoke CScript::operator<<. | 626 | 601k | ret << input; | 627 | 601k | } | 628 | 601k | cnt++; | 629 | 601k | } (std::forward<Ts>(inputs)), ...); | 630 | | | 631 | 601k | return ret; | 632 | 601k | } |
_Z11BuildScriptIJRmEE7CScriptDpOT_ Line | Count | Source | 612 | 65.2k | { | 613 | 65.2k | CScript ret; | 614 | 65.2k | int cnt{0}; | 615 | | | 616 | 65.2k | ([&ret, &cnt] (Ts&& input) { | 617 | 65.2k | if constexpr (std::is_same_v<std::remove_cv_t<std::remove_reference_t<Ts>>, CScript>) { | 618 | | // If it is a CScript, extend ret with it. Move or copy the first element instead. | 619 | 65.2k | if (cnt == 0) { | 620 | 65.2k | ret = std::forward<Ts>(input); | 621 | 65.2k | } else { | 622 | 65.2k | ret.insert(ret.end(), input.begin(), input.end()); | 623 | 65.2k | } | 624 | 65.2k | } else { | 625 | | // Otherwise invoke CScript::operator<<. | 626 | 65.2k | ret << input; | 627 | 65.2k | } | 628 | 65.2k | cnt++; | 629 | 65.2k | } (std::forward<Ts>(inputs)), ...); | 630 | | | 631 | 65.2k | return ret; | 632 | 65.2k | } |
|
633 | | |
634 | | #endif // BITCOIN_SCRIPT_SCRIPT_H |