Можно ли предположить, что с точки зрения стека вызовов то же самое, что вызывать функцию, подобную function1
int function1(T1 t1, T2 t2);
, чем к другому, как функция2?
struct parameters_t
{
Wide<T1>::type t1;
Wide<T2>::type t2;
}
int function2(parameters_t p);
Где, Широкий шаблон шириной T до длины слова процессора.
Например, для 32-разрядных процессоров:
template<typename T, bool b = sizeof(T) >=4 >
struct Wide
{
typedef T type;
};
template<typename T>
struct Wide<T,false>
{
typedef unsigned int type;
};
Мне нужно сделать что-то вроде этого:
typedef int (*function_t)(parameters_t);
function_t function = (function_t) &function1;
parameters_t params;
// initialize params
function(params);
Спасибо!