Quantcast
Channel: c++11 equivalent of c# Interlocked.Increment - Stack Overflow
Viewing all articles
Browse latest Browse all 3

c++11 equivalent of c# Interlocked.Increment

$
0
0

I'm rewriting this c# code to c++:

public class LightOrder{    private static int internalIdCounter;    public int InternalId { get; private set; }    // i control myself to call this method exactly once for each order    public void AssignInternalId(int ordersExecutorId)    {        // if InternalId is already assigned, i.e. != 0, i can print error or something        InternalId = Interlocked.Increment(ref internalIdCounter);        // more    }    // more}

This works fine - each order has sequential id even if AssignInternalId is called from different threads parallel.

What is closest c++ equavalent to this code? Should I declare InternalId as std::atomic<int> and then just use ++? Or I should declare InternalId as int and use something like std::atomic_fetch_add?


Viewing all articles
Browse latest Browse all 3

Latest Images

Trending Articles





Latest Images