public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug c++/38681]  New: Internal compiler error. expr.c:6956 [Template instantiation with non-type value of member function ptr]
@ 2008-12-31  7:42 juvvij at gmail dot com
  2008-12-31  7:44 ` [Bug c++/38681] " juvvij at gmail dot com
                   ` (6 more replies)
  0 siblings, 7 replies; 8+ messages in thread
From: juvvij at gmail dot com @ 2008-12-31  7:42 UTC (permalink / raw)
  To: gcc-bugs

While trying to reinvent some suitablu smart technique for routing Gtk's static
callbacks to object methods, I thought I had created a suitably brilliant
solution. Gcc could not digest it. While I am looking at smarter solutions from
boost or loki, I would like to see if I really was onto a workable solution.

I'm not sure if the triplet info above is useful enough. The bug posting
guidelines promised eternal shame if I didn't do my very best. So ading more
info, hopefully it is not all wasteful!

I have the as-packaged-for-ubuntu 8.10, g++-4.3.2 version.


-- 
           Summary: Internal compiler error. expr.c:6956 [Template
                    instantiation with non-type value of member function
                    ptr]
           Product: gcc
           Version: 4.3.2
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: c++
        AssignedTo: unassigned at gcc dot gnu dot org
        ReportedBy: juvvij at gmail dot com
 GCC build triplet: i486-linux-gnu
  GCC host triplet: i486-linux-gnu
GCC target triplet: i486-linux-gnu


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=38681


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

* [Bug c++/38681] Internal compiler error. expr.c:6956 [Template instantiation with non-type value of member function ptr]
  2008-12-31  7:42 [Bug c++/38681] New: Internal compiler error. expr.c:6956 [Template instantiation with non-type value of member function ptr] juvvij at gmail dot com
@ 2008-12-31  7:44 ` juvvij at gmail dot com
  2008-12-31  7:44 ` juvvij at gmail dot com
                   ` (5 subsequent siblings)
  6 siblings, 0 replies; 8+ messages in thread
From: juvvij at gmail dot com @ 2008-12-31  7:44 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #2 from juvvij at gmail dot com  2008-12-31 07:43 -------
Created an attachment (id=17018)
 --> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=17018&action=view)
Details of gcc from output of g++ -v -save-temps


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=38681


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

* [Bug c++/38681] Internal compiler error. expr.c:6956 [Template instantiation with non-type value of member function ptr]
  2008-12-31  7:42 [Bug c++/38681] New: Internal compiler error. expr.c:6956 [Template instantiation with non-type value of member function ptr] juvvij at gmail dot com
  2008-12-31  7:44 ` [Bug c++/38681] " juvvij at gmail dot com
@ 2008-12-31  7:44 ` juvvij at gmail dot com
  2008-12-31  7:51 ` pinskia at gcc dot gnu dot org
                   ` (4 subsequent siblings)
  6 siblings, 0 replies; 8+ messages in thread
From: juvvij at gmail dot com @ 2008-12-31  7:44 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #1 from juvvij at gmail dot com  2008-12-31 07:42 -------
Created an attachment (id=17017)
 --> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=17017&action=view)
Preprocessed test case that causes the compiler error.


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=38681


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

* [Bug c++/38681] Internal compiler error. expr.c:6956 [Template instantiation with non-type value of member function ptr]
  2008-12-31  7:42 [Bug c++/38681] New: Internal compiler error. expr.c:6956 [Template instantiation with non-type value of member function ptr] juvvij at gmail dot com
  2008-12-31  7:44 ` [Bug c++/38681] " juvvij at gmail dot com
  2008-12-31  7:44 ` juvvij at gmail dot com
@ 2008-12-31  7:51 ` pinskia at gcc dot gnu dot org
  2008-12-31 16:12 ` pinskia at gcc dot gnu dot org
                   ` (3 subsequent siblings)
  6 siblings, 0 replies; 8+ messages in thread
