You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
It fails to compile for me using GCC 6.3.0 on SmartOS (Solaris derivative). Renaming the is_empty() function to something else fixes the problem. The conflict seems to be with the STL's std::is_empty
mordac ~/passvet/quotient-filter>gmake
g++ test.cc qf.c -o test
test.cc: In function ‘void qf_consistent(quotient_filter*)’:
test.cc:103:9: error: reference to ‘is_empty’ is ambiguous
if (is_empty(elt)) {
^~~~~~~~
In file included from test.cc:8:0:
qf.c:127:20: note: candidates are: bool is_empty(uint64_t)
static inline bool is_empty(uint64_t elt)
^~~~~~~~
In file included from /usr/local/include/c++/6.3.0/bits/move.h:57:0,
from /usr/local/include/c++/6.3.0/bits/stl_pair.h:59,
from /usr/local/include/c++/6.3.0/bits/stl_algobase.h:64,
from /usr/local/include/c++/6.3.0/bits/stl_tree.h:63,
from /usr/local/include/c++/6.3.0/set:60,
from test.cc:13:
/usr/local/include/c++/6.3.0/type_traits:701:12: note: template<class _Tp> struct std::is_empty
struct is_empty
^~~~~~~~
In file included from /usr/local/include/c++/6.3.0/cassert:44:0,
from test.cc:15:
test.cc:113:15: error: reference to ‘is_empty’ is ambiguous
assert(!is_empty(prev));
^
In file included from test.cc:8:0:
qf.c:127:20: note: candidates are: bool is_empty(uint64_t)
static inline bool is_empty(uint64_t elt)
^~~~~~~~
In file included from /usr/local/include/c++/6.3.0/bits/move.h:57:0,
from /usr/local/include/c++/6.3.0/bits/stl_pair.h:59,
from /usr/local/include/c++/6.3.0/bits/stl_algobase.h:64,
from /usr/local/include/c++/6.3.0/bits/stl_tree.h:63,
from /usr/local/include/c++/6.3.0/set:60,
from test.cc:13:
/usr/local/include/c++/6.3.0/type_traits:701:12: note: template<class _Tp> struct std::is_empty
struct is_empty
^~~~~~~~
test.cc:117:10: error: reference to ‘is_empty’ is ambiguous
if (!is_empty(elt)) {
^~~~~~~~
In file included from test.cc:8:0:
qf.c:127:20: note: candidates are: bool is_empty(uint64_t)
static inline bool is_empty(uint64_t elt)
^~~~~~~~
In file included from /usr/local/include/c++/6.3.0/bits/move.h:57:0,
from /usr/local/include/c++/6.3.0/bits/stl_pair.h:59,
from /usr/local/include/c++/6.3.0/bits/stl_algobase.h:64,
from /usr/local/include/c++/6.3.0/bits/stl_tree.h:63,
from /usr/local/include/c++/6.3.0/set:60,
from test.cc:13:
/usr/local/include/c++/6.3.0/type_traits:701:12: note: template<class _Tp> struct std::is_empty
struct is_empty
^~~~~~~~
test.cc: In function ‘uint64_t genhash(quotient_filter*, bool, std::set<long unsigned int>&)’:
test.cc:145:11: error: reference to ‘is_empty’ is ambiguous
if (is_empty(get_elem(qf, probe))) {
^~~~~~~~
In file included from test.cc:8:0:
qf.c:127:20: note: candidates are: bool is_empty(uint64_t)
static inline bool is_empty(uint64_t elt)
^~~~~~~~
In file included from /usr/local/include/c++/6.3.0/bits/move.h:57:0,
from /usr/local/include/c++/6.3.0/bits/stl_pair.h:59,
from /usr/local/include/c++/6.3.0/bits/stl_algobase.h:64,
from /usr/local/include/c++/6.3.0/bits/stl_tree.h:63,
from /usr/local/include/c++/6.3.0/set:60,
from test.cc:13:
/usr/local/include/c++/6.3.0/type_traits:701:12: note: template<class _Tp> struct std::is_empty
struct is_empty
^~~~~~~~
gmake: *** [<builtin>: test] Error 1
The text was updated successfully, but these errors were encountered:
Thanks for the report! Sorry I didn't see it earlier. I've fixed the build:
To github.com:vedantk/quotient-filter.git 54539e6..a65a571 master -> master
It fails to compile for me using GCC 6.3.0 on SmartOS (Solaris derivative). Renaming the
is_empty()
function to something else fixes the problem. The conflict seems to be with the STL's std::is_emptyThe text was updated successfully, but these errors were encountered: