Topic: Nicer syntax for multidimensional std::array


Author: tommi.tissari@gmail.com
Date: Thu, 14 Feb 2013 10:24:58 -0800 (PST)
Raw View
------=_Part_961_30510871.1360866298716
Content-Type: text/plain; charset=ISO-8859-1

What do you say we change the current implementation of std::array to this:

namespace std {

template <typename T, size_t n>
struct __Array
{
// the current std::array implementation:
....
};

template <typename T, size_t n0, size_t... n_>
struct __ArrayImpl
{
typedef __Array<typename __ArrayImpl<T, n_...>::type, n0> type;
};

template <typename T, size_t n>
struct __ArrayImpl<T, n>
{
typedef __Array<T, n> type;
};

template <typename T, size_t n0, size_t... n_>
using array = typename __ArrayImpl<T, n0, n_...>::type;

} // end namespace std

.... then we could write std::array<int, 3, 2> instead of std::array<std::array<int,
2>, 3>

--

---
You received this message because you are subscribed to the Google Groups "ISO C++ Standard - Future Proposals" group.
To unsubscribe from this group and stop receiving emails from it, send an email to std-proposals+unsubscribe@isocpp.org.
To post to this group, send email to std-proposals@isocpp.org.
Visit this group at http://groups.google.com/a/isocpp.org/group/std-proposals/?hl=en.



------=_Part_961_30510871.1360866298716
Content-Type: text/html; charset=ISO-8859-1
Content-Transfer-Encoding: quoted-printable

