I never have needed to use nested namespaces. I just have tried it to see if they are supported or not, but it is not something that I need. If they are not, I simply will put in my notes: "Nested namespaces are not supported". End of the history. What would be useful is that if they're not supported the compiler will catch any attempt to do it as an error. As you can see, I'm obsessed with error trapping.
In your example in the help file
int i=1
'
namespace aa
int i=10
namespace bb
int i=20
end namespace
'
print i + aa::i + bb::i '31
'
namespace bb
print i '20
end namespace
I noticed that you are opening namespace bb before closing namespace aa and I thought that nested namespaces were supported. But maybe you forget to close the namespace? This is another error that should be trapped
What really interests me are the constructors and transient objects we already have talked about. Thanks to them, and the oveloading operators, that in FB work with user defined types, I have developed several data types with FreeBasic to support variants, safe arrays, currency, decimal, etc.
> Yes, print is an overrideable core procedure, not a statement.
With overrideable do you mean that I can write my own overloaded print procedure? If yes, which is the prototype? That could be very useful, for example, to print the contents of objects like a variant.