Why atomic<T> Has No Constructors

The template class atomic<T> deliberately has no constructors because examples such as GetUniqueInteger are commonly required to work correctly even before all file-scope constructors have been called. If atomic<T> had constructors, a file-scope instance might be initialized after it had been referenced.

You can rely on zero initialization to initialize an atomic<T> to 0. To create an atomic<T> with a specific value, default-construct it first, and afterward assign a value to it. For example:

	atomic<int>
	x; x = 2048;

Get Intel Threading Building Blocks now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.