ThreadLocalValue can't have ctor

Under MSVC objects with __declspec(thread) cannot have constructors. This goes against the doc comment for ThreadLocalValue which states "...any class that has a default constructor..."

This begs the question, how do you use ThreadLocalValue with a pointer and have the pointer initialized to null? Does ThreadLocalValue guarantee that POD types are zero-filled? It's not obvious from the code or docs.

Yes, they'll get statically initialised to 0. Didn't realise that the MSVC implementation only supported POD types - I'll add a note about that..

Looks like since ThreadLocalValue doesn’t use __declspec(thread), so should the (comment on) POD-only restriction be removed?? It seems to work fine with non-POD objects.