List parameters



 DEVELOP > c-Plus-Plus > List parameters

LINK TO THIS PAGE  


rating :  0   |  0


  Page 1 of 1

1

 
Topic: DEVELOP > c-Plus-Plus
User: ""
Date: 21 Oct 2006 07:06:20 PM
Object: List parameters
Hi,
I try this code:
template <typename T> inline
T const& max(T const& a, T const& b)
{
return a<b?b:a;
}
template <typename T, ... list> inline
T const& max(T const& a, T const& b, list const& x)
{
return max(a, max(b, x));
}

But it not compile.
I have this message:
"error: expected identifier before '...' token"
I saw this sample in book "c++ templates: the complete guide"
i use wxWidgets with gcc compiler.
Is this code legal? is it compile?
If no how use list parameters in template?
Thunks
.

User: "David Harmon"

Title: Re: List parameters 21 Oct 2006 08:54:26 PM
On Sun, 22 Oct 2006 02:06:20 +0200 in comp.lang.c++,
user@domain.invalid wrote,

template <typename T, ... list> inline
T const& max(T const& a, T const& b, list const& x)
{
return max(a, max(b, x));
}

No, the ... is not at all allowed there.
This is from chapter 13, "Future Directions", where the authors are
discussing things that don't exist yet, but might in the future,
right???
.
User: "Lahsen"

Title: Re: List parameters 21 Oct 2006 10:23:22 PM
David Harmon a écrit :

On Sun, 22 Oct 2006 02:06:20 +0200 in comp.lang.c++,
user@domain.invalid wrote,

template <typename T, ... list> inline
T const& max(T const& a, T const& b, list const& x)
{
return max(a, max(b, x));
}



No, the ... is not at all allowed there.
This is from chapter 13, "Future Directions", where the authors are
discussing things that don't exist yet, but might in the future,
right???

Ok,
Thunks.
I try to do it with typeListe technique in modern c++.
But there'is function ellipsis like:
void f(int ...);
f(1, 2, 3);
f(45, 68 ,2 ,64 ,3598);
that compile. But it's not easy to use argument of this function.
.
User: "loufoque"

Title: Re: List parameters 22 Oct 2006 06:21:55 AM
Lahsen wrote:


But there'is function ellipsis like:

void f(int ...);

f(1, 2, 3);
f(45, 68 ,2 ,64 ,3598);

that compile. But it's not easy to use argument of this function.

That's a runtime thing which isn't type-safe at all.
It should be avoided.
.



User: "loufoque"

Title: Re: List parameters 22 Oct 2006 06:23:03 AM
user@domain.invalid wrote:

Hi,

I try this code:

template <typename T> inline
T const& max(T const& a, T const& b)
{
return a<b?b:a;
}

template <typename T, ... list> inline
T const& max(T const& a, T const& b, list const& x)
{
return max(a, max(b, x));
}


But it not compile.

You might want to play around with variadic templates, a proposal for
the next C++ standard which will allow what you want.
There is already a patch to implement it in GCC.
.


  Page 1 of 1

1

 


Related Articles
 

NEWER

pg.1232     pg.940     pg.716     pg.544     pg.412     pg.311     pg.234     pg.175     pg.130     pg.96     pg.70     pg.50     pg.35     pg.24     pg.16     pg.10     pg.6     pg.3     pg.1

OLDER