Есть ли стандартный способ получить типы аргументов функции и передать эти типы в виде пакета параметров шаблона? Я знаю, что это возможно в С++, потому что это было сделано до.
Я надеялся, что с С++ 14 или предстоящим С++ 1z будет существовать идиоматический способ реализовать arg_types<F>...
здесь:
template <typename ...Params>
void some_function(); // Params = const char* and const char*
FILE* fopen(const char* restrict filename, const char* restrict mode);
int main(){
some_function<arg_types<fopen>...>();
}
Чтобы быть ясным, ответ, утверждающий, что нет стандартного способа сделать это, не является ответом. Если ответа нет, я бы предпочел, чтобы этот вопрос оставался без ответа до тех пор, пока решение не будет добавлено в С++ 500 или до жары смерти Вселенной, в зависимости от того, что произойдет раньше:)
Изменить: удаленный ответ отметил, что я могу использовать PRETTY_FUNCTION
для получения имен типов параметров. Тем не менее, мне нужны фактические типы. Не имена этих типов.