Short version: Are MPI constants defined to be compile-time or link- time constants? (I'm only interested in constants here, like MPI_ANY_TAG, not handles like MPI_COMM_WORLD) Longer version: MPI-2.1:2.5.4 states that values like MPI_ANY_TAG need to be able to be used for initialization expressions and assignments. But what about switch/case statements? I ask because we have a workaround in OMPI for making MPI::SEEK_SET (and friends) work in Open MPI, but by making them link-time constants, not compile-time constants. Hence, you can do this: int a = MPI::SEEK_SET; but you can't do this (it'll fail with a compiler error): switch (a) { case MPI::SEEK_SET: ... Upon closer read on MPI-2.1:2.5.4, I *think* that's actually ok because MPI::SEEK_SET is usable for initialization expressions and assignments. There doesn't seem to be a requirement that MPI::SEEK_SET (and friends) need to be able to be used in compile-time constant expressions (such as switch/case). Does that sound right to everyone? -- Jeff Squyres Cisco Systems
participants (1)
-
Jeff Squyres