public inbox for gcc-help@gcc.gnu.org
 help / color / mirror / Atom feed
* implicit typename is deprecated
@ 2003-01-26 11:29 erwan ancel
  2003-01-26 12:19 ` erwan ancel
  2003-01-27 10:42 ` LLeweLLyn Reese
  0 siblings, 2 replies; 4+ messages in thread
From: erwan ancel @ 2003-01-26 11:29 UTC (permalink / raw)
  To: gcc-help

Hi,
Does anyone know what this mean ?
"Implicit typename is deprecated"

I got this message when compiling my template instanciations with gcc 3.2,
and the compilation fails, but I managed to compile this without any
warning/error with gcc 2.95.

Can anyone help me ?

                    Erwan

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

* Re: implicit typename is deprecated
  2003-01-26 11:29 implicit typename is deprecated erwan ancel
@ 2003-01-26 12:19 ` erwan ancel
  2003-01-27 10:42 ` LLeweLLyn Reese
  1 sibling, 0 replies; 4+ messages in thread
From: erwan ancel @ 2003-01-26 12:19 UTC (permalink / raw)
  To: gcc-help

correction:
the compilation doesn't fail, this was for another reason, but warning
messages about implicit typenames still remain... It seems to be a dirty
code, but I'd like to know why...

                Erwan

----- Original Message -----
From: "erwan ancel" <erwan.ancel@free.fr>
To: <gcc-help@gcc.gnu.org>
Sent: Sunday, January 26, 2003 12:29 PM
Subject: implicit typename is deprecated


> Hi,
> Does anyone know what this mean ?
> "Implicit typename is deprecated"
>
> I got this message when compiling my template instanciations with gcc 3.2,
> and the compilation fails, but I managed to compile this without any
> warning/error with gcc 2.95.
>
> Can anyone help me ?
>
>                     Erwan
>
>

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

* Re: implicit typename is deprecated
  2003-01-26 11:29 implicit typename is deprecated erwan ancel
  2003-01-26 12:19 ` erwan ancel
@ 2003-01-27 10:42 ` LLeweLLyn Reese
  2003-01-27 17:11   ` erwan ancel
  1 sibling, 1 reply; 4+ messages in thread
From: LLeweLLyn Reese @ 2003-01-27 10:42 UTC (permalink / raw)
  To: erwan ancel; +Cc: gcc-help

"erwan ancel" <erwan.ancel@free.fr> writes:

> Hi,
> Does anyone know what this mean ?
> "Implicit typename is deprecated"

Dependent names which are type names are required to be qualified by
    the keyword 'typename'.

A dependent name is a name which is dependent on a template parameter.

struct A
{
    struct nest{};
};

template<class T>
struct contain
{
    typedef typename T::nest;
};

In the example above, 'T::nest' is a dependent name. Other common
    dependent names are things like 'vector<T>::value_type' . Since
    the parameters with which a template will be instantiated cannot
    be known in general, and a given type may delcare 'nest' as a
    static member, a data member, or a type member, or not at all, it
    was felt the user should indicate when a dependent name is
    intended/expected to be a type name. This allows better error
    reporting, and potentially simpler implementation.

> I got this message when compiling my template instanciations with gcc 3.2,
> and the compilation fails, but I managed to compile this without any
> warning/error with gcc 2.95.
[snip]

3.2 is much closer to conformance than 2.95

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

* Re: implicit typename is deprecated
  2003-01-27 10:42 ` LLeweLLyn Reese
@ 2003-01-27 17:11   ` erwan ancel
  0 siblings, 0 replies; 4+ messages in thread
From: erwan ancel @ 2003-01-27 17:11 UTC (permalink / raw)
  To: gcc-help

thanks a lot. I got my answer :)

----- Original Message -----
From: "LLeweLLyn Reese" <llewelly@lifesupport.shutdown.com>
To: "erwan ancel" <erwan.ancel@free.fr>
Cc: <gcc-help@gcc.gnu.org>
Sent: Monday, January 27, 2003 11:39 AM
Subject: Re: implicit typename is deprecated


> "erwan ancel" <erwan.ancel@free.fr> writes:
>
> > Hi,
> > Does anyone know what this mean ?
> > "Implicit typename is deprecated"
>
> Dependent names which are type names are required to be qualified by
>     the keyword 'typename'.
>
> A dependent name is a name which is dependent on a template parameter.
>
> struct A
> {
>     struct nest{};
> };
>
> template<class T>
> struct contain
> {
>     typedef typename T::nest;
> };
>
> In the example above, 'T::nest' is a dependent name. Other common
>     dependent names are things like 'vector<T>::value_type' . Since
>     the parameters with which a template will be instantiated cannot
>     be known in general, and a given type may delcare 'nest' as a
>     static member, a data member, or a type member, or not at all, it
>     was felt the user should indicate when a dependent name is
>     intended/expected to be a type name. This allows better error
>     reporting, and potentially simpler implementation.
>
> > I got this message when compiling my template instanciations with gcc
3.2,
> > and the compilation fails, but I managed to compile this without any
> > warning/error with gcc 2.95.
> [snip]
>
> 3.2 is much closer to conformance than 2.95
>

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

end of thread, other threads:[~2003-01-27 17:11 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2003-01-26 11:29 implicit typename is deprecated erwan ancel
2003-01-26 12:19 ` erwan ancel
2003-01-27 10:42 ` LLeweLLyn Reese
2003-01-27 17:11   ` erwan ancel

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