thread_safety::unsafe means that even "const" copying and all other
const and non-const operations on a data structure and its copies
shall be synchronized; otherwise, the behavior is undefined. Read-only
(very strong/real const) stuff can be done concurrently.
thread_safety::basic means that all "const" operations can be done
concurrently, but mutations shall be synchronized with respect to
"const" operations and other mutations; otherwise, the behavior is
undefined.
thread_safety::strong means "do-whatever-you-want-and-don't-
care-about-synchronization" (i.e. you can also mutate instances
without any synchronization because it's all fully synchronized
internally).
regards,
alexander.