Lookup rules in inline asm are a little different.
All struct members are included in the search, regardless of protection
attributes, scoping, etc. This sounds a little wierd, but is intentional. It's
fallout from trying to emulate MASM syntax, and MASM has little concept of
structs, scoping, etc. Secondly, all struct members resolve to simply an integer
representing the offset of that member from the start of the struct. This is so
that it can be used as an offset to whatever 'this' value is in the index
register:
mov EAX, foo[ECX]
I hope this clears up the confusion.
-Walter
Source:
The "somepublicfunction" did not report the error
on using m_cC in the inline assembly - since
m_cC is not declared as a global
variable.
The same thing with
someobj::somepublicfunction which failed to generate the
someobj::m_cC
reference.
someobj::somefunction appears to be
OK.