Merge pull request #817 from RosettaCommons/vmullig/mac_clang_issue
Fix the Mac clang 3.7.0 issue
Mac clang 3.7.0 has thread_local as a C++ language keyword, albeit one that throws an error if used in the absence of c++11. This means that our attempts to define thread_local when not using c++11 throw an error. This is an attempt to remedy this. Instead of defining thread_local, we define THREAD_LOCAL as:
-- nothing if we're not using c++11
-- thread_local if we are
Then we replace all instances of thread_local in the code with THREAD_LOCAL.
Note that there's still an issue to resolve in one unit test (ResidueGraphTypesTests), which has the following lines in it:
// Unit Headers
#define private public
#include <core/chemical/ResidueType.hh>
#undef private
This is still preventing the Mac clang unit tests from compiling. I can see why someone would do this to expose the private functions in the class that they're trying to test, but I also think it's important that the compiler flag attempts to redefine language keywords.