-#if __GNUC__ < 5
-namespace std{
-template<typename T, typename... Args>
-std::unique_ptr<T> make_unique( Args&&... args ) {
- return std::unique_ptr<T>( new T( std::forward<Args>(args)... ));
-}
+#if __GNUC__ >= 5 || (__GNUC__ == 4 && __GNUC_MINOR__ > 8)
+#else
+namespace std {
+ template<typename T, typename... Args>
+ std::unique_ptr<T> make_unique( Args&& ... args ) {
+ return std::unique_ptr<T>( new T( std::forward<Args>( args )... ) );
+ }