no template named 'enable_if_t' in namespace 'std'; did you mean
'enable_if'?
template~^~~
enable_if
/usr/bin/../lib/gcc/x86_64-linux-gnu/4.8/../../../../include/c++/4.8/type_traits:1766:12: note:
'enable_if' declared here
struct enable_if
^
how do i fix this?
What linux distribution? It looks like your compiler is using a very old stdc++ lib
I have the same problem...
[ 77%] Building LLVM bitcode wcsftime.c.bc
[ 77%] Linking LLVM bitcode library libc.bc
[ 77%] Built target libc
[ 78%] Linking CXX static library ../../lib/libpasses.a
[ 78%] Built target passes
In file included from /home/eos/eosio/libraries/fc/src/crypto/elliptic_common.cpp:2:
In file included from /home/eos/eosio/libraries/fc/include/fc/crypto/elliptic.hpp:3:
In file included from /home/eos/eosio/libraries/fc/include/fc/crypto/common.hpp:7:
/home/eos/eosio/libraries/fc/include/fc/static_variant.hpp:358:28: error: no template named 'enable_if_t' in namespace 'std'; did you mean 'enable_if'?
template<int Pos, std::enable_if_t<Pos < impl::type_info<Types...>::size,int> = 1>
~~~~~^~~~~~~~~~~
enable_if
/usr/bin/../lib/gcc/x86_64-linux-gnu/4.8/../../../../include/c++/4.8/type_traits:1766:12: note: 'enable_if' declared here
struct enable_if
^
In file included from /home/eos/eosio/libraries/fc/src/crypto/elliptic_impl_priv.cpp:5:
In file included from /home/eos/eosio/libraries/fc/src/crypto/_elliptic_impl_priv.hpp:2:
In file included from /home/eos/eosio/libraries/fc/include/fc/crypto/elliptic.hpp:3:
In file included from /home/eos/eosio/libraries/fc/include/fc/crypto/common.hpp:7:
/home/eos/eosio/libraries/fc/include/fc/static_variant.hpp:358:28: error: no template named 'enable_if_t' in namespace 'std'; did you mean 'enable_if'?
template<int Pos, std::enable_if_t<Pos < impl::type_info<Types...>::size,int> = 1>
~~~~~^~~~~~~~~~~
enable_if
/usr/bin/../lib/gcc/x86_64-linux-gnu/4.8/../../../../include/c++/4.8/type_traits:1766:12: note: 'enable_if' declared here
struct enable_if
^
In file included from /home/eos/eosio/libraries/fc/src/crypto/signature.cpp:1:
In file included from /home/eos/eosio/libraries/fc/include/fc/crypto/signature.hpp:2:
/home/eos/eosio/libraries/fc/include/fc/static_variant.hpp:358:28: error: no template named 'enable_if_t' in namespace 'std'; did you mean 'enable_if'?
template<int Pos, std::enable_if_t<Pos < impl::type_info<Types...>::size,int> = 1>
~~~~~^~~~~~~~~~~
enable_if
/usr/bin/../lib/gcc/x86_64-linux-gnu/4.8/../../../../include/c++/4.8/type_traits:1766:12: note: 'enable_if' declared here
struct enable_if
^
1 error generated.
make[2]: *** [libraries/fc/CMakeFiles/fc.dir/src/crypto/elliptic_common.cpp.o] Error 1
make[2]: *** Waiting for unfinished jobs....
1 error generated.
make[2]: *** [libraries/fc/CMakeFiles/fc.dir/src/crypto/elliptic_impl_priv.cpp.o] Error 1
In file included from /home/eos/eosio/libraries/fc/src/crypto/public_key.cpp:1:
In file included from /home/eos/eosio/libraries/fc/include/fc/crypto/public_key.hpp:2:
In file included from /home/eos/eosio/libraries/fc/include/fc/crypto/elliptic.hpp:3:
In file included from /home/eos/eosio/libraries/fc/include/fc/crypto/common.hpp:7:
/home/eos/eosio/libraries/fc/include/fc/static_variant.hpp:358:28: error: no template named 'enable_if_t' in namespace 'std'; did you mean 'enable_if'?
template<int Pos, std::enable_if_t<Pos < impl::type_info<Types...>::size,int> = 1>
~~~~~^~~~~~~~~~~
enable_if
/usr/bin/../lib/gcc/x86_64-linux-gnu/4.8/../../../../include/c++/4.8/type_traits:1766:12: note: 'enable_if' declared here
struct enable_if
^
In file included from /home/eos/eosio/libraries/fc/src/crypto/elliptic_secp256k1.cpp:1:
In file included from /home/eos/eosio/libraries/fc/include/fc/crypto/elliptic.hpp:3:
In file included from /home/eos/eosio/libraries/fc/include/fc/crypto/common.hpp:7:
/home/eos/eosio/libraries/fc/include/fc/static_variant.hpp:358:28: error: no template named 'enable_if_t' in namespace 'std'; did you mean 'enable_if'?
template<int Pos, std::enable_if_t<Pos < impl::type_info<Types...>::size,int> = 1>
~~~~~^~~~~~~~~~~
enable_if
/usr/bin/../lib/gcc/x86_64-linux-gnu/4.8/../../../../include/c++/4.8/type_traits:1766:12: note: 'enable_if' declared here
struct enable_if
^
In file included from /home/eos/eosio/libraries/fc/src/crypto/public_key.cpp:1:
In file included from /home/eos/eosio/libraries/fc/include/fc/crypto/public_key.hpp:2:
In file included from /home/eos/eosio/libraries/fc/include/fc/crypto/elliptic.hpp:3:
In file included from /home/eos/eosio/libraries/fc/include/fc/crypto/common.hpp:7:
/home/eos/eosio/libraries/fc/include/fc/static_variant.hpp:358:83: error: a non-type template parameter cannot have type 'std::enable_if<0 <
impl::type_info<public_key_shim, public_key_shim>::size, int>'
template<int Pos, std::enable_if_t<Pos < impl::type_info<Types...>::size,int> = 1>
^
/home/eos/eosio/libraries/fc/src/crypto/public_key.cpp:34:75: note: while substituting prior template arguments into non-type template parameter
[with Pos = 0]
using default_type = typename public_key::storage_type::template type_at<0>;
^~~~~~~~~~
/home/eos/eosio/libraries/fc/src/crypto/public_key.cpp:34:84: note: while checking a default template argument used here
using default_type = typename public_key::storage_type::template type_at<0>;
~~~~~~~~~^
/home/eos/eosio/libraries/fc/src/crypto/public_key.cpp:35:28: error: use of undeclared identifier 'default_type'; did you mean 'default_ops'?
using data_type = default_type::data_type;
^~~~~~~~~~~~
default_ops
/home/eos/opt/boost_1_66_0/include/boost/multiprecision/cpp_int.hpp:1872:11: note: 'default_ops' declared here
namespace default_ops{
^
In file included from /home/eos/eosio/libraries/fc/src/crypto/elliptic_r1.cpp:1:
In file included from /home/eos/eosio/libraries/fc/include/fc/crypto/elliptic_r1.hpp:3:
In file included from /home/eos/eosio/libraries/fc/include/fc/crypto/common.hpp:7:
/home/eos/eosio/libraries/fc/include/fc/static_variant.hpp:358:28: error: no template named 'enable_if_t' in namespace 'std'; did you mean 'enable_if'?
template<int Pos, std::enable_if_t<Pos < impl::type_info<Types...>::size,int> = 1>
~~~~~^~~~~~~~~~~
enable_if
/usr/bin/../lib/gcc/x86_64-linux-gnu/4.8/../../../../include/c++/4.8/type_traits:1766:12: note: 'enable_if' declared here
struct enable_if
^
/home/eos/eosio/libraries/fc/src/crypto/public_key.cpp:35:42: error: no type named 'data_type' in namespace 'boost::multiprecision::default_ops'
using data_type = default_type::data_type;
~~~~~~~~~~~~~~^
/home/eos/eosio/libraries/fc/src/crypto/public_key.cpp:36:43: error: use of undeclared identifier 'data_type'
using wrapper = checksummed_data<data_type>;
^
/home/eos/eosio/libraries/fc/src/crypto/public_key.cpp:38:35: error: use of undeclared identifier 'data_type'
if (bin.size() == sizeof(data_type) + sizeof(uint32_t)) {
^
/home/eos/eosio/libraries/fc/src/crypto/public_key.cpp:39:44: error: use of undeclared identifier 'wrapper'; did you mean 'wrapped'?
auto wrapped = fc::raw::unpack<wrapper>(bin);
^~~~~~~
wrapped
/home/eos/eosio/libraries/fc/src/crypto/public_key.cpp:39:18: note: 'wrapped' declared here
auto wrapped = fc::raw::unpack<wrapper>(bin);
^
/home/eos/eosio/libraries/fc/src/crypto/public_key.cpp:39:44: error: variable 'wrapped' declared with 'auto' type cannot appear in its own initializer
auto wrapped = fc::raw::unpack<wrapper>(bin);
^
/home/eos/eosio/libraries/fc/src/crypto/public_key.cpp:40:23: error: use of undeclared identifier 'wrapper'
FC_ASSERT(wrapper::calculate_checksum(wrapped.data) == wrapped.check);
^
In file included from /home/eos/eosio/libraries/fc/src/crypto/signature.cpp:1:
In file included from /home/eos/eosio/libraries/fc/include/fc/crypto/signature.hpp:2:
/home/eos/eosio/libraries/fc/include/fc/static_variant.hpp:358:83: error: a non-type template parameter cannot have type 'std::enable_if<0 <
impl::type_info<signature_shim, signature_shim>::size, int>'
template<int Pos, std::enable_if_t<Pos < impl::type_info<Types...>::size,int> = 1>
^
/home/eos/eosio/libraries/fc/src/crypto/signature.cpp:22:65: note: while substituting prior template arguments into non-type template parameter
[with Pos = 0]
using default_type = signature::storage_type::template type_at<0>;
^~~~~~~~~~
/home/eos/eosio/libraries/fc/src/crypto/signature.cpp:22:74: note: while checking a default template argument used here
using default_type = signature::storage_type::template type_at<0>;
~~~~~~~~~^
/home/eos/eosio/libraries/fc/src/crypto/elliptic_r1.cpp:21:22: warning: unused variable 'init' [-Wunused-variable]
static int init = init_openssl();
^
/home/eos/eosio/libraries/fc/src/crypto/elliptic_r1.cpp:43:22: warning: unused variable 'init' [-Wunused-variable]
static int init = init_openssl();
^
/home/eos/eosio/libraries/fc/src/crypto/signature.cpp:23:28: error: use of undeclared identifier 'default_type'; did you mean 'default_ops'?
using data_type = default_type::data_type;
^~~~~~~~~~~~
default_ops
/home/eos/opt/boost_1_66_0/include/boost/multiprecision/cpp_int.hpp:1872:11: note: 'default_ops' declared here
namespace default_ops{
^
/home/eos/eosio/libraries/fc/src/crypto/signature.cpp:23:42: error: no type named 'data_type' in namespace 'boost::multiprecision::default_ops'
using data_type = default_type::data_type;
~~~~~~~~~~~~~~^
/home/eos/eosio/libraries/fc/src/crypto/signature.cpp:24:43: error: use of undeclared identifier 'data_type'
using wrapper = checksummed_data<data_type>;
^
/home/eos/eosio/libraries/fc/src/crypto/signature.cpp:26:35: error: use of undeclared identifier 'data_type'
if (bin.size() == sizeof(data_type) + sizeof(uint32_t)) {
^
/home/eos/eosio/libraries/fc/src/crypto/signature.cpp:27:44: error: use of undeclared identifier 'wrapper'; did you mean 'wrapped'?
auto wrapped = fc::raw::unpack<wrapper>(bin);
^~~~~~~
wrapped
/home/eos/eosio/libraries/fc/src/crypto/signature.cpp:27:18: note: 'wrapped' declared here
auto wrapped = fc::raw::unpack<wrapper>(bin);
^
/home/eos/eosio/libraries/fc/src/crypto/signature.cpp:27:44: error: variable 'wrapped' declared with 'auto' type cannot appear in its own initializer
auto wrapped = fc::raw::unpack<wrapper>(bin);
^
/home/eos/eosio/libraries/fc/src/crypto/signature.cpp:28:23: error: use of undeclared identifier 'wrapper'
FC_ASSERT(wrapper::calculate_checksum(wrapped.data) == wrapped.check);
^
In file included from /home/eos/eosio/libraries/fc/src/crypto/private_key.cpp:1:
In file included from /home/eos/eosio/libraries/fc/include/fc/crypto/private_key.hpp:2:
In file included from /home/eos/eosio/libraries/fc/include/fc/crypto/elliptic.hpp:3:
In file included from /home/eos/eosio/libraries/fc/include/fc/crypto/common.hpp:7:
/home/eos/eosio/libraries/fc/include/fc/static_variant.hpp:358:28: error: no template named 'enable_if_t' in namespace 'std'; did you mean 'enable_if'?
template<int Pos, std::enable_if_t<Pos < impl::type_info<Types...>::size,int> = 1>
~~~~~^~~~~~~~~~~
enable_if
/usr/bin/../lib/gcc/x86_64-linux-gnu/4.8/../../../../include/c++/4.8/type_traits:1766:12: note: 'enable_if' declared here
struct enable_if
^
9 errors generated.
make[2]: *** [libraries/fc/CMakeFiles/fc.dir/src/crypto/public_key.cpp.o] Error 1
In file included from /home/eos/eosio/libraries/fc/src/crypto/private_key.cpp:1:
In file included from /home/eos/eosio/libraries/fc/include/fc/crypto/private_key.hpp:2:
In file included from /home/eos/eosio/libraries/fc/include/fc/crypto/elliptic.hpp:3:
In file included from /home/eos/eosio/libraries/fc/include/fc/crypto/common.hpp:7:
/home/eos/eosio/libraries/fc/include/fc/static_variant.hpp:358:83: error: a non-type template parameter cannot have type 'std::enable_if<0 <
impl::type_info<private_key_shim, private_key_shim>::size, int>'
template<int Pos, std::enable_if_t<Pos < impl::type_info<Types...>::size,int> = 1>
^
/home/eos/eosio/libraries/fc/src/crypto/private_key.cpp:95:67: note: while substituting prior template arguments into non-type template parameter
[with Pos = 0]
using default_type = private_key::storage_type::template type_at<0>;
^~~~~~~~~~
/home/eos/eosio/libraries/fc/src/crypto/private_key.cpp:95:76: note: while checking a default template argument used here
using default_type = private_key::storage_type::template type_at<0>;
~~~~~~~~~^
/home/eos/eosio/libraries/fc/src/crypto/private_key.cpp:96:52: error: use of undeclared identifier 'default_type'; did you mean 'default_ops'?
return private_key::storage_type(from_wif<default_type>(base58str));
^~~~~~~~~~~~
default_ops
/home/eos/opt/boost_1_66_0/include/boost/multiprecision/cpp_int.hpp:1872:11: note: 'default_ops' declared here
namespace default_ops{
^
/home/eos/eosio/libraries/fc/src/crypto/private_key.cpp:96:52: error: unexpected namespace name 'default_ops': expected expression
return private_key::storage_type(from_wif<default_type>(base58str));
^
In file included from /home/eos/eosio/libraries/fc/src/crypto/private_key.cpp:1:
In file included from /home/eos/eosio/libraries/fc/include/fc/crypto/private_key.hpp:2:
In file included from /home/eos/eosio/libraries/fc/include/fc/crypto/elliptic.hpp:3:
In file included from /home/eos/eosio/libraries/fc/include/fc/crypto/common.hpp:7:
/home/eos/eosio/libraries/fc/include/fc/static_variant.hpp:358:83: error: a non-type template parameter cannot have type 'std::enable_if<0 <
impl::type_info<private_key_shim, private_key_shim>::size, int>'
template<int Pos, std::enable_if_t<Pos < impl::type_info<Types...>::size,int> = 1>
^
/home/eos/eosio/libraries/fc/src/crypto/private_key.cpp:116:54: note: while substituting prior template arguments into non-type template parameter
[with Pos = 0]
using default_type = storage_type::template type_at<0>;
^~~~~~~~~~
/home/eos/eosio/libraries/fc/src/crypto/private_key.cpp:116:63: note: while checking a default template argument used here
using default_type = storage_type::template type_at<0>;
~~~~~~~~~^
/home/eos/eosio/libraries/fc/src/crypto/private_key.cpp:117:46: error: use of undeclared identifier 'default_type'; did you mean 'default_ops'?
return to_wif(_storage.template get<default_type>());
^~~~~~~~~~~~
default_ops
/home/eos/opt/boost_1_66_0/include/boost/multiprecision/cpp_int.hpp:1872:11: note: 'default_ops' declared here
namespace default_ops{
^
/home/eos/eosio/libraries/fc/src/crypto/private_key.cpp:117:46: error: unexpected namespace name 'default_ops': expected expression
return to_wif(_storage.template get<default_type>());
^
/home/eos/eosio/libraries/fc/src/crypto/private_key.cpp:117:59: error: expected unqualified-id
return to_wif(_storage.template get<default_type>());
^
1 error generated.
make[2]: *** [libraries/fc/CMakeFiles/fc.dir/src/crypto/elliptic_secp256k1.cpp.o] Error 1
9 errors generated.
2 warnings and 1 error generated.
make[2]: *** [libraries/fc/CMakeFiles/fc.dir/src/crypto/signature.cpp.o] Error 1
make[2]: *** [libraries/fc/CMakeFiles/fc.dir/src/crypto/elliptic_r1.cpp.o] Error 1
8 errors generated.
make[2]: *** [libraries/fc/CMakeFiles/fc.dir/src/crypto/private_key.cpp.o] Error 1
make[1]: *** [libraries/fc/CMakeFiles/fc.dir/all] Error 2
make: *** [all] Error 2
>>>>>>>>>>>>>>>>>>>> MAKE building EOSIO has exited with the above error.
Upgraded to g++-6 and the issue is resolved.
sudo add-apt-repository ppa:ubuntu-toolchain-r/test
sudo apt update
sudo apt install gcc-6
Most helpful comment
Upgraded to g++-6 and the issue is resolved.