[Bug c++/94679] link time error: undefined reference to std::projected<...>::operator *() const
redi at gcc dot gnu.org
gcc-bugzilla@gcc.gnu.org
Tue Apr 21 08:41:12 GMT 2020
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=94679
--- Comment #2 from Jonathan Wakely <redi at gcc dot gnu.org> ---
Reduced:
template<typename T>
struct projected
{
T operator*() const;
};
struct IMove
{
template<typename T>
decltype(auto)
operator()(T&& t) const
{
return *t;
}
};
IMove iter_move;
template<typename T>
concept fooable = requires (T t) { iter_move(t); };
template<typename T>
requires fooable<projected<T>>
void func(T)
{
}
int main()
{
int i = 0;
func(i);
}
g++ -std=c++20 use.cc -coverage -fkeep-inline-functions
/usr/bin/ld: /tmp/ccS2FlMR.o: in function `decltype(auto)
IMove::operator()<projected<int>&>(projected<int>&) const':
/tmp/use.cc:13: undefined reference to `projected<int>::operator*() const'
collect2: error: ld returned 1 exit status
More information about the Gcc-bugs
mailing list