I was just going to copy over some atomic code from my own library I use and use that to fix it, but if you guys want to do it then be my guest.
You can use intrinsics. std::atomic, like all of c++, is just bloated wrappers around c. Plus, allegro compiles as c code so simple is fine. For example, std::atomic::operator++ is the equivalent of:
_InterlockedIncrement(); on windows, or
__sync_add_and_fetch(). on gcc, etc.
Lies! Nothing in c++11 makes anything easier. Only sadness will you find.