Whole Tomato Software Forums
Whole Tomato Software Forums
Main Site | Profile | Register | Active Topics | Members | Search | FAQ
User name:
Password:
Save Password
Forgot your password?

 All Forums
 Visual Assist
 Technical Support
 Structure members not showing in intellisense.
 New Topic  Reply to Topic
 Printer Friendly
Author Previous Topic Topic Next Topic  

abartonkc
New Member

3 Posts

Posted - Feb 28 2006 :  1:52:23 PM  Show Profile  Reply with Quote
I'm using VAX (10.2.1440) with VS 6. We have a coding standard at my company that uses the token $$ within a structure and function names (example HOST$$Process and struct HOST$$s_ProcessData). The token prior to $$ indicates a subsystem and the part after the $$ indicates the function or structure within the subsystem. VAX won't show an intellisense list of structure members due to the $$ within the structure name. I have verified this by temporarily removing the $$ and running the name together (HOSTs_ProcessData) and the members then show up. I have contacted support about this and they have been unable to determine the problem, but they seem to think that using $$ within the structure definition isn't valid. We have used this notation for over 10 years and have never had a problem with it in any of the version of Visual Studio. The default intellisense in Visual Studio displays the members when VAX isn't installed or is disabled.

feline
Whole Tomato Software

United Kingdom
19015 Posts

Posted - Feb 28 2006 :  4:54:03 PM  Show Profile  Reply with Quote
i would not expect $$ to be valid in a variable name, but the following code:

struct nameTest
{
int banana;
int fruit$$apple;
int fruit$$pear;
};

int main(int argc, char* argv[])
{
nameTest foo;
}

compiles quite happily in VC6. when i reference foo i get the following:



can you try the same structure at your end and see what results you get?

zen is the art of being at one with the two'ness
Go to Top of Page

abartonkc
New Member

3 Posts

Posted - Feb 28 2006 :  5:27:05 PM  Show Profile  Reply with Quote
The problem I am having is not with $$ in variable names but rather in in the structure name.

struct fruit$$apple {
int color;
int size;
}

int main() {
struct fruit$$apple foo;

foo.
}

This will compile, but VAX will not display the members within foo.

Edited by - abartonkc on Feb 28 2006 5:27:51 PM
Go to Top of Page

jpizzi
Tomato Guru

USA
642 Posts

Posted - Feb 28 2006 :  8:57:46 PM  Show Profile  Reply with Quote
quote:
We have a coding standard at my company that uses the token $$ within a structure and function names (example HOST$$Process and struct HOST$$s_ProcessData). The token prior to $$ indicates a subsystem and the part after the $$ indicates the function or structure within the subsystem.
Isn't that what namespaces are for? Nevermind. Coding standards are not required to make sense.

The $ is not a legal character in identifiers. Many compilers, however, allow it as an extension. VMS (the Digital Equipment OS) used it in practically all of the system calls from any language. I wouldn't be surprised if that was a significant reason for compilers to allow it as an extension.

Joe Pizzi
Go to Top of Page

abartonkc
New Member

3 Posts

Posted - Mar 01 2006 :  09:05:54 AM  Show Profile  Reply with Quote
quote:
Originally posted by jpizzi
The $ is not a legal character in identifiers. Many compilers, however, allow it as an extension. VMS (the Digital Equipment OS) used it in practically all of the system calls from any language. I wouldn't be surprised if that was a significant reason for compilers to allow it as an extension.



Actually VMS is where this notation came from. This system originally ran on VMS, and was ported to NT 3.51 back in 1995. $$ was used to help distinguish system calls from application calls. Since Visual Studio never had an issue with $$ used in identifiers, the identifiers were not changed as part of the port.

I did find this on MSDN: (http://msdn2.microsoft.com/en-us/library(d=robot)/565w213d.aspx)

quote:

The dollar sign is also a valid identifier in Visual C++.

// dollar_sign_identifier.cpp
struct $Y1$ {
void $Test$() {}
};

int main() {
$Y1$ $x$;
$x$.$Test$();
}



Therefore I would think that since this is a tool specifically for Visual Studio, and since Visual C++ supports the usage of dollar signs ($) within identifiers, that the tool should also support dollar signs in identifiers if it is fully compatible with the Visual Studio.
Go to Top of Page

feline
Whole Tomato Software

United Kingdom
19015 Posts

Posted - Mar 02 2006 :  4:03:34 PM  Show Profile  Reply with Quote
personally i am taking the pragmatic approach to this, the structure called fruit$$apple compiles quite happily, so it should be supported.

abartonkc the idea is that if it compiles VA should support it, but we do have problems around the edges.

strangely enough i am getting suggestions on this structure in VS2003, but not in VC6 or VS2005

case=1015

zen is the art of being at one with the two'ness
Go to Top of Page

support
Whole Tomato Software

5566 Posts

Posted - Jun 19 2006 :  5:39:46 PM  Show Profile  Reply with Quote
Fixed in build 1524:

Added support for $$ within identifiers. (case=1015)
Go to Top of Page
  Previous Topic Topic Next Topic  
 New Topic  Reply to Topic
 Printer Friendly
Jump To:
© 2023 Whole Tomato Software, LLC Go To Top Of Page
Snitz Forums 2000