Currently block signatures within a module just count upwards from zero, with functions signatures doing the same. Once entry blocks use the signature of their enclosing function—no bug filed yet—it could become clumsy to devise a scheme for still keeping the IDs sufficiently separate to catch most control flow errors. Hence random IDs.
Using the facilities provided in <random> is probably good enough, otherwise one could look into UUIDs, where speed might or might not be an issue.
Currently block signatures within a module just count upwards from zero, with functions signatures doing the same. Once entry blocks use the signature of their enclosing function—no bug filed yet—it could become clumsy to devise a scheme for still keeping the IDs sufficiently separate to catch most control flow errors. Hence random IDs.
Using the facilities provided in
<random>is probably good enough, otherwise one could look into UUIDs, where speed might or might not be an issue.