Author
anonymous
over 4 years ago
Language
C++
Compiler
gcc HEAD 12.0.0 20210503 (experimental)
Options
Warnings
Boost 1.73.0
C++2b(GNU)
no pedantic
Author
anonymous
over 4 years ago
$ g++ prog.cc -Wall -Wextra -I/opt/wandbox/boost-1.73.0/gcc-head/include -std=gnu++2b
prog.cc: In function 'int main()':
prog.cc:26:48: error: call of overloaded 'HasMakeNullFunction<Dog>()' is ambiguous
26 | constexpr bool b = HasMakeNullFunction<Dog>(); // True
| ~~~~~~~~~~~~~~~~~~~~~~~~^~
prog.cc:12:16: note: candidate: 'constexpr decltype ((declval<T>().makeNull(), bool())) HasMakeNullFunction() [with T = Dog; decltype ((declval<T>().makeNull(), bool())) = bool]'
12 | constexpr auto HasMakeNullFunction() -> decltype(std::declval<T>().makeNull(), bool())
| ^~~~~~~~~~~~~~~~~~~
prog.cc:18:16: note: candidate: 'constexpr bool HasMakeNullFunction(void*) [with T = Dog]'
18 | constexpr bool HasMakeNullFunction(void* p = nullptr)
| ^~~~~~~~~~~~~~~~~~~
prog.cc: In instantiation of 'constexpr bool HasMakeNullFunction(void*) [with T = int]':
prog.cc:27:49: required from here
prog.cc:18:42: warning: unused parameter 'p' [-Wunused-parameter]
18 | constexpr bool HasMakeNullFunction(void* p = nullptr)
| ~~~~~~^~~~~~~~~~~
prog.cc:26:20: warning: unused variable 'b' [-Wunused-variable]
26 | constexpr bool b = HasMakeNullFunction<Dog>(); // True
| ^
prog.cc:27:20: warning: unused variable 'b2' [-Wunused-variable]
27 | constexpr bool b2 = HasMakeNullFunction<int>(); // False
| ^~
Exit Code:
1