FIX: Typedef Type Causes C2275: Illegal Use of Type This article was written about products for which Microsoft no longer offers support. Therefore, this article is offered "as is" and will no longer be updated.
This article was previously published under Q166513 SYMPTOMS
Using a typedef cast in the member initialization of a class may cause the
following errors:
error C2275: 'test::run' : illegal use of this type as an expression error C2146: syntax error : missing ')' before identifier 'arg' error C2612: trailing '.*|->*' illegal in base/member initializer list error C2059: syntax error : ')' error C2143: syntax error : missing ';' before '{' fatal error C1004: unexpected end of file found RESOLUTION
Use the actual type rather then the typedef. For example, in the following
sample use test::run rather than test_run. Or, use the functional notation
test_run (arg) for type conversion instead of the cast notation. Another
option is to initialize the member in the body of function.
STATUSMicrosoft has confirmed that this is a problem in the Microsoft products that are listed at the beginning of this article. This problem was corrected in Microsoft Visual C++ version 6.0. MORE INFORMATIONAPPLIES TO
| Article Translations
|


Back to the top
