У меня есть следующий код:
void funcA(void* pArg)
{
STRUCTA abc;
.
. // Some processing here
.
if (pArg)
(STRUCTA *)pArg = abc;
}
проблема в том, что этот код выдает следующее предупреждение: предупреждение: цель присваивания на самом деле не lvalue; это будет грубая ошибка в будущем
Без приведения я получу еще одно предупреждение о том, что пытаюсь разыменовать указатель void...
Поскольку предупреждения обрабатываются как ошибки, я не могу использовать этот код. Но я действительно не могу использовать в качестве аргумента какой-либо другой тип указателя, кроме void*. Есть ли элегантное решение, которое мне не хватает?
Есть ли способ заставить это работать?