Hele, nechci te nak moc presvedcovat, protoze neznam uplne situaci, ale uz to tu nekdo rikal. Nestaci na to opravdu std::atomic ?
Protoze:
1) vic lightly operaci asi nesezenes. Protoze nakonec nakonec stejne budes potrebovat "thread-safe" counter.
2) ruzne typy futuru muzou byt fakt hodne overhead, ktery nepotrebujes resit.
3) ano, samozrejme se to musi nejak inicializovat, ale stejne, pokud se tvuj thread pusti drive/soucasne s ostatnima threadama, tak stejne tezko muzes urcit, jestli uz dobehly nebo ne jinak, nez ze nekde zvenku reknes, co uz melo dobehnout. Ano promise/future ... ale imho atomic counter bude fakt lightweight mnohem vic a muze stacit. Ale fakt neznam cely problem, takze tezko rict...
4) Nepotrebujes nakonec vlastne jen atomic-- ?