Предупреждение компилятора (уровень 1) C4928
недопустимая инициализация копии; неявно применено несколько пользовательских преобразований
Обнаружено несколько определяемых пользователем подпрограмм преобразования. Компилятор выполнил код во всех таких подпрограммах.
Это предупреждение отключено по умолчанию. Подробнее: Выключенные по умолчанию предупреждения компилятора .
Следующий пример приводит к возникновению ошибки C4928:
// C4928.cpp
// compile with: /W1
#pragma warning(default: 4928)
struct I
{
};
struct I1 : I
{
};
struct I2 : I
{
};
template <class T>
struct Ptr
{
operator T*()
{
return 0;
}
Ptr()
{
}
Ptr(I*)
{
}
};
int main()
{
Ptr<I1> p1;
Ptr<I2> p2 = p1; // C4928
// try one of the following two lines to resolve this error
// Ptr<I2> p2(p1);
// Ptr<I2> p2 = (I1*) p1;
}