[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Galois-list] compiling galois with libc++
From: |
Marc Espie |
Subject: |
[Galois-list] compiling galois with libc++ |
Date: |
Sun, 14 May 2017 17:05:22 +0200 |
User-agent: |
Mutt/1.5.22 (2013-10-16) |
I've had an interesting error message in grid.h, this code specifically:
for (int i=0; i<layers; ++i)
{
std::gslice g(d0.x + ncols * (d0.y + nrows * (d0.z + i)),
std::valarray<size_t>(len, 2),
std::valarray<size_t>(str, 2));
std::slice s(cols * rows * i, cols * rows, 1);
mask[g] = m[s];
}
Looking more closely, it appears libc++ has no assignment
between std::slice_array and std::gslice_array, and it seems
that this is indeed what the standard says.
(logically, by adding an intermediate conversion from std::slice into
std::valarray, the affectation would work, but I don't think the language
actually allows that).
However it appears that the commented out code works for me, both
on gcc4.9 + libstdc++ and clang4.0 + libc++
Otherwise, the fix would probably be to rewrite the std::slice as a second
std::gslice, since affectation will work then.
- [Galois-list] compiling galois with libc++,
Marc Espie <=