I using electron and when I run electron-rebuild command it shows such error:
CXX(target) Release/obj.target/msgpackBinding/src/msgpack.o In file included from /home/pi/.electron-gyp/11.2.3/include/node/v8.h:30, from ../src/msgpack.cc:1: /home/pi/.electron-gyp/11.2.3/include/node/v8-internal.h: In function‘void v8::internal::PerformCastCheck(T*)’: /home/pi/.electron-gyp/11.2.3/include/node/v8-internal.h:418:38: error: ‘remove_cv_t’ is not a member of ‘std’ !std::is_same<Data, std::remove_cv_t<T>>::value>::Perform(data); ^~~~~~~~~~~ /home/pi/.electron-gyp/11.2.3/include/node/v8-internal.h:418:38: note: suggested alternative: ‘remove_cv’ !std::is_same<Data, std::remove_cv_t<T>>::value>::Perform(data); ^~~~~~~~~~~ remove_cv /home/pi/.electron-gyp/11.2.3/include/node/v8-internal.h:418:38: error: ‘remove_cv_t’ is not a member of ‘std’ /home/pi/.electron-gyp/11.2.3/include/node/v8-internal.h:418:38: note: suggested alternative: ‘remove_cv’ !std::is_same<Data, std::remove_cv_t<T>>::value>::Perform(data); ^~~~~~~~~~~ remove_cv /home/pi/.electron-gyp/11.2.3/include/node/v8-internal.h:418:50: error: template argument 2 is invalid !std::is_same<Data, std::remove_cv_t<T>>::value>::Perform(data); ^ /home/pi/.electron-gyp/11.2.3/include/node/v8-internal.h:418:63: error: ‘::Perform’ has not been declared !std::is_same<Data, std::remove_cv_t<T>>::value>::Perform(data); ^~~~~~~ /home/pi/.electron-gyp/11.2.3/include/node/v8-internal.h:418:63: note: suggested alternative: ‘perror’ !std::is_same<Data, std::remove_cv_t<T>>::value>::Perform(data); ^~~~~~~ perror
This issue appears because we have -std=c++11 flag in binding.gyp file:
'cflags_cc': ['-Wall','-O3','-std=c++11',],
Changing this flag to -std=c++14 or removing it fixes the issue.
I am working on linux with gcc-8.
I using electron and when I run
electron-rebuildcommand it shows such error:This issue appears because we have
-std=c++11flag inbinding.gypfile:Changing this flag to
-std=c++14or removing it fixes the issue.I am working on linux with gcc-8.