I have finally taken up implementing a basic job scheduler in my engine and it would seem getting reliable information on various libraries is either difficult or doesn't really exist. The documentation is there, but Googling turns up a lot of quirks and limitations.
Let me start by saying that I do not want to use Boost - I don't have Boost as a dependency and I do not wish to introduce it as such.
The other options on the table seem to be using native threads, pthreads or std::thread. Of the three std::thread seems to be the most appealing option, especially since I'm already on VS2013. Then again, two-year-old discussions seem to suggest std::thread either used to have or still has portability issues, especially on Win64 (although I'm compiling to 32 bits, so that shouldn't affect me) and MacOS, and compatibility/support problems with compilers for UNIX-based systems. Have these been resolved?
I'm going to write a lightweight wrapper for my threading code anyway so branching wouldn't really an issue, but I'm still not particularly fond of the idea.
In short, barring the use of Boost, what would be the most lightweight and simple solution?