Hi, Jens Vollinga wrote:
I don't know how to solve the problem of namespace collision/ambiguity with built-in function like sin,cos,... yet. But even in the current implementation a get an ambiguity for stuff like cout << sin(1) << endl; when both cmath and GiNaC are included and all their namespace members are us'ing'ed.
just to fill the void: 1. We could rename the functions: tan->Tan,... etc. (I don't like this. It's cowardice.) 2. We could write some pre-processor definitions like #define sin GiNaC::sin ... (Well, maybe. These definition could be packed in a convenience header for the user like #include <GiNaC/GiNaC_with_cmath>. But better not to include this header multiple times ...) 3. Don't avoid the ambiguities and force the user to explicitly write the namespace for such functions (and make lots of comments about it in the manual/tutorial). (Yes, use the force! Maybe give the user some extra header like in 2. to ease the situation). Regards, Jens