What do you say we change the current implementation of std::array to this:=
<br><br><span style=3D"font-family: courier new,monospace;">namespace std {=
<br><br>template &lt;typename T, size_t n&gt;<br>struct __Array<br>{<br></s=
pan><div style=3D"margin-left: 40px;"><span style=3D"font-family: courier n=
ew,monospace;">// the current std::array implementation:</span><br><span st=
yle=3D"font-family: courier new,monospace;">...</span><br><span style=3D"fo=
nt-family: courier new,monospace;"></span></div><span style=3D"font-family:=
 courier new,monospace;">};<br><br>template &lt;typename T, size_t n0, size=
_t... n_&gt;<br>struct __ArrayImpl<br>{<br></span><div style=3D"margin-left=
: 40px;"><span style=3D"font-family: courier new,monospace;">typedef __Arra=
y&lt;typename __ArrayImpl&lt;T, n_...&gt;::type, n0&gt; type;</span><br><sp=
an style=3D"font-family: courier new,monospace;"></span></div><span style=
=3D"font-family: courier new,monospace;">};<br><br>template &lt;typename T,=
 size_t n&gt;<br>struct __ArrayImpl&lt;T, n&gt;<br>{<br></span><div style=
=3D"margin-left: 40px;"><span style=3D"font-family: courier new,monospace;"=
>typedef __Array&lt;T, n&gt; type;</span><br><span style=3D"font-family: co=
urier new,monospace;"></span></div><span style=3D"font-family: courier new,=
monospace;">};<br><br>template &lt;typename T, size_t n0, size_t... n_&gt;<=
br>using array =3D typename __ArrayImpl&lt;T, n0, n_...&gt;::type;<br><br>}=
 // end namespace std</span><br><br>... then we could write <span style=3D"=
font-family: courier new,monospace;">std::array&lt;int, 3, 2&gt;</span> ins=
tead of <span style=3D"font-family: courier new,monospace;">std::array&lt;s=
td::array&lt;int, 2&gt;, 3&gt;</span><br><br>

<p></p>

-- <br />
&nbsp;<br />
--- <br />
You received this message because you are subscribed to the Google Groups &=
quot;ISO C++ Standard - Future Proposals&quot; group.<br />
To unsubscribe from this group and stop receiving emails from it, send an e=
mail to std-proposals+unsubscribe@isocpp.org.<br />
To post to this group, send email to std-proposals@isocpp.org.<br />
Visit this group at <a href=3D"http://groups.google.com/a/isocpp.org/group/=
std-proposals/?hl=3Den">http://groups.google.com/a/isocpp.org/group/std-pro=
posals/?hl=3Den</a>.<br />
&nbsp;<br />
&nbsp;<br />

------=_Part_961_30510871.1360866298716--

.


Author: Sebastian Gesemann <s.gesemann@gmail.com>
Date: Thu, 14 Feb 2013 19:59:18 +0100
Raw View
On Thu, Feb 14, 2013 at 7:24 PM,  tommi tissari wrote:
> What do you say we change the current implementation of std::array to this:
>
> namespace std {
>
> template <typename T, size_t n>
> struct __Array
> {
> // the current std::array implementation:
> };
>
> template <typename T, size_t n0, size_t... n_>
> struct __ArrayImpl

[snip]

> template <typename T, size_t n0, size_t... n_>
> using array = typename __ArrayImpl<T, n0, n_...>::type;
>
> } // end namespace std
>
> ... then we could write std::array<int, 3, 2> instead of
> std::array<std::array<int, 2>, 3>

I like it and it behaves the way I expected w.r.t. the order of the dimensions.

Cheers!
SG

--

---
You received this message because you are subscribed to the Google Groups "ISO C++ Standard - Future Proposals" group.
To unsubscribe from this group and stop receiving emails from it, send an email to std-proposals+unsubscribe@isocpp.org.
To post to this group, send email to std-proposals@isocpp.org.
Visit this group at http://groups.google.com/a/isocpp.org/group/std-proposals/?hl=en.



.


Author: DeadMG <wolfeinstein@gmail.com>
Date: Thu, 14 Feb 2013 13:18:40 -0800 (PST)
Raw View
------=_Part_1150_6125072.1360876720384
Content-Type: text/plain; charset=ISO-8859-1

Not for me. I'd expect std::array<int, 2, 3> to be
std::array<std::array<int, 2>, 3>. Perhaps 3,2 makes more sense from a
direct perspective, but I find 2,3 to make more sense when going from
current nested code to the new proposal.

--

---
You received this message because you are subscribed to the Google Groups "ISO C++ Standard - Future Proposals" group.
To unsubscribe from this group and stop receiving emails from it, send an email to std-proposals+unsubscribe@isocpp.org.
To post to this group, send email to std-proposals@isocpp.org.
Visit this group at http://groups.google.com/a/isocpp.org/group/std-proposals/?hl=en.



------=_Part_1150_6125072.1360876720384
Content-Type: text/html; charset=ISO-8859-1

Not for me. I'd expect std::array&lt;int, 2, 3&gt; to be std::array&lt;std::array&lt;int, 2&gt;, 3&gt;. Perhaps 3,2 makes more sense from a direct perspective, but I find 2,3 to make more sense when going from current nested code to the new proposal.

<p></p>

-- <br />
&nbsp;<br />
--- <br />
You received this message because you are subscribed to the Google Groups &quot;ISO C++ Standard - Future Proposals&quot; group.<br />
To unsubscribe from this group and stop receiving emails from it, send an email to std-proposals+unsubscribe@isocpp.org.<br />
To post to this group, send email to std-proposals@isocpp.org.<br />
Visit this group at <a href="http://groups.google.com/a/isocpp.org/group/std-proposals/?hl=en">http://groups.google.com/a/isocpp.org/group/std-proposals/?hl=en</a>.<br />
&nbsp;<br />
&nbsp;<br />

------=_Part_1150_6125072.1360876720384--

.


Author: Lawrence Crowl <crowl@googlers.com>
Date: Thu, 14 Feb 2013 15:05:37 -0800
Raw View
On 2/14/13, tommi.tissari@gmail.com <tommi.tissari@gmail.com> wrote:
> What do you say we change the current implementation of std::array
> to this:
>
> namespace std {
>
> template <typename T, size_t n>
> struct __Array
> {
> // the current std::array implementation:
> ...
> };
>
> template <typename T, size_t n0, size_t... n_>
> struct __ArrayImpl
> {
> typedef __Array<typename __ArrayImpl<T, n_...>::type, n0> type;
> };
>
> template <typename T, size_t n>
> struct __ArrayImpl<T, n>
> {
> typedef __Array<T, n> type;
> };
>
> template <typename T, size_t n0, size_t... n_>
> using array = typename __ArrayImpl<T, n0, n_...>::type;
>
> } // end namespace std
>
> ... then we could write std::array<int, 3, 2> instead of
> std::array<std::array<int, 2>, 3>

Unfortunately, I think that would break binary compatibility.
We don't get to break binary compatibility very often, and IIRC,
C++14 is not one of those times.

--
Lawrence Crowl

--

---
You received this message because you are subscribed to the Google Groups "ISO C++ Standard - Future Proposals" group.
To unsubscribe from this group and stop receiving emails from it, send an email to std-proposals+unsubscribe@isocpp.org.
To post to this group, send email to std-proposals@isocpp.org.
Visit this group at http://groups.google.com/a/isocpp.org/group/std-proposals/?hl=en.



.


Author: Nicol Bolas <jmckesson@gmail.com>
Date: Thu, 14 Feb 2013 15:16:18 -0800 (PST)
Raw View
------=_Part_51_15730282.1360883778093
Content-Type: text/plain; charset=ISO-8859-1



On Thursday, February 14, 2013 3:05:37 PM UTC-8, Lawrence Crowl wrote:
>
> On 2/14/13, tommi....@gmail.com <javascript:> <tommi....@gmail.com<javascript:>>
> wrote:
> > What do you say we change the current implementation of std::array
> > to this:
> >
> > namespace std {
> >
> > template <typename T, size_t n>
> > struct __Array
> > {
> > // the current std::array implementation:
> > ...
> > };
> >
> > template <typename T, size_t n0, size_t... n_>
> > struct __ArrayImpl
> > {
> > typedef __Array<typename __ArrayImpl<T, n_...>::type, n0> type;
> > };
> >
> > template <typename T, size_t n>
> > struct __ArrayImpl<T, n>
> > {
> > typedef __Array<T, n> type;
> > };
> >
> > template <typename T, size_t n0, size_t... n_>
> > using array = typename __ArrayImpl<T, n0, n_...>::type;
> >
> > } // end namespace std
> >
> > ... then we could write std::array<int, 3, 2> instead of
> > std::array<std::array<int, 2>, 3>
>
> Unfortunately, I think that would break binary compatibility.
> We don't get to break binary compatibility very often, and IIRC,
> C++14 is not one of those times.
>

How does this break binary compatibility? A std::array<std::array<T, x>, y>
should be layout-compatible with a std::array<T, y, x>. Where is the ABI
breakage?

--

---
You received this message because you are subscribed to the Google Groups "ISO C++ Standard - Future Proposals" group.
To unsubscribe from this group and stop receiving emails from it, send an email to std-proposals+unsubscribe@isocpp.org.
To post to this group, send email to std-proposals@isocpp.org.
Visit this group at http://groups.google.com/a/isocpp.org/group/std-proposals/?hl=en.



------=_Part_51_15730282.1360883778093
Content-Type: text/html; charset=ISO-8859-1
Content-Transfer-Encoding: quoted-printable

<br><br>On Thursday, February 14, 2013 3:05:37 PM UTC-8, Lawrence Crowl wro=
te:<blockquote class=3D"gmail_quote" style=3D"margin: 0;margin-left: 0.8ex;=
border-left: 1px #ccc solid;padding-left: 1ex;">On 2/14/13, <a href=3D"java=
script:" target=3D"_blank" gdf-obfuscated-mailto=3D"ML0EFLFMaIYJ">tommi....=
@gmail.com</a> &lt;<a href=3D"javascript:" target=3D"_blank" gdf-obfuscated=
-mailto=3D"ML0EFLFMaIYJ">tommi....@gmail.com</a>&gt; wrote:
<br>&gt; What do you say we change the current implementation of std::array
<br>&gt; to this:
<br>&gt;
<br>&gt; namespace std {
<br>&gt;
<br>&gt; template &lt;typename T, size_t n&gt;
<br>&gt; struct __Array
<br>&gt; {
<br>&gt; // the current std::array implementation:
<br>&gt; ...
<br>&gt; };
<br>&gt;
<br>&gt; template &lt;typename T, size_t n0, size_t... n_&gt;
<br>&gt; struct __ArrayImpl
<br>&gt; {
<br>&gt; typedef __Array&lt;typename __ArrayImpl&lt;T, n_...&gt;::type, n0&=
gt; type;
<br>&gt; };
<br>&gt;
<br>&gt; template &lt;typename T, size_t n&gt;
<br>&gt; struct __ArrayImpl&lt;T, n&gt;
<br>&gt; {
<br>&gt; typedef __Array&lt;T, n&gt; type;
<br>&gt; };
<br>&gt;
<br>&gt; template &lt;typename T, size_t n0, size_t... n_&gt;
<br>&gt; using array =3D typename __ArrayImpl&lt;T, n0, n_...&gt;::type;
<br>&gt;
<br>&gt; } // end namespace std
<br>&gt;
<br>&gt; ... then we could write std::array&lt;int, 3, 2&gt; instead of
<br>&gt; std::array&lt;std::array&lt;int, 2&gt;, 3&gt;
<br>
<br>Unfortunately, I think that would break binary compatibility.
<br>We don't get to break binary compatibility very often, and IIRC,
<br>C++14 is not one of those times.<br></blockquote><div><br>How does this=
 break binary compatibility? A std::array&lt;std::array&lt;T, x&gt;, y&gt; =
should be layout-compatible with a std::array&lt;T, y, x&gt;. Where is the =
ABI breakage?<br></div>

<p></p>

-- <br />
&nbsp;<br />
--- <br />
You received this message because you are subscribed to the Google Groups &=
quot;ISO C++ Standard - Future Proposals&quot; group.<br />
To unsubscribe from this group and stop receiving emails from it, send an e=
mail to std-proposals+unsubscribe@isocpp.org.<br />
To post to this group, send email to std-proposals@isocpp.org.<br />
Visit this group at <a href=3D"http://groups.google.com/a/isocpp.org/group/=
std-proposals/?hl=3Den">http://groups.google.com/a/isocpp.org/group/std-pro=
posals/?hl=3Den</a>.<br />
&nbsp;<br />
&nbsp;<br />

------=_Part_51_15730282.1360883778093--

.


Author: DeadMG <wolfeinstein@gmail.com>
Date: Thu, 14 Feb 2013 15:18:01 -0800 (PST)
Raw View
------=_Part_1196_19193759.1360883881893
Content-Type: text/plain; charset=ISO-8859-1

I believe the mangled name of std::array would change.

--

---
You received this message because you are subscribed to the Google Groups "ISO C++ Standard - Future Proposals" group.
To unsubscribe from this group and stop receiving emails from it, send an email to std-proposals+unsubscribe@isocpp.org.
To post to this group, send email to std-proposals@isocpp.org.
Visit this group at http://groups.google.com/a/isocpp.org/group/std-proposals/?hl=en.



------=_Part_1196_19193759.1360883881893
Content-Type: text/html; charset=ISO-8859-1

I believe the mangled name of std::array would change.

<p></p>

-- <br />
&nbsp;<br />
--- <br />
You received this message because you are subscribed to the Google Groups &quot;ISO C++ Standard - Future Proposals&quot; group.<br />
To unsubscribe from this group and stop receiving emails from it, send an email to std-proposals+unsubscribe@isocpp.org.<br />
To post to this group, send email to std-proposals@isocpp.org.<br />
Visit this group at <a href="http://groups.google.com/a/isocpp.org/group/std-proposals/?hl=en">http://groups.google.com/a/isocpp.org/group/std-proposals/?hl=en</a>.<br />
&nbsp;<br />
&nbsp;<br />

------=_Part_1196_19193759.1360883881893--

.


Author: Chris Jefferson <chris@bubblescope.net>
Date: Fri, 15 Feb 2013 08:59:00 +0000
Raw View
On 14/02/13 21:18, DeadMG wrote:
> Not for me. I'd expect std::array<int, 2, 3> to be
> std::array<std::array<int, 2>, 3>. Perhaps 3,2 makes more sense from a
> direct perspective, but I find 2,3 to make more sense when going from
> current nested code to the new proposal. --

While I see your point of view, as far as I am aware every language
(including C) makes, in effect, std::array<int,2,3> map to
array<array<int, 2>, 3>.

Also it would be (to me) strange that:
std::array<int, 2, 3> a
a[1][2] = 1;

Would be invalid code (as I would expect the numbers in the array to
read in the same order as when I then dereference them).

Chris


>
> ---
> You received this message because you are subscribed to the Google
> Groups "ISO C++ Standard - Future Proposals" group.
> To unsubscribe from this group and stop receiving emails from it, send
> an email to std-proposals+unsubscribe@isocpp.org.
> To post to this group, send email to std-proposals@isocpp.org.
> Visit this group at
> http://groups.google.com/a/isocpp.org/group/std-proposals/?hl=en.
>
>

--

---
You received this message because you are subscribed to the Google Groups "ISO C++ Standard - Future Proposals" group.
To unsubscribe from this group and stop receiving emails from it, send an email to std-proposals+unsubscribe@isocpp.org.
To post to this group, send email to std-proposals@isocpp.org.
Visit this group at http://groups.google.com/a/isocpp.org/group/std-proposals/?hl=en.



.


Author: Sebastian Gesemann <s.gesemann@gmail.com>
Date: Fri, 15 Feb 2013 11:13:53 +0100
Raw View
On Thu, Feb 14, 2013 at 10:18 PM, DeadMG wrote:
> Not for me. I'd expect std::array<int, 2, 3> to be
> std::array<std::array<int, 2>, 3>. Perhaps 3,2 makes more sense from a
> direct perspective, but I find 2,3 to make more sense when going from
> current nested code to the new proposal.

Why? This is not how raw arrays and indexing works. I'd much rather
have array<int,2,3> correspond to int[2][3] where 3 is the "inner"
dimention and 2 is the "first" dimension for the first index.

As for binary compatibility, maybe it's a good idea to do keep
std::array as is and provide std::multi_array as a templated alias in
addition:

  multi_array<int,4>     --> array<int,4>
  multi_array<int,3,4>   --> array<array<int,4>,3>
  multi_array<int,2,3,4> --> array<array<array<int,4>,3>,2>

Cheers!
SG

--

---
You received this message because you are subscribed to the Google Groups "ISO C++ Standard - Future Proposals" group.
To unsubscribe from this group and stop receiving emails from it, send an email to std-proposals+unsubscribe@isocpp.org.
To post to this group, send email to std-proposals@isocpp.org.
Visit this group at http://groups.google.com/a/isocpp.org/group/std-proposals/?hl=en.



.


Author: Nicol Bolas <jmckesson@gmail.com>
Date: Fri, 15 Feb 2013 12:38:25 -0800 (PST)
Raw View
------=_Part_175_7948733.1360960705245
Content-Type: text/plain; charset=ISO-8859-1



On Friday, February 15, 2013 2:13:53 AM UTC-8, Sebastian Gesemann wrote:
>
> On Thu, Feb 14, 2013 at 10:18 PM, DeadMG wrote:
> > Not for me. I'd expect std::array<int, 2, 3> to be
> > std::array<std::array<int, 2>, 3>. Perhaps 3,2 makes more sense from a
> > direct perspective, but I find 2,3 to make more sense when going from
> > current nested code to the new proposal.
>
> Why? This is not how raw arrays and indexing works. I'd much rather
> have array<int,2,3> correspond to int[2][3] where 3 is the "inner"
> dimention and 2 is the "first" dimension for the first index.
>

Being consistent with a bad idea is still a bad idea. Yes, it's still
consistent, but it's still propagating the badness to another generation.

If we're going to be encouraging new programmers to avoid regular arrays
and use std::array as often as possible, then we should focus on making it
easy to use. And having to read numbers backwards is not easy to use.

--

---
You received this message because you are subscribed to the Google Groups "ISO C++ Standard - Future Proposals" group.
To unsubscribe from this group and stop receiving emails from it, send an email to std-proposals+unsubscribe@isocpp.org.
To post to this group, send email to std-proposals@isocpp.org.
Visit this group at http://groups.google.com/a/isocpp.org/group/std-proposals/?hl=en.



------=_Part_175_7948733.1360960705245
Content-Type: text/html; charset=ISO-8859-1
Content-Transfer-Encoding: quoted-printable

<br><br>On Friday, February 15, 2013 2:13:53 AM UTC-8, Sebastian Gesemann w=
rote:<blockquote class=3D"gmail_quote" style=3D"margin: 0;margin-left: 0.8e=
x;border-left: 1px #ccc solid;padding-left: 1ex;">On Thu, Feb 14, 2013 at 1=
0:18 PM, DeadMG wrote:
<br>&gt; Not for me. I'd expect std::array&lt;int, 2, 3&gt; to be
<br>&gt; std::array&lt;std::array&lt;int, 2&gt;, 3&gt;. Perhaps 3,2 makes m=
ore sense from a
<br>&gt; direct perspective, but I find 2,3 to make more sense when going f=
rom
<br>&gt; current nested code to the new proposal.
<br>
<br>Why? This is not how raw arrays and indexing works. I'd much rather
<br>have array&lt;int,2,3&gt; correspond to int[2][3] where 3 is the "inner=
"
<br>dimention and 2 is the "first" dimension for the first index.<br></bloc=
kquote><div><br>Being consistent with a bad idea is still a bad idea. Yes, =
it's still consistent, but it's still propagating the badness to another ge=
neration.<br></div><br>If we're going to be encouraging new programmers to =
avoid regular arrays and use std::array as often as possible, then we shoul=
d focus on making it easy to use. And having to read numbers backwards is n=
ot easy to use.<br>

<p></p>

-- <br />
&nbsp;<br />
--- <br />
You received this message because you are subscribed to the Google Groups &=
quot;ISO C++ Standard - Future Proposals&quot; group.<br />
To unsubscribe from this group and stop receiving emails from it, send an e=
mail to std-proposals+unsubscribe@isocpp.org.<br />
To post to this group, send email to std-proposals@isocpp.org.<br />
Visit this group at <a href=3D"http://groups.google.com/a/isocpp.org/group/=
std-proposals/?hl=3Den">http://groups.google.com/a/isocpp.org/group/std-pro=
posals/?hl=3Den</a>.<br />
&nbsp;<br />
&nbsp;<br />

------=_Part_175_7948733.1360960705245--

.


Author: Lawrence Crowl <crowl@googlers.com>
Date: Fri, 15 Feb 2013 17:10:39 -0800
Raw View
On 2/14/13, DeadMG <wolfeinstein@gmail.com> wrote:
> I believe the mangled name of std::array would change.

That is what I was referring to.

--
Lawrence Crowl

--

---
You received this message because you are subscribed to the Google Groups "ISO C++ Standard - Future Proposals" group.
To unsubscribe from this group and stop receiving emails from it, send an email to std-proposals+unsubscribe@isocpp.org.
To post to this group, send email to std-proposals@isocpp.org.
Visit this group at http://groups.google.com/a/isocpp.org/group/std-proposals/?hl=en.



.


Author: Sebastian Gesemann <s.gesemann@gmail.com>
Date: Sat, 16 Feb 2013 12:25:36 +0100
Raw View
On Fri, Feb 15, 2013 at 9:38 PM, Nicol Bolas wrote:
>
> On Friday, February 15, 2013 2:13:53 AM UTC-8, Sebastian Gesemann wrote:
>>
>> On Thu, Feb 14, 2013 at 10:18 PM, DeadMG wrote:
>> > Not for me. I'd expect std::array<int, 2, 3> to be
>> > std::array<std::array<int, 2>, 3>. Perhaps 3,2 makes more sense from a
>> > direct perspective, but I find 2,3 to make more sense when going from
>> > current nested code to the new proposal.
>>
>> Why? This is not how raw arrays and indexing works. I'd much rather
>> have array<int,2,3> correspond to int[2][3] where 3 is the "inner"
>> dimention and 2 is the "first" dimension for the first index.
>
>
> Being consistent with a bad idea is still a bad idea. Yes, it's still
> consistent, but it's still propagating the badness to another generation.
>
> If we're going to be encouraging new programmers to avoid regular arrays and
> use std::array as often as possible, then we should focus on making it easy
> to use. And having to read numbers backwards is not easy to use.

You're not making sense to me. Having to read numbers backwards is
exactly what you and DeadMG seem to want. I seriously can't believe
that you actually want something like this:

   multi_array<int,3,7> arr;
   arr[6][2] = 99;

where 3 is the dimension for the 2nd index and 7 for the first one.
You've got to be kidding me!

Cheers!
SG

--

---
You received this message because you are subscribed to the Google Groups "ISO C++ Standard - Future Proposals" group.
To unsubscribe from this group and stop receiving emails from it, send an email to std-proposals+unsubscribe@isocpp.org.
To post to this group, send email to std-proposals@isocpp.org.
Visit this group at http://groups.google.com/a/isocpp.org/group/std-proposals/?hl=en.



.


Author: aks.ajit.93@gmail.com
Date: Sun, 24 Mar 2013 01:20:21 -0700 (PDT)
Raw View
------=_Part_142_3505147.1364113221976
Content-Type: text/plain; charset=ISO-8859-1

How about this? This is just an implementation of DeadMG's idea and seems
intuitive to me

template <typename T, std::size_t d1, std::size_t ... ds>
struct mdarray{
    typedef
        std::array<
            typename mdarray<T, ds ...>::type,
            d1
        > type;
};

template <typename T, std::size_t d1>
struct mdarray<T, d1> {
    typedef std::array<T, d1> type;
};

template <typename T, std::size_t ... ds>
using multi_array = typename mdarray<T, ds ...>::type;

Thus, multi_array<int, 3, 4> translates to std::array<std::array<int, 4>,
3> and can be used like this:
multi_array<int, 4, 3> arr  = {
        1, 2, 3,
        1, 2, 3,
        1, 2, 3,
        1, 2, 3
    };

Cheers :)
Ajit Singh

On Friday, 15 February 2013 15:43:53 UTC+5:30, Sebastian Gesemann wrote:
>
> On Thu, Feb 14, 2013 at 10:18 PM, DeadMG wrote:
> > Not for me. I'd expect std::array<int, 2, 3> to be
> > std::array<std::array<int, 2>, 3>. Perhaps 3,2 makes more sense from a
> > direct perspective, but I find 2,3 to make more sense when going from
> > current nested code to the new proposal.
>
> Why? This is not how raw arrays and indexing works. I'd much rather
> have array<int,2,3> correspond to int[2][3] where 3 is the "inner"
> dimention and 2 is the "first" dimension for the first index.
>
> As for binary compatibility, maybe it's a good idea to do keep
> std::array as is and provide std::multi_array as a templated alias in
> addition:
>
>   multi_array<int,4>     --> array<int,4>
>   multi_array<int,3,4>   --> array<array<int,4>,3>
>   multi_array<int,2,3,4> --> array<array<array<int,4>,3>,2>
>
> Cheers!
> SG
>

--

---
You received this message because you are subscribed to the Google Groups "ISO C++ Standard - Future Proposals" group.
To unsubscribe from this group and stop receiving emails from it, send an email to std-proposals+unsubscribe@isocpp.org.
To post to this group, send email to std-proposals@isocpp.org.
Visit this group at http://groups.google.com/a/isocpp.org/group/std-proposals/?hl=en.



------=_Part_142_3505147.1364113221976
Content-Type: text/html; charset=ISO-8859-1
Content-Transfer-Encoding: quoted-printable

How about this? This is just an implementation of DeadMG's idea and seems i=
ntuitive to me<br><br>template &lt;typename T, std::size_t d1, std::size_t =
.... ds&gt;<br>struct mdarray{<br>&nbsp;&nbsp;&nbsp; typedef <br>&nbsp;&nbsp=
;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; std::array&lt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&=
nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; typename mdarray&lt;T, ds ...&gt;=
::type, <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp; d1<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &gt; type;<br>};<br><b=
r>template &lt;typename T, std::size_t d1&gt;<br>struct mdarray&lt;T, d1&gt=
; {<br>&nbsp;&nbsp;&nbsp; typedef std::array&lt;T, d1&gt; type;<br>};<br><b=
r>template &lt;typename T, std::size_t ... ds&gt;<br>using multi_array =3D =
typename mdarray&lt;T, ds ...&gt;::type;<br><br>Thus, multi_array&lt;int, 3=
, 4&gt; translates to std::array&lt;std::array&lt;int, 4&gt;, 3&gt; and can=
 be used like this:<br>multi_array&lt;int, 4, 3&gt; arr&nbsp; =3D {<br>&nbs=
p;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1, 2, 3,<br>&nbsp;&nbsp;&nbsp;&nbsp;=
&nbsp;&nbsp;&nbsp; 1, 2, 3,<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1=
, 2, 3,<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1, 2, 3<br>&nbsp;&nbs=
p;&nbsp; };<br><br>Cheers :)<br>Ajit Singh<br><br>On Friday, 15 February 20=
13 15:43:53 UTC+5:30, Sebastian Gesemann  wrote:<blockquote class=3D"gmail_=
quote" style=3D"margin: 0;margin-left: 0.8ex;border-left: 1px #ccc solid;pa=
dding-left: 1ex;">On Thu, Feb 14, 2013 at 10:18 PM, DeadMG wrote: <br>&gt; =
Not for me. I'd expect std::array&lt;int, 2, 3&gt; to be <br>&gt; std::arra=
y&lt;std::array&lt;int, 2&gt;, 3&gt;. Perhaps 3,2 makes more sense from a <=
br>&gt; direct perspective, but I find 2,3 to make more sense when going fr=
om <br>&gt; current nested code to the new proposal. <br> <br>Why? This is =
not how raw arrays and indexing works. I'd much rather <br>have array&lt;in=
t,2,3&gt; correspond to int[2][3] where 3 is the "inner" <br>dimention and =
2 is the "first" dimension for the first index. <br> <br>As for binary comp=
atibility, maybe it's a good idea to do keep <br>std::array as is and provi=
de std::multi_array as a templated alias in <br>addition: <br> <br>&nbsp; m=
ulti_array&lt;int,4&gt; &nbsp; &nbsp; --&gt; array&lt;int,4&gt; <br>&nbsp; =
multi_array&lt;int,3,4&gt; &nbsp; --&gt; array&lt;array&lt;int,4&gt;,3&gt; =
<br>&nbsp; multi_array&lt;int,2,3,4&gt; --&gt; array&lt;array&lt;array&lt;i=
nt,4&gt;,3&gt;,2&gt; <br> <br>Cheers! <br>SG <br></blockquote>

