Page MenuHomePhabricator

refactor: replace (sizeof(a)/sizeof(a[0])) with C++17 std::size
ClosedPublic

Authored by PiRK on Mar 7 2022, 15:04.

Details

Summary

refactor: iterate arrays via C++11 range-based for loops if idx is not needed

refactor: init vectors via std::{begin,end} to avoid pointer arithmetic

refactor: replace sizeof(a)/sizeof(a[0]) by std::size (C++17)

Removes the macro ARRAYLEN and also substitutes all other uses of the same
"sizeof(a)/sizeof(a[0])" pattern by std::size, available since C++17.

This is a backport of core#20429 and one commit from core#20245
https://github.com/bitcoin/bitcoin/pull/20245/commits/fa3967efdb07f1d22372f4ee2e602ea1fad04a57

The commit from core#20245 is doing the same thing as core#20249, and is unrelated to the rest of its PR, so the partial backport will not cause any issue.

Test Plan

ninja all check-all bitcoin-bench

Diff Detail

Repository
rABC Bitcoin ABC
Lint
Lint Not Applicable
Unit
Tests Not Applicable