https://gcc.gnu.org/bugzilla/show_bug.cgi?id=98569
Bug ID: 98569 Summary: concept error message does not report the file location Product: gcc Version: 11.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c++ Assignee: unassigned at gcc dot gnu.org Reporter: nico at josuttis dot de Target Milestone: --- Look here: https://wandbox.org/permlink/6Di4rLNS5H9TNL2R Here is what is wrong in the error message: > prog.cc: In function 'int main()': > prog.cc:18:14: error: no matching function for call to > 'add(std::vector<std::atomic<int> >&, std::atomic<int>&)' > 18 | add(aiVec, ai); // ERROR: cannot copy/move atomics > | ^ > prog.cc:9:6: note: candidate: 'template<class Coll, class T> requires > convertible_to<T, typename Coll::value_type> void add(Coll&, const T&)' > 9 | void add(Coll& coll, const T& val) > | ^~~ > prog.cc:9:6: note: template argument deduction/substitution failed: > prog.cc:9:6: note: constraints not satisfied > In file included from /opt/wandbox/gcc-head/include/c++/11.0.0/compare:39, > from > /opt/wandbox/gcc-head/include/c++/11.0.0/bits/stl_pair.h:65, > from > /opt/wandbox/gcc-head/include/c++/11.0.0/bits/stl_algobase.h:64, > from > /opt/wandbox/gcc-head/include/c++/11.0.0/bits/char_traits.h:39, > from /opt/wandbox/gcc-head/include/c++/11.0.0/ios:40, > from /opt/wandbox/gcc-head/include/c++/11.0.0/ostream:38, > from /opt/wandbox/gcc-head/include/c++/11.0.0/iostream:39, > from prog.cc:1: > /opt/wandbox/gcc-head/include/c++/11.0.0/concepts: In substitution of > 'template<class Coll, class T> requires convertible_to<T, typename > Coll::value_type> void add(Coll&, const T&) [with Coll = > std::vector<std::atomic<int> >; T = std::atomic<int>]': ^^^^^ HERE ^^^^ I assume that this has to be something like prog.cc:9:6: In substitution ... instead of: /opt/wandbox/gcc-head/include/c++/11.0.0/concepts: In substitution ... because it refers to my code not to any code in any header file. > prog.cc:18:14: required from here > /opt/wandbox/gcc-head/include/c++/11.0.0/concepts:72:13: required for the > satisfaction of 'convertible_to<T, typename Coll::value_type>' [with T = > std::atomic<int>; Coll = std::vector<std::atomic<int>, > std::allocator<std::atomic<int> > >] > /opt/wandbox/gcc-head/include/c++/11.0.0/concepts:72:30: note: the expression > 'is_convertible_v<_From, _To> [with _From = std::atomic<int>; _To = > std::atomic<int>]' evaluated to 'false' > 72 | concept convertible_to = is_convertible_v<_From, _To> > | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~