<p></p>

-- <br />
&nbsp;<br />
--- <br />
You received this message because you are subscribed to the Google Groups &=
quot;ISO C++ Standard - Future Proposals&quot; group.<br />
To unsubscribe from this group and stop receiving emails from it, send an e=
mail to std-proposals+unsubscribe@isocpp.org.<br />
To post to this group, send email to std-proposals@isocpp.org.<br />
Visit this group at <a href=3D"http://groups.google.com/a/isocpp.org/group/=
std-proposals/?hl=3Den">http://groups.google.com/a/isocpp.org/group/std-pro=
posals/?hl=3Den</a>.<br />
&nbsp;<br />
&nbsp;<br />

------=_Part_142_3505147.1364113221976--

.


Author: aks.ajit.93@gmail.com
Date: Sun, 24 Mar 2013 01:22:00 -0700 (PDT)
Raw View
------=_Part_421_18863667.1364113320797
Content-Type: text/plain; charset=ISO-8859-1

How about this? This is just an implementation of Sebastian's idea and
seems intuitive to me

template <typename T, std::size_t d1, std::size_t ... ds>
struct mdarray{
    typedef
        std::array<
            typename mdarray<T, ds ...>::type,
            d1
        > type;
};

template <typename T, std::size_t d1>
struct mdarray<T, d1> {
    typedef std::array<T, d1> type;
};