From: pinskia at gcc dot gnu dot org @ 2008-12-31  7:51 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #3 from pinskia at gcc dot gnu dot org  2008-12-31 07:49 -------
>        ulong ConnectCB(GtkWidget* pWidget, const char* sigName, _R(_ClassType::*MemFun)(GtkWidget*, _A1))
 >       {
>            typedef CBFamily2<_ClassType, _R, GtkWidget*, _A1, MemFun> TCallbackType;


This code is invalid code, you are using a non constant expression for a
template argument.


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=38681


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

* [Bug c++/38681] Internal compiler error. expr.c:6956 [Template instantiation with non-type value of member function ptr]
  2008-12-31  7:42 [Bug c++/38681] New: Internal compiler error. expr.c:6956 [Template instantiation with non-type value of member function ptr] juvvij at gmail dot com
                   ` (2 preceding siblings ...)
  2008-12-31  7:51 ` pinskia at gcc dot gnu dot org
@ 2008-12-31 16:12 ` pinskia at gcc dot gnu dot org
  2008-12-31 17:32 ` juvvij at gmail dot com
                   ` (2 subsequent siblings)
  6 siblings, 0 replies; 8+ messages in thread
From: pinskia at gcc dot gnu dot org @ 2008-12-31 16:12 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #4 from pinskia at gcc dot gnu dot org  2008-12-31 16:10 -------
This is close to duplicate of bug 37093.


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=38681


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

* [Bug c++/38681] Internal compiler error. expr.c:6956 [Template instantiation with non-type value of member function ptr]
  2008-12-31  7:42 [Bug c++/38681] New: Internal compiler error. expr.c:6956 [Template instantiation with non-type value of member function ptr] juvvij at gmail dot com
                   ` (3 preceding siblings ...)
  2008-12-31 16:12 ` pinskia at gcc dot gnu dot org
@ 2008-12-31 17:32 ` juvvij at gmail dot com
  2008-12-31 17:42 ` pinskia at gcc dot gnu dot org
  2009-01-30 15:52 ` bangerth at gmail dot com
  6 siblings, 0 replies; 8+ messages in thread
From: juvvij at gmail dot com @ 2008-12-31 17:32 UTC (permalink / raw)
  To: gcc-bugs

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #1: Type: text/plain, Size: 1325 bytes --]



------- Comment #5 from juvvij at gmail dot com  2008-12-31 17:31 -------
>From the C++ standards doc (Latest download form the website) (excerpt listed
below), I thought that member functions could be allowed. I am not entirely
sure if *function* can also refer to *member-function*.

--------------------
4.  A non-type template-parameter shall have one of the following (optionally
cv-qualified) types:
    — integral or enumeration type,
    — pointer to object or pointer to function,
    — reference to object or reference to function,
    — pointer to member., or
    — in a constrained template (14.10), a type archetype T for which the
concept requirement std::NonTypeTemplateParamet
       is part of the template’s requirements.
--------------------

Did I understand this wrong ? Does the correct interpretation of the standard
not allow for member-function-pointers as non-type arguments ?

The following links point to a different interpretation.

http://connect.microsoft.com/VisualStudio/feedback/ViewFeedback.aspx?FeedbackID=101628

http://connect.microsoft.com/VisualStudio/feedback/ViewFeedback.aspx?FeedbackID=196204

http://objectmix.com/c/382443-samples-non-type-template-argument-other-than-integral-types.html


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=38681


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

* [Bug c++/38681] Internal compiler error. expr.c:6956 [Template instantiation with non-type value of member function ptr]
  2008-12-31  7:42 [Bug c++/38681] New: Internal compiler error. expr.c:6956 [Template instantiation with non-type value of member function ptr] juvvij at gmail dot com
                   ` (4 preceding siblings ...)
  2008-12-31 17:32 ` juvvij at gmail dot com
@ 2008-12-31 17:42 ` pinskia at gcc dot gnu dot org
  2009-01-30 15:52 ` bangerth at gmail dot com
  6 siblings, 0 replies; 8+ messages in thread
From: pinskia at gcc dot gnu dot org @ 2008-12-31 17:42 UTC (permalink / raw)
  To: gcc-bugs

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #1: Type: text/plain, Size: 221 bytes --]



------- Comment #6 from pinskia at gcc dot gnu dot org  2008-12-31 17:40 -------
>    — pointer to member., or

This includes pointer to member functions.


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=38681


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

* [Bug c++/38681] Internal compiler error. expr.c:6956 [Template instantiation with non-type value of member function ptr]
  2008-12-31  7:42 [Bug c++/38681] New: Internal compiler error. expr.c:6956 [Template instantiation with non-type value of member function ptr] juvvij at gmail dot com
                   ` (5 preceding siblings ...)
  2008-12-31 17:42 ` pinskia at gcc dot gnu dot org
@ 2009-01-30 15:52 ` bangerth at gmail dot com
  6 siblings, 0 replies; 8+ messages in thread
From: bangerth at gmail dot com @ 2009-01-30 15:52 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #7 from bangerth at gmail dot com  2009-01-30 15:51 -------
(In reply to comment #5)
> Did I understand this wrong ? Does the correct interpretation of the standard
> not allow for member-function-pointers as non-type arguments ?

It does, but it requires them to be in a constant-expression context -- i.e.
informally speaking the compiler needs to know *at compile time* which member
function you refer to. You can use a function argument as a template
argument.

I think this is indeed a duplicate of PR 37093.

W.

W.

*** This bug has been marked as a duplicate of 37093 ***


-- 

bangerth at gmail dot com changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |bangerth at gmail dot com
             Status|UNCONFIRMED                 |RESOLVED
         Resolution|                            |DUPLICATE


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=38681


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

end of thread, other threads:[~2009-01-30 15:52 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2008-12-31  7:42 [Bug c++/38681] New: Internal compiler error. expr.c:6956 [Template instantiation with non-type value of member function ptr] juvvij at gmail dot com
2008-12-31  7:44 ` [Bug c++/38681] " juvvij at gmail dot com
2008-12-31  7:44 ` juvvij at gmail dot com
2008-12-31  7:51 ` pinskia at gcc dot gnu dot org
2008-12-31 16:12 ` pinskia at gcc dot gnu dot org
2008-12-31 17:32 ` juvvij at gmail dot com
2008-12-31 17:42 ` pinskia at gcc dot gnu dot org
2009-01-30 15:52 ` bangerth at gmail dot com

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).