#cpp
Хочу создать функцию с аргументами по умолчанию:
void MaterialDiffuse(D3DCOLORVALUE Difzf = {1,1,1,0}){
//code
}
но аргументы по умолчанию не возможно занести в объект структуры D3DCOLORVALUE.
Как видно конструктора нет:
typedef struct _D3DCOLORVALUE {
float r;
float g;
float b;
float a;
} D3DCOLORVALUE;
Как можно заполнить струтуру в функции?
Кто-то ответил, но удалил ответ. Решение такое(кому-нибудь пригодится):
const _D3DCOLORVALUE defaultA = {1.0, 1.0, 10};
void MaterialDiffuse(_D3DCOLORVALUE Difzf = defaultA){
//code
}
Ответы
Ответ 1
В C++11 можно так: void MaterialDiffuse(D3DCOLORVALUE Difzf = D3DCOLORVALUE{1,1,1,0}){ //code }Ответ 2
А почему бы не написать конструктор(-ы) для этой структуры и далее в параметрах функции: void MaterialDiffuse(D3DCOLORVALUE Difzf = D3DCOLORVALUE (1,1,1,0)){ ....... }
Комментариев нет:
Отправить комментарий