$ xlC -qversion
IBM XL C/C++ for AIX, V13.1.3 (5725-C72, 5765-J07)
Version: 13.01.0003.0000
$ cat test.cpp
#include <boost/move/core.hpp>
int main() {}
$ xlC -I/src/boost_1_68_0 test.cpp
"/src/boost_1_68_0/boost/move/core.hpp", line 84.4: 1540-0064 (S) Syntax error: "base specifier" was expected but "}" was found.
It looks like __attribute__((__may_alias__)) is only stated as being supported before the type name per here (in practice this only seems to be necessary on template types). Having the alias before the type in declarations is also used throughout the rest of Boost: every usage of MAY_ALIAS I could find as part of a class declaration specifies the attribute after the class/struct keyword and before the type name. e.g.
Boost version: 1.68.0 Platform: AIX 7.1 TL04 SP01 Compiler: xlC++ v13.1.3
It looks like
__attribute__((__may_alias__))
is only stated as being supported before the type name per here (in practice this only seems to be necessary on template types). Having the alias before the type in declarations is also used throughout the rest of Boost: every usage of MAY_ALIAS I could find as part of a class declaration specifies the attribute after the class/struct keyword and before the type name. e.g.atomic/detail/storage_type.hpp
log/detail/threadsafe_queue.hpp