ChangesMeaningOf is an error message from GnuCpp which arose when changes after version 4.1.2 broke code which had previously worked. This is best illustrated with an example. I came across this while working with BoostFusion. -- JohnFletcher
Example code
namespace Z {
template struct A { };
}
using Z::A;
template struct B
{
#ifdef FAILS
typedef A A;
// Fails to compile with gcc 4.3.0 20070323
//generic_test.cpp:13: error: declaration of 'typedef struct Z::A B::A'
//generic_test.cpp:4: error: changes meaning of 'A' from 'struct Z::A'
// Does not fail with gcc 4.1.2
#else
typedef Z::A A;
#endif
};
The solution to the problem is to use the qualified name Z::A in the typedef.