template <typename T, std::size_t ... ds>
using multi_array = typename mdarray<T, ds ...>::type;

Thus, multi_array<int, 3, 4> translates to std::array<std::array<int, 4>,
3> and can be used like this:
multi_array<int, 4, 3> arr  = {
        1, 2, 3,
        1, 2, 3,
        1, 2, 3,
        1, 2, 3
    };

Cheers :)
Ajit Singh

On Friday, 15 February 2013 15:43:53 UTC+5:30, Sebastian Gesemann wrote:
>
> On Thu, Feb 14, 2013 at 10:18 PM, DeadMG wrote:
> > Not for me. I'd expect std::array<int, 2, 3> to be
> > std::array<std::array<int, 2>, 3>. Perhaps 3,2 makes more sense from a
> > direct perspective, but I find 2,3 to make more sense when going from
> > current nested code to the new proposal.
>
> Why? This is not how raw arrays and indexing works. I'd much rather
> have array<int,2,3> correspond to int[2][3] where 3 is the "inner"
> dimention and 2 is the "first" dimension for the first index.
>
> As for binary compatibility, maybe it's a good idea to do keep
> std::array as is and provide std::multi_array as a templated alias in
> addition:
>
>   multi_array<int,4>     --> array<int,4>
>   multi_array<int,3,4>   --> array<array<int,4>,3>
>   multi_array<int,2,3,4> --> array<array<array<int,4>,3>,2>
>
> Cheers!
> SG
>

