f = select<plchldr const&, int, float>(&SomeClass::SomeMethod);
?
Первый
а почему?
Потому что мне не нравится plchldr
а такой select часто бывает нужен?
Мне не нравится идея доставать селектом по конст ссылке, если я тебя правильно понял, я за по значению
сам plchldr несёт только инфу о квалификаторах функции-члена
просто функции могут быть хитро перегружены
оба говно
А стой, я неправильно понял что ты делаешь, про совсем другой селект подумал, а что он делает?
ну так и какой вариант, с поправкой на функционал?
А ты не хочешь сделать select(&lol::kek, type_list<int, float, etc>, type_list<const_tag, volatile_tag, etc>)? Ну типо смысл в том что порядок совпадет с тем как ты пишешь функции, плюс субъективно опциональные параметры функции, компайл тайм теги удобнее чем опциональные шаблонные параметры
а третий аргумент точно type_list? мб qualifier_list?
да и где можно про технику с этими тегами почитать?
правда с этой штукой генерация сложнее будет и сложно реализовать любой порядок квалификаторов...
tag dispatch загугли
Ну тайп лист в том смысле что ты хочешь передать эту информацию о значениях типо енума в компайл тайме. Мб можно consteval функцией сделать если 20 плюсы кст и писать так select(type_list<int, etc>, eConst | eRvalue | etc);
Посмотри algorithm итераторные функции, там как раз так реализовано, в libstdc++ по крайне мере
https://en.cppreference.com/w/cpp/language/consteval
Обсуждают сегодня