digitalmars.D.learn - Expression tuples
- simendsjo (8/8) Mar 16 2011 http://www.digitalmars.com/d/2.0/tuple.html
- Simen kjaeraas (7/15) Mar 16 2011 std.typecons.Tuple is a value type, mostly like those tuples you find in
- Steven Schveighoffer (8/25) Mar 16 2011 If you read that page he is referring to, it seems like you should be ab...
- Simen kjaeraas (7/18) Mar 16 2011 Oh, absolutely. Given that you use the Tuple template declared at the to...
- Steven Schveighoffer (12/31) Mar 16 2011 As I was confused there and thought we were talking about
- Jonathan M Davis (9/47) Mar 16 2011 Regardless of whether TypeTuple can hold values or not, it really doesn'...
- Simen kjaeraas (11/18) Mar 16 2011 Such has been discussed before. std.typecons.Tuple should also have a
http://www.digitalmars.com/d/2.0/tuple.html // this example fails Tuple!(3, 7, 'c') typecons.d(298): Error: static assert "Attempted to instantiate Tuple with an invalid argument: 3" Even this fails: alias Tuple!(0) T; Is Tuple only meant to store types or named types?
Mar 16 2011
On Wed, 16 Mar 2011 21:07:08 +0100, simendsjo <simen.endsjo pandavre.com> wrote:http://www.digitalmars.com/d/2.0/tuple.html // this example fails Tuple!(3, 7, 'c') typecons.d(298): Error: static assert "Attempted to instantiate Tuple with an invalid argument: 3" Even this fails: alias Tuple!(0) T; Is Tuple only meant to store types or named types?std.typecons.Tuple is a value type, mostly like those tuples you find in other languages like Python, Haskell, etc. What you are likely looking for is std.typetuple.Typetuple. -- Simen
Mar 16 2011
On Wed, 16 Mar 2011 16:28:48 -0400, Simen kjaeraas <simen.kjaras gmail.com> wrote:On Wed, 16 Mar 2011 21:07:08 +0100, simendsjo <simen.endsjo pandavre.com> wrote:If you read that page he is referring to, it seems like you should be able to create an expression tuple. I don't know if that works with std.typecons.tuple. In fact, I don't think I've ever seen some of the stuff that's in that page, especially the mixed type+expression tuple. Is it valid? -Stevehttp://www.digitalmars.com/d/2.0/tuple.html // this example fails Tuple!(3, 7, 'c') typecons.d(298): Error: static assert "Attempted to instantiate Tuple with an invalid argument: 3" Even this fails: alias Tuple!(0) T; Is Tuple only meant to store types or named types?std.typecons.Tuple is a value type, mostly like those tuples you find in other languages like Python, Haskell, etc. What you are likely looking for is std.typetuple.Typetuple.
Mar 16 2011
On Wed, 16 Mar 2011 21:51:37 +0100, Steven Schveighoffer <schveiguy yahoo.com> wrote:On Wed, 16 Mar 2011 16:28:48 -0400, Simen kjaeraas <simen.kjaras gmail.com> wrote:On Wed, 16 Mar 2011 21:07:08 +0100, simendsjo <simen.endsjo pandavre.com> wrote:http://www.digitalmars.com/d/2.0/tuple.htmlIf you read that page he is referring to, it seems like you should be able to create an expression tuple. I don't know if that works with std.typecons.tuple. In fact, I don't think I've ever seen some of the stuff that's in that page, especially the mixed type+expression tuple. Is it valid?Oh, absolutely. Given that you use the Tuple template declared at the top of the page. However, I would recommend the page be rewritten so as not to cause confusion between that and std.typecons.Tuple. -- Simen
Mar 16 2011
On Wed, 16 Mar 2011 17:31:06 -0400, Simen kjaeraas <simen.kjaras gmail.com> wrote:On Wed, 16 Mar 2011 21:51:37 +0100, Steven Schveighoffer <schveiguy yahoo.com> wrote:As I was confused there and thought we were talking about std.typecons.Tuple, I wholeheartedly agree :) Now I am concerned, this looks like an oxymoron: TypeTuple!(1, 2, 3) Should we think about changing the name of std.typetuple.TypeTuple since it can clearly contain expressions as well as types? I would actually argue that TypeTuple should be called Tuple, and Tuple be called ValueTuple or something, but I understand we probably cannot do that at this point... -SteveOn Wed, 16 Mar 2011 16:28:48 -0400, Simen kjaeraas <simen.kjaras gmail.com> wrote:On Wed, 16 Mar 2011 21:07:08 +0100, simendsjo <simen.endsjo pandavre.com> wrote:http://www.digitalmars.com/d/2.0/tuple.htmlIf you read that page he is referring to, it seems like you should be able to create an expression tuple. I don't know if that works with std.typecons.tuple. In fact, I don't think I've ever seen some of the stuff that's in that page, especially the mixed type+expression tuple. Is it valid?Oh, absolutely. Given that you use the Tuple template declared at the top of the page. However, I would recommend the page be rewritten so as not to cause confusion between that and std.typecons.Tuple.
Mar 16 2011
On Wednesday, March 16, 2011 14:43:20 Steven Schveighoffer wrote:On Wed, 16 Mar 2011 17:31:06 -0400, Simen kjaeraas <simen.kjaras gmail.com> wrote:Regardless of whether TypeTuple can hold values or not, it really doesn't make sense to call it a tuple in the general sense, since it's always flat and cannot hold other tuples. IIRC, Andrei had a good suggestion for what to rename TypeTuple to, but unfortunately, I don't recall what it was at the moment. Regardless, I think that TypeTuple _should_ be renamed. It's far too easy to confuse it with Tuple. However, Tuple is definitely more of a tuple than TypeTuple is. - Jonathan M DavisOn Wed, 16 Mar 2011 21:51:37 +0100, Steven Schveighoffer <schveiguy yahoo.com> wrote:As I was confused there and thought we were talking about std.typecons.Tuple, I wholeheartedly agree :) Now I am concerned, this looks like an oxymoron: TypeTuple!(1, 2, 3) Should we think about changing the name of std.typetuple.TypeTuple since it can clearly contain expressions as well as types? I would actually argue that TypeTuple should be called Tuple, and Tuple be called ValueTuple or something, but I understand we probably cannot do that at this point...On Wed, 16 Mar 2011 16:28:48 -0400, Simen kjaeraas <simen.kjaras gmail.com> wrote:Oh, absolutely. Given that you use the Tuple template declared at the top of the page. However, I would recommend the page be rewritten so as not to cause confusion between that and std.typecons.Tuple.On Wed, 16 Mar 2011 21:07:08 +0100, simendsjo <simen.endsjo pandavre.com> wrote:If you read that page he is referring to, it seems like you should be able to create an expression tuple. I don't know if that works with std.typecons.tuple. In fact, I don't think I've ever seen some of the stuff that's in that page, especially the mixed type+expression tuple. Is it valid?http://www.digitalmars.com/d/2.0/tuple.html
Mar 16 2011
On Wed, 16 Mar 2011 22:43:20 +0100, Steven Schveighoffer <schveiguy yahoo.com> wrote:Now I am concerned, this looks like an oxymoron: TypeTuple!(1, 2, 3) Should we think about changing the name of std.typetuple.TypeTuple since it can clearly contain expressions as well as types? I would actually argue that TypeTuple should be called Tuple, and Tuple be called ValueTuple or something, but I understand we probably cannot do that at this point...Such has been discussed before. std.typecons.Tuple should also have a reasonably terse name, a virtue I feel ValueTuple does not fulfill. The problem is that those things contained in a std.typetuple.TypeTuple are so diverse, and thus hard to put in category. FreeTuple? TupleList? AnyTuple? AllTuple? Anyways, I'm off to sleep. Good... Well, I guess it's day to most of you on the other side of the pond. Good day, then. :p -- Simen
Mar 16 2011