Реферат: Реализация отложенной загрузки библиотек на С
template <typename R>\
struct FUN_PROXY_IMPL(param_count)\
{\
template <class DynFunction, DL_REPEAT_N(param_count, typename P), class Policy> struct RetProxy\
{\
static R WINAPI ProxyFun(DL_REPEAT_PARAM_N(param_count, P, v))\
{\
if (DynFunction::InitFunction())\
return DynFunction::GetProxy()(DL_REPEAT_N(param_count, v));\
return Policy::template FunctionTrait<DynFunction>::MakeReturn();\
}\
};\
};\
\
template <>\
struct FUN_PROXY_IMPL(param_count) <void>\
{\
template <class DynFunction, DL_REPEAT_N(param_count, typename P), class Policy> struct RetProxy\
{\
static void WINAPI ProxyFun(DL_REPEAT_PARAM_N(param_count, P, v))\
{\
if (DynFunction::InitFunction())\
DynFunction::GetProxy()(DL_REPEAT_N(param_count, v));\
else\
Policy::template FunctionTrait<DynFunction>::MakeReturn();\
}\
};\
};\
\