public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug c++/66766] New: Reference to an “auto” function as a template parameter
@ 2015-07-04 21:04 quentin.c.diaz at gmail dot com
  2021-08-04  7:02 ` [Bug c++/66766] " pinskia at gcc dot gnu.org
  2024-04-04  7:12 ` [Bug c++/66766] static class member function returning auto is not assignable to a function type reference pinskia at gcc dot gnu.org
  0 siblings, 2 replies; 3+ messages in thread
From: quentin.c.diaz at gmail dot com @ 2015-07-04 21:04 UTC (permalink / raw)
  To: gcc-bugs

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #1: Type: text/plain; charset="UTF-8", Size: 3388 bytes --]

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

            Bug ID: 66766
           Summary: Reference to an “auto” function as a template
                    parameter
           Product: gcc
           Version: 5.1.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: c++
          Assignee: unassigned at gcc dot gnu.org
          Reporter: quentin.c.diaz at gmail dot com
  Target Milestone: ---

The following code :

template <void (&a)()>
struct Foo {
    static auto value() {}
};

void bar() {}

template struct Foo<Foo<bar>::value>;

Causes the following error :

error: could not convert template argument ‘Foo<a>::value<bar>’ to ‘void (&)()’
 template struct Foo<Foo<bar>::value>;
                                    ^

Any of the following makes it compile successfully :
 - Declaring value() as returning void instead of deducing it
 - "Dereferencing" value : template struct Foo<*Foo<bar>::value>;
 - Parenthesizing value : template struct Foo<(Foo<bar>::value)>;
 - Making a a pointer : template <void (*a)()> struct Foo ...
>From gcc-bugs-return-491454-listarch-gcc-bugs=gcc.gnu.org@gcc.gnu.org Sat Jul 04 23:19:16 2015
Return-Path: <gcc-bugs-return-491454-listarch-gcc-bugs=gcc.gnu.org@gcc.gnu.org>
Delivered-To: listarch-gcc-bugs@gcc.gnu.org
Received: (qmail 15662 invoked by alias); 4 Jul 2015 23:19:16 -0000
Mailing-List: contact gcc-bugs-help@gcc.gnu.org; run by ezmlm
Precedence: bulk
List-Id: <gcc-bugs.gcc.gnu.org>
List-Archive: <http://gcc.gnu.org/ml/gcc-bugs/>
List-Post: <mailto:gcc-bugs@gcc.gnu.org>
List-Help: <mailto:gcc-bugs-help@gcc.gnu.org>
Sender: gcc-bugs-owner@gcc.gnu.org
Delivered-To: mailing list gcc-bugs@gcc.gnu.org
Received: (qmail 15623 invoked by uid 48); 4 Jul 2015 23:19:12 -0000
From: "jvdelisle at gcc dot gnu.org" <gcc-bugzilla@gcc.gnu.org>
To: gcc-bugs@gcc.gnu.org
Subject: [Bug fortran/52251] Nonadvancing I/O and the t edit descriptor
Date: Sat, 04 Jul 2015 23:19:00 -0000
X-Bugzilla-Reason: CC
X-Bugzilla-Type: changed
X-Bugzilla-Watch-Reason: None
X-Bugzilla-Product: gcc
X-Bugzilla-Component: fortran
X-Bugzilla-Version: 4.7.0
X-Bugzilla-Keywords: wrong-code
X-Bugzilla-Severity: normal
X-Bugzilla-Who: jvdelisle at gcc dot gnu.org
X-Bugzilla-Status: NEW
X-Bugzilla-Resolution:
X-Bugzilla-Priority: P3
X-Bugzilla-Assigned-To: jvdelisle at gcc dot gnu.org
X-Bugzilla-Target-Milestone: ---
X-Bugzilla-Flags:
X-Bugzilla-Changed-Fields: attachments.created
Message-ID: <bug-52251-4-dS4APUMy7J@http.gcc.gnu.org/bugzilla/>
In-Reply-To: <bug-52251-4@http.gcc.gnu.org/bugzilla/>
References: <bug-52251-4@http.gcc.gnu.org/bugzilla/>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 7bit
X-Bugzilla-URL: http://gcc.gnu.org/bugzilla/
Auto-Submitted: auto-generated
MIME-Version: 1.0
X-SW-Source: 2015-07/txt/msg00344.txt.bz2
Content-length: 423

https://gcc.gnu.org/bugzilla/show_bug.cgi?idR251

--- Comment #6 from Jerry DeLisle <jvdelisle at gcc dot gnu.org> ---
Created attachment 35911
  --> https://gcc.gnu.org/bugzilla/attachment.cgi?id5911&actioníit
A patch to fix this.

This patch issues the tab spacing based on spaces previously skipped pending
transfer of data.  In the test case, there is no data transferred so we were
skipping handling the skips.


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

* [Bug c++/66766] Reference to an “auto” function as a template parameter
  2015-07-04 21:04 [Bug c++/66766] New: Reference to an “auto” function as a template parameter quentin.c.diaz at gmail dot com
@ 2021-08-04  7:02 ` pinskia at gcc dot gnu.org
  2024-04-04  7:12 ` [Bug c++/66766] static class member function returning auto is not assignable to a function type reference pinskia at gcc dot gnu.org
  1 sibling, 0 replies; 3+ messages in thread
From: pinskia at gcc dot gnu.org @ 2021-08-04  7:02 UTC (permalink / raw)
  To: gcc-bugs

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

Andrew Pinski <pinskia at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
           Keywords|                            |rejects-valid
   Last reconfirmed|                            |2021-08-04
     Ever confirmed|0                           |1
             Status|UNCONFIRMED                 |NEW

--- Comment #1 from Andrew Pinski <pinskia at gcc dot gnu.org> ---
Confirmed.

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

* [Bug c++/66766] static class member function returning auto is not assignable to a function type reference
  2015-07-04 21:04 [Bug c++/66766] New: Reference to an “auto” function as a template parameter quentin.c.diaz at gmail dot com
  2021-08-04  7:02 ` [Bug c++/66766] " pinskia at gcc dot gnu.org
@ 2024-04-04  7:12 ` pinskia at gcc dot gnu.org
  1 sibling, 0 replies; 3+ messages in thread
From: pinskia at gcc dot gnu.org @ 2024-04-04  7:12 UTC (permalink / raw)
  To: gcc-bugs

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

Andrew Pinski <pinskia at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
            Summary|Reference to an “auto”      |static class member
                   |function as a template      |function returning auto is
                   |parameter                   |not assignable to a
                   |                            |function type reference
   Last reconfirmed|2021-08-04 00:00:00         |2024-4-4

--- Comment #2 from Andrew Pinski <pinskia at gcc dot gnu.org> ---
Reduced slightly more:
```
template <int>
struct Foo {
    static auto value() {}
};
void (&a)() = Foo<1>::value;
```

Note function pointers work.

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

end of thread, other threads:[~2024-04-04  7:12 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2015-07-04 21:04 [Bug c++/66766] New: Reference to an “auto” function as a template parameter quentin.c.diaz at gmail dot com
2021-08-04  7:02 ` [Bug c++/66766] " pinskia at gcc dot gnu.org
2024-04-04  7:12 ` [Bug c++/66766] static class member function returning auto is not assignable to a function type reference pinskia 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).