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: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); ^~~~~~~ perrorThis 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.