Этот код недопустим в ISO C ++. Это будет допустимо в ISO C, и некоторые компиляторы C ++ могут поддерживать его как расширение.
В C ++ вы можете выполнить любое из следующих действий:
someFunction( SDL_Rect{0, 0, 10, 10} );
someFunction( {0, 0, 10, 10} );
Для того, чтобы быть действительным на обоих языках (нет причин для этого), я думаю, вам нужно будет использовать именованную переменную для аргумента:
SDL_Rect foo = { 0, 0, 10, 10 };
someFunction(foo);
или, возможно, макрос препроцессора, который расширяется по-разному в зависимости от языка.