public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug c++/103923] New: is_invocable<const T &, ...> inexplicably fails
@ 2022-01-05 23:16 jengelh at inai dot de
  2022-01-05 23:19 ` [Bug libstdc++/103923] " pinskia at gcc dot gnu.org
                   ` (8 more replies)
  0 siblings, 9 replies; 10+ messages in thread
From: jengelh at inai dot de @ 2022-01-05 23:16 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=103923

            Bug ID: 103923
           Summary: is_invocable<const T &, ...> inexplicably fails
           Product: gcc
           Version: 11.2.1
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: c++
          Assignee: unassigned at gcc dot gnu.org
          Reporter: jengelh at inai dot de
  Target Milestone: ---

Input:

#include <cstdio>
#include <typeinfo>
#include <type_traits>
#include <unordered_map>
struct T {
        struct K {
                bool operator==(const K &) const { return 0; }
                bool operator<(const K &) const { return 0; }
        };
        struct H {
                auto operator()(const K &) const { return 0; }
        };
        std::unordered_map<T::K, int, T::H> m;
};
int main()
{
        printf("%d\n", std::is_invocable_v<const T::H &, const T::K &>);
        printf("%d\n", std::is_invocable_v<T::H, const T::K &>);
        //T().m[T::K()]; // for extra fun
}

Output:

GNU C++17 (SUSE Linux) version 11.2.1 20211124 [revision
7510c23c1ec53aa4a62705f0384079661342ff7b] (x86_64-suse-linux)
        compiled by GNU C version 11.2.1 20211124 [revision
7510c23c1ec53aa4a62705f0384079661342ff7b], GMP version 6.2.1, MPFR version
4.1.0-p7, MPC version 1.2.1, isl version isl-0.24-GMP

0
1

Expected output:

1
1

Expectation based on it being possible to invoke on a const H &:
{ T::H h; const T::H &hh = h; hh(T::K()); }

^ permalink raw reply	[flat|nested] 10+ messages in thread

end of thread, other threads:[~2022-01-06 16:00 UTC | newest]

Thread overview: 10+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-01-05 23:16 [Bug c++/103923] New: is_invocable<const T &, ...> inexplicably fails jengelh at inai dot de
2022-01-05 23:19 ` [Bug libstdc++/103923] " pinskia at gcc dot gnu.org
2022-01-06  9:23 ` redi at gcc dot gnu.org
2022-01-06  9:31 ` redi at gcc dot gnu.org
2022-01-06  9:37 ` redi at gcc dot gnu.org
2022-01-06  9:39 ` redi at gcc dot gnu.org
2022-01-06  9:46 ` redi at gcc dot gnu.org
2022-01-06 14:30 ` redi at gcc dot gnu.org
2022-01-06 14:53 ` redi at gcc dot gnu.org
2022-01-06 16:00 ` redi at gcc dot gnu.org

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).