-
Notifications
You must be signed in to change notification settings - Fork 44
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Enforce element types of DASH containers to be trivially copyable #293
Conversation
… into bug-241-containertypes
@@ -135,13 +135,16 @@ template< | |||
class PatternT = TilePattern<NumDimensions, ROW_MAJOR, IndexT> > | |||
class Matrix | |||
{ | |||
#if !defined(_CRAYC) && !defined(__INTEL_COMPILER) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Intel compilers (tested 16.0 and 17.0) don't allow std::is_trivially_copyable
either. Why did you remove this check?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Because they do. I just tested with Intel 17.0 and I am sure I also verified 16 back when we discussed #241. Keep in mind that the Intel compiler relies on the GNU-provided STL so you might have to load a newer GCC module (at least I have to do that on our Linux cluster).
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yes, that seems alright.
I actually did test exactly that, but it's apparently specific to our dev server. When reloading gcc after loading the icc module, there is some hickup and the newer version of gcc is not used.
@fuchsto Just checked with Clang 3.8.0, works fine for me. What version did you test with? How would you check trivial-copyable in a custom type trait? |
@devreal We could define traits depending on the compiler and its version. If this is just an issue with Cray compilers, it's not worth the effort, of course. |
Consistently enforce
std::is_trivially_copyable
on element types of containers (except when using the Cray compiler).Introduce minimum required compiler version.
Makes
GlobPtr
trivially copyable after #221 has been resolved.Introduce
dash::Pair
which closely resemblesstd::pair
except for being trivially copyable.Fixes #241