This may be due to automatic function and operator registration.
Visual Studio 2015 turns these on by default, but g++ and clang++ do not have them as defaults and you should pass the flag -std=c++1y or -std=c++14, or similar for your compiler. If there are a myriad of errors relating to std::index_sequence, type traits, and other std:: members, it is likely you have not turned on your C++14 switch for your compiler.Here is some basic advice about working with these types: A myriad of compiler errors can occur when something goes wrong.