Whole Tomato Software Forums
Whole Tomato Software Forums
Main Site | Profile | Register | Active Topics | Members | Search | FAQ
 All Forums
 Visual Assist
 Feature Requests
 Proper understanding of namespaces

You must be registered to post a reply.
Click here to register.

Screensize:
UserName:
Password:
Format: BoldItalicizeUnderlineStrikethrough Align leftCenterAlign right Insert horizontal ruleUpload and insert imageInsert hyperlinkInsert email addressInsert codeInsert quoted textInsert listInsert Emoji
   
Message:

Forum code is on.
Html is off.

 
Check to subscribe to this topic.
   

T O P I C    R E V I E W
KRG Posted - Oct 15 2025 : 1:20:01 PM
I filed a ticket on this around 3+ years ago and I'm still waiting. It would be great if VAX could understand namespaces and nested namespaces.

if I have something like this:


namespace Some::Nested::Namespace
{
    struct Foo
    {
        enum class Bar
        {
            A,
            B,
            C
        };

        Bar GetBar() const;
    };
}


then if I generate an implementation for GetBar, I end up with this mess:


namespace Some::Nested::Namespace
{
    Some::Nested::Namespace::Foo::Bar Foo::GetBar() const
    {

    }
}


If I try to autogenerate a switch statement for the enum, then I get this mess:


namespace Some::Nested::Namespace
{
    Some::Nested::Namespace::Foo::Bar Foo::GetBar() const
    {
        Bar varBar;

        switch ( varBar )
        {
            case Some::Nested::Namespace::Foo::Bar::A:
            break;
            case Some::Nested::Namespace::Foo::Bar::B:
            break;
            case Some::Nested::Namespace::Foo::Bar::C:
            break;
            default:
            break;
        }
    }
}


VAX obviously has some understanding of namespaces as it will create the definition of the function in the correct namespace block but it seems to fail when generating the types within those blocks.

what I would like is this:


namespace Some::Nested::Namespace
{
    Foo::Bar Foo::GetBar() const
    {
        Bar varBar;

        switch ( varBar )
        {
            case Bar::A:
            break;
            case Bar::B:
            break;
            case Bar::C:
            break;
            default:
            break;
        }
    }
}


© 2023 Whole Tomato Software, LLC Go To Top Of Page
Snitz Forums 2000