Симуляция вариадиков с помощью макросов
От: johny5 Новая Зеландия
Дата: 13.02.13 03:35
Оценка:
Всем привет.
Есть ли способ сгенерировать этот ужас с помощью Boost.Preprocessor?
template<typename ResultType, typename ParamClass, typename ParamType, typename ParamClass2, typename ParamType2, typename ParamClass3, typename ParamType3>
ResultType  QueryParam(ParamType (ParamClass::*param), ParamType2 (ParamClass2::*param2), ParamType3 (ParamClass3::*param3), typename const Identity<ResultType>::type& defaultValue = ResultType()) const
{
    const ParamType* paramPtr1 = QueryParamPtr(param);
    if( paramPtr1 )
    {
        return QueryDataDef<ResultType>(paramPtr1, defaultValue);
    }
    const ParamType2* paramPtr2 = QueryParamPtr(param2);
    if( paramPtr2 )
    {
        return QueryDataDef<ResultType>(paramPtr2, defaultValue);
    }
    const ParamType3* paramPtr3 = QueryParamPtr(param3);
    if( paramPtr3 )
    {
        return QueryDataDef<ResultType>(paramPtr3, defaultValue);
    }

    return defaultValue;
}


Я думаю тенденция тут видна.
А так-же хотелось бы посмотреть как бы это выглядело с вариадиками.

Спасибо!
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.