Я написал класс для управления буферами памяти графического процессора.
У меня есть один метод для создания буфера, инициализированного частью памяти ЦП (если pData имеет значение null, выделенный блок памяти GPU не инициализируется, оставаясь с неопределенными значениями), и перегрузка для его создания инициализируется то же значение байта:
IBuffer* CreateBuffer(IDevice* pDevice, int byteWidth, const void* pData);
IBuffer* CreateBuffer(IDevice* pDevice, int byteWidth, byte fillValue);
Варианты использования:
CreateBuffer(pDev, 512, pData); //OK
CreateBuffer(pDev, 512, nullptr); //OK
CreateBuffer(pDev, 512, 0xCD); //OK
CreateBuffer(pDev, 512, 0x01); //OK
CreateBuffer(pDev, 512, 0x00); //error: ambiguous call to overloaded function
Конечно, я могу вызвать приведение или изменить имя метода для решения проблемы. Мне просто интересно, есть ли где-то более серьезная проблема, вызывающая это, или это просто ограничение / ошибка компилятора.
Спасибо!