--

---
You received this message because you are subscribed to the Google Groups "ISO C++ Standard - Future Proposals" group.
To unsubscribe from this group and stop receiving emails from it, send an email to std-proposals+unsubscribe@isocpp.org.
To post to this group, send email to std-proposals@isocpp.org.
Visit this group at http://groups.google.com/a/isocpp.org/group/std-proposals/?hl=en.



------=_Part_421_18863667.1364113320797
Content-Type: text/html; charset=ISO-8859-1
Content-Transfer-Encoding: quoted-printable

How about this? This is just an implementation of Sebastian's idea and seem=
s intuitive to me<br><br>template &lt;typename T, std::size_t d1, std::size=
_t ... ds&gt;<br>struct mdarray{<br>&nbsp;&nbsp;&nbsp; typedef <br>&nbsp;&n=
bsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; std::array&lt;<br>&nbsp;&nbsp;&nbsp;&nbs=
p;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; typename mdarray&lt;T, ds ...&=
gt;::type, <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=
&nbsp; d1<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &gt; type;<br>};<br=
><br>template &lt;typename T, std::size_t d1&gt;<br>struct mdarray&lt;T, d1=
&gt; {<br>&nbsp;&nbsp;&nbsp; typedef std::array&lt;T, d1&gt; type;<br>};<br=
><br>template &lt;typename T, std::size_t ... ds&gt;<br>using multi_array =
=3D typename mdarray&lt;T, ds ...&gt;::type;<br><br>Thus, multi_array&lt;in=
t, 3, 4&gt; translates to std::array&lt;std::array&lt;int, 4&gt;, 3&gt; and=
 can be used like this:<br>multi_array&lt;int, 4, 3&gt; arr&nbsp; =3D {<br>=
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1, 2, 3,<br>&nbsp;&nbsp;&nbsp;&n=
bsp;&nbsp;&nbsp;&nbsp; 1, 2, 3,<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbs=
p; 1, 2, 3,<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1, 2, 3<br>&nbsp;=
&nbsp;&nbsp; };<br><br>Cheers :)<br>Ajit Singh<br><br>On Friday, 15 Februar=
y 2013 15:43:53 UTC+5:30, Sebastian Gesemann  wrote:<blockquote class=3D"gm=
ail_quote" style=3D"margin: 0;margin-left: 0.8ex;border-left: 1px #ccc soli=
d;padding-left: 1ex;">On Thu, Feb 14, 2013 at 10:18 PM, DeadMG wrote: <br>&=
gt; Not for me. I'd expect std::array&lt;int, 2, 3&gt; to be <br>&gt; std::=
array&lt;std::array&lt;int, 2&gt;, 3&gt;. Perhaps 3,2 makes more sense from=
 a <br>&gt; direct perspective, but I find 2,3 to make more sense when goin=
g from <br>&gt; current nested code to the new proposal. <br> <br>Why? This=
 is not how raw arrays and indexing works. I'd much rather <br>have array&l=
t;int,2,3&gt; correspond to int[2][3] where 3 is the "inner" <br>dimention =
and 2 is the "first" dimension for the first index. <br> <br>As for binary =
compatibility, maybe it's a good idea to do keep <br>std::array as is and p=
rovide std::multi_array as a templated alias in <br>addition: <br> <br>&nbs=
p; multi_array&lt;int,4&gt; &nbsp; &nbsp; --&gt; array&lt;int,4&gt; <br>&nb=
sp; multi_array&lt;int,3,4&gt; &nbsp; --&gt; array&lt;array&lt;int,4&gt;,3&=
gt; <br>&nbsp; multi_array&lt;int,2,3,4&gt; --&gt; array&lt;array&lt;array&=
lt;int,4&gt;,3&gt;,2&gt; <br> <br>Cheers! <br>SG <br></blockquote>

<p></p>

-- <br />
&nbsp;<br />
--- <br />
You received this message because you are subscribed to the Google Groups &=
quot;ISO C++ Standard - Future Proposals&quot; group.<br />
To unsubscribe from this group and stop receiving emails from it, send an e=
mail to std-proposals+unsubscribe@isocpp.org.<br />
To post to this group, send email to std-proposals@isocpp.org.<br />
Visit this group at <a href=3D"http://groups.google.com/a/isocpp.org/group/=
std-proposals/?hl=3Den">http://groups.google.com/a/isocpp.org/group/std-pro=
posals/?hl=3Den</a>.<br />
&nbsp;<br />
&nbsp;<br />

------=_Part_421_18863667.1364113320797--

.


Author: Joseph Mansfield <sftrabbit@gmail.com>
Date: Sun, 24 Mar 2013 04:12:14 -0700 (PDT)
Raw View
------=_Part_2353_31862888.1364123534511
Content-Type: text/plain; charset=ISO-8859-1

I also agree that std::array<int, 2, 3> should correspond to
std::array<std::array<int, 3>, 2>. The fact that you have to read them
backwards for the current definition of std::array is a problem with that
definition. Due to the nesting, 2 is the first dimension and 3 is the
second dimension. If the template parameters had been swapped over, it'd
read as std::array<2, std::array<3, int>>.

I agree that this proposal would be a nice idea.

Joseph Mansfield

On Saturday, 16 February 2013 11:25:36 UTC, Sebastian Gesemann wrote:
>
> On Fri, Feb 15, 2013 at 9:38 PM, Nicol Bolas wrote:
> >
> > On Friday, February 15, 2013 2:13:53 AM UTC-8, Sebastian Gesemann wrote:
> >>
> >> On Thu, Feb 14, 2013 at 10:18 PM, DeadMG wrote:
> >> > Not for me. I'd expect std::array<int, 2, 3> to be
> >> > std::array<std::array<int, 2>, 3>. Perhaps 3,2 makes more sense from
> a
> >> > direct perspective, but I find 2,3 to make more sense when going from
> >> > current nested code to the new proposal.
> >>
> >> Why? This is not how raw arrays and indexing works. I'd much rather
> >> have array<int,2,3> correspond to int[2][3] where 3 is the "inner"
> >> dimention and 2 is the "first" dimension for the first index.
> >
> >
> > Being consistent with a bad idea is still a bad idea. Yes, it's still
> > consistent, but it's still propagating the badness to another
> generation.
> >
> > If we're going to be encouraging new programmers to avoid regular arrays
> and
> > use std::array as often as possible, then we should focus on making it
> easy
> > to use. And having to read numbers backwards is not easy to use.
>
> You're not making sense to me. Having to read numbers backwards is
> exactly what you and DeadMG seem to want. I seriously can't believe
> that you actually want something like this:
>
>    multi_array<int,3,7> arr;
>    arr[6][2] = 99;
>
> where 3 is the dimension for the 2nd index and 7 for the first one.
> You've got to be kidding me!
>
> Cheers!
> SG
>

--

---
You received this message because you are subscribed to the Google Groups "ISO C++ Standard - Future Proposals" group.
To unsubscribe from this group and stop receiving emails from it, send an email to std-proposals+unsubscribe@isocpp.org.
To post to this group, send email to std-proposals@isocpp.org.
Visit this group at http://groups.google.com/a/isocpp.org/group/std-proposals/?hl=en.



------=_Part_2353_31862888.1364123534511
Content-Type: text/html; charset=ISO-8859-1
Content-Transfer-Encoding: quoted-printable

I also agree that std::array&lt;int, 2, 3&gt; should correspond to std::arr=
ay&lt;std::array&lt;int, 3&gt;, 2&gt;. The fact that you have to read them =
backwards for the current definition of std::array is a problem with that d=
efinition. Due to the nesting, 2 is the first dimension and 3 is the second=
 dimension. If the template parameters had been swapped over, it'd read as =
std::array&lt;2, std::array&lt;3, int&gt;&gt;.<div><br></div><div>I agree t=
hat this proposal would be a nice idea.</div><div><br></div><div>Joseph Man=
sfield<br><br>On Saturday, 16 February 2013 11:25:36 UTC, Sebastian Geseman=
n  wrote:<blockquote class=3D"gmail_quote" style=3D"margin: 0;margin-left: =
0.8ex;border-left: 1px #ccc solid;padding-left: 1ex;">On Fri, Feb 15, 2013 =
at 9:38 PM, Nicol Bolas wrote: <br>&gt; <br>&gt; On Friday, February 15, 20=
13 2:13:53 AM UTC-8, Sebastian Gesemann wrote: <br>&gt;&gt; <br>&gt;&gt; On=
 Thu, Feb 14, 2013 at 10:18 PM, DeadMG wrote: <br>&gt;&gt; &gt; Not for me.=
 I'd expect std::array&lt;int, 2, 3&gt; to be <br>&gt;&gt; &gt; std::array&=
lt;std::array&lt;int, 2&gt;, 3&gt;. Perhaps 3,2 makes more sense from a <br=
>&gt;&gt; &gt; direct perspective, but I find 2,3 to make more sense when g=
oing from <br>&gt;&gt; &gt; current nested code to the new proposal. <br>&g=
t;&gt; <br>&gt;&gt; Why? This is not how raw arrays and indexing works. I'd=
 much rather <br>&gt;&gt; have array&lt;int,2,3&gt; correspond to int[2][3]=
 where 3 is the "inner" <br>&gt;&gt; dimention and 2 is the "first" dimensi=
on for the first index. <br>&gt; <br>&gt; <br>&gt; Being consistent with a =
bad idea is still a bad idea. Yes, it's still <br>&gt; consistent, but it's=
 still propagating the badness to another generation. <br>&gt; <br>&gt; If =
we're going to be encouraging new programmers to avoid regular arrays and <=
br>&gt; use std::array as often as possible, then we should focus on making=
 it easy <br>&gt; to use. And having to read numbers backwards is not easy =
to use. <br> <br>You're not making sense to me. Having to read numbers back=
wards is <br>exactly what you and DeadMG seem to want. I seriously can't be=
lieve <br>that you actually want something like this: <br> <br>&nbsp; &nbsp=
;multi_array&lt;int,3,7&gt; arr; <br>&nbsp; &nbsp;arr[6][2] =3D 99; <br> <b=
r>where 3 is the dimension for the 2nd index and 7 for the first one. <br>Y=
ou've got to be kidding me! <br> <br>Cheers! <br>SG <br></blockquote></div>

<p></p>

-- <br />
&nbsp;<br />
--- <br />
You received this message because you are subscribed to the Google Groups &=
quot;ISO C++ Standard - Future Proposals&quot; group.<br />
To unsubscribe from this group and stop receiving emails from it, send an e=
mail to std-proposals+unsubscribe@isocpp.org.<br />
To post to this group, send email to std-proposals@isocpp.org.<br />
Visit this group at <a href=3D"http://groups.google.com/a/isocpp.org/group/=
std-proposals/?hl=3Den">http://groups.google.com/a/isocpp.org/group/std-pro=
posals/?hl=3Den</a>.<br />
&nbsp;<br />
&nbsp;<br />

------=_Part_2353_31862888.1364123534511--

.


Author: Joseph Mansfield <sftrabbit@gmail.com>
Date: Sun, 24 Mar 2013 04:15:13 -0700 (PDT)
Raw View
------=_Part_2394_16431367.1364123713291
Content-Type: text/plain; charset=ISO-8859-1

I believe the implementation given by Ajit Singh above would solve this
problem. Instead of changing std::array, have a new std::multiarray (or
similarly named) that aliases the corresponding std::array type.

Joseph Mansfield

On Saturday, 16 February 2013 01:10:39 UTC, Lawrence Crowl wrote:
>
> On 2/14/13, DeadMG <wolfei...@gmail.com <javascript:>> wrote:
> > I believe the mangled name of std::array would change.
>
> That is what I was referring to.
>
> --
> Lawrence Crowl
>

--

---
You received this message because you are subscribed to the Google Groups "ISO C++ Standard - Future Proposals" group.
To unsubscribe from this group and stop receiving emails from it, send an email to std-proposals+unsubscribe@isocpp.org.
To post to this group, send email to std-proposals@isocpp.org.
Visit this group at http://groups.google.com/a/isocpp.org/group/std-proposals/?hl=en.



------=_Part_2394_16431367.1364123713291
Content-Type: text/html; charset=ISO-8859-1
Content-Transfer-Encoding: quoted-printable

I believe the implementation given by&nbsp;Ajit Singh above would solve thi=
s problem. Instead of changing std::array, have a new std::multiarray (or s=
imilarly named) that aliases the corresponding std::array type.<div><br></d=
iv><div>Joseph Mansfield<br><br>On Saturday, 16 February 2013 01:10:39 UTC,=
 Lawrence Crowl  wrote:<blockquote class=3D"gmail_quote" style=3D"margin: 0=
;margin-left: 0.8ex;border-left: 1px #ccc solid;padding-left: 1ex;">On 2/14=
/13, DeadMG &lt;<a href=3D"javascript:" target=3D"_blank" gdf-obfuscated-ma=
ilto=3D"X9pepjqP9aIJ">wolfei...@gmail.com</a>&gt; wrote: <br>&gt; I believe=
 the mangled name of std::array would change. <br> <br>That is what I was r=
eferring to. <br> <br>-- <br>Lawrence Crowl <br></blockquote></div>

<p></p>

-- <br />
&nbsp;<br />
--- <br />
You received this message because you are subscribed to the Google Groups &=
quot;ISO C++ Standard - Future Proposals&quot; group.<br />
To unsubscribe from this group and stop receiving emails from it, send an e=
mail to std-proposals+unsubscribe@isocpp.org.<br />
To post to this group, send email to std-proposals@isocpp.org.<br />
Visit this group at <a href=3D"http://groups.google.com/a/isocpp.org/group/=
std-proposals/?hl=3Den">http://groups.google.com/a/isocpp.org/group/std-pro=
posals/?hl=3Den</a>.<br />
&nbsp;<br />
&nbsp;<br />

------=_Part_2394_16431367.1364123713291--

.


Author: Michael Price - Dev <michael.b.price.dev@gmail.com>
Date: Fri, 29 Mar 2013 12:58:25 -0700 (PDT)
Raw View
------=_Part_1274_1858958.1364587105902
Content-Type: text/plain; charset=ISO-8859-1

I have been planning on doing this proposal for a while now, but first I
had to get N3526
(http://www.open-std.org/JTC1/SC22/WG21/docs/papers/2013/n3526.html) in for
things to play nicely.  I am currently working on said proposal and hope to
have a first draft of it before the Bristol meeting (although it won't be
an official proposal and I won't be attending).

FWIW, I would dislike introducing a new identifier to represent a
multidimensional array.  If you parse Lawrence Crowl's response carefully,
you'll notice that he says that C++14 is not an opportunity to break binary
compabitility.  That does not mean we should propose/adopt a bad idea
because we are too impatient to wait for C++17.

My two cents.

I'll post another update (probably to this thread) when I've got a version
of the draft ready for an initial round of input.

On Sunday, March 24, 2013 6:15:13 AM UTC-5, Joseph Mansfield wrote:
>
> I believe the implementation given by Ajit Singh above would solve this
> problem. Instead of changing std::array, have a new std::multiarray (or
> similarly named) that aliases the corresponding std::array type.
>
> Joseph Mansfield
>
> On Saturday, 16 February 2013 01:10:39 UTC, Lawrence Crowl wrote:
>>
>> On 2/14/13, DeadMG <wolfei...@gmail.com> wrote:
>> > I believe the mangled name of std::array would change.
>>
>> That is what I was referring to.
>>
>> --
>> Lawrence Crowl
>>
>

--

---
You received this message because you are subscribed to the Google Groups "ISO C++ Standard - Future Proposals" group.
To unsubscribe from this group and stop receiving emails from it, send an email to std-proposals+unsubscribe@isocpp.org.
To post to this group, send email to std-proposals@isocpp.org.
Visit this group at http://groups.google.com/a/isocpp.org/group/std-proposals/?hl=en.



------=_Part_1274_1858958.1364587105902
Content-Type: text/html; charset=ISO-8859-1
Content-Transfer-Encoding: quoted-printable

I have been planning on doing this proposal for a while now, but first I ha=
d to get N3526 (http://www.open-std.org/JTC1/SC22/WG21/docs/papers/2013/n35=
26.html) in for things to play nicely. &nbsp;I am currently working on said=
 proposal and hope to have a first draft of it before the Bristol meeting (=
although it won't be an official proposal and I won't be attending).<div><b=
r></div><div>FWIW, I would dislike introducing a new identifier to represen=
t a multidimensional array. &nbsp;If you parse Lawrence Crowl's response ca=
refully, you'll notice that he says that C++14 is not an opportunity to bre=
ak binary compabitility. &nbsp;That does not mean we should propose/adopt a=
 bad idea because we are too impatient to wait for C++17.</div><div><br></d=
iv><div>My two cents.</div><div><br></div><div>I'll post another update (pr=
obably to this thread) when I've got a version of the draft ready for an in=
itial round of input.<br><div><br>On Sunday, March 24, 2013 6:15:13 AM UTC-=
5, Joseph Mansfield wrote:<blockquote class=3D"gmail_quote" style=3D"margin=
: 0;margin-left: 0.8ex;border-left: 1px #ccc solid;padding-left: 1ex;">I be=
lieve the implementation given by&nbsp;Ajit Singh above would solve this pr=
oblem. Instead of changing std::array, have a new std::multiarray (or simil=
arly named) that aliases the corresponding std::array type.<div><br></div><=
div>Joseph Mansfield<br><br>On Saturday, 16 February 2013 01:10:39 UTC, Law=
rence Crowl  wrote:<blockquote class=3D"gmail_quote" style=3D"margin:0;marg=
in-left:0.8ex;border-left:1px #ccc solid;padding-left:1ex">On 2/14/13, Dead=
MG &lt;<a>wolfei...@gmail.com</a>&gt; wrote: <br>&gt; I believe the mangled=
 name of std::array would change. <br> <br>That is what I was referring to.=
 <br> <br>-- <br>Lawrence Crowl <br></blockquote></div></blockquote></div><=
/div>

<p></p>

-- <br />
&nbsp;<br />
--- <br />
You received this message because you are subscribed to the Google Groups &=
quot;ISO C++ Standard - Future Proposals&quot; group.<br />
To unsubscribe from this group and stop receiving emails from it, send an e=
mail to std-proposals+unsubscribe@isocpp.org.<br />
To post to this group, send email to std-proposals@isocpp.org.<br />
Visit this group at <a href=3D"http://groups.google.com/a/isocpp.org/group/=
std-proposals/?hl=3Den">http://groups.google.com/a/isocpp.org/group/std-pro=
posals/?hl=3Den</a>.<br />
&nbsp;<br />
&nbsp;<br />

------=_Part_1274_1858958.1364587105902--

.