The following conversion features are unsupported.
- Implicit conversions using non-explicit constructors are unsupported. Example:
Listing: Example - Unsupported Implicit Conversions
class A{
public:
int m;
S(int x):m(x){};
};
int f(A a) {return a.m};
int b = f(5) /*value of b should be 5 because of explicit conversion of
f parameter(b = f(A(5)))*/
- Initializations using user-defined conversions are unsupported. Usually, when you invoke a user-defined conversion to convert an assignment-expression of type cv S (where S is a class type), to a type cv1 T (where T is a class type), a conversion member function of S that converts to cv1 T is considered a candidate function by overload resolution. However, this type of situation is unsupported on RS08 compilers. Example:
Listing: Example - Unsupported Initialization
struct T{
int m;
T() { m = 0; }
} t;
struct S {
operator T() { counter++; return t; }
} s00;
T t00 = s00;
---------------^------Constructor call with wrong number of arguments