[clang] [clang] check deduction consistency when partial ordering function templates (PR #100692)
Fangrui Song via cfe-commits
cfe-commits at lists.llvm.org
Fri Jul 26 19:16:57 PDT 2024
MaskRay wrote:
Building abseil-cpp with the new Clang runs into errors. Are they expected?
```sh
git clone https://github.com/abseil/abseil-cpp/
cd abseil-cpp
cmake -GNinja -S. -Bout/release -DCMAKE_BUILD_TYPE=Release -DCMAKE_CXX_COMPILER=/tmp/Rel/bin/clang++ -DCMAKE_C_COMPILER=/tmp/Rel/bin/clang
ninja -C out/release
```
```
In file included from /tmp/p/abseil-cpp/absl/flags/parse.cc:16:
In file included from /tmp/p/abseil-cpp/absl/flags/parse.h:26:
In file included from /usr/lib/gcc/x86_64-linux-gnu/14/../../../../include/c++/14/string:67:
In file included from /usr/lib/gcc/x86_64-linux-gnu/14/../../../../include/c++/14/bits/memory_resource.h:47:
/usr/lib/gcc/x86_64-linux-gnu/14/../../../../include/c++/14/tuple:2590:14: error: call to constructor of 'tuple<basic_string_view<char, char_traits<char>> &, basic_string_view<char, char_traits<char>> &, bool &>' is ambiguous
2590 | { return tuple<_Elements&...>(__args...); }
| ^ ~~~~~~
/tmp/p/abseil-cpp/absl/flags/parse.cc:820:10: note: in instantiation of function template specialization 'std::tie<std::basic_string_view<char>, std::basic_string_view<char>, bool>' requested here
820 | std::tie(flag_name, value, is_empty_value) =
| ^
/usr/lib/gcc/x86_64-linux-gnu/14/../../../../include/c++/14/tuple:1334:2: note: candidate constructor [with _NotEmpty = true, $1 = true]
1334 | tuple(const _Elements&... __elements)
| ^
/usr/lib/gcc/x86_64-linux-gnu/14/../../../../include/c++/14/tuple:1349:2: note: candidate constructor [with _UElements = <std::basic_string_view<char> &, std::basic_string_view<char> &, bool &>, _Valid = true, $2 = true]
1349 | tuple(_UElements&&... __elements)
| ^
```
https://github.com/llvm/llvm-project/pull/100692
More information about the cfe-commits
mailing list