gpt4 book ai didi

C++ 获取函数参数的字节数

转载 作者:行者123 更新时间:2023-12-03 06:54:21 28 4
gpt4 key购买 nike

<分区>

如何获取函数参数的大小(以字节为单位)?例子:void DummyFun(int64_t a, int32_t b, char c);字节大小将为 13。

我正在尝试使用模板来解决这个问题,但我不太擅长。

这是上下文化的代码以及我到目前为止所尝试的代码:

template<typename T>
constexpr size_t getSize()
{
return sizeof(T);
}

template<typename First, typename ... Others>
constexpr size_t getSize()
{
return getSize<Others...>() + sizeof(First);
}

class NamelessClass
{
private:
typedef void (*DefaultCtor)(void*);

void HookClassCtor(DefaultCtor pCtorFun, size_t szParamSize);

public:
template<typename T, typename ... Types>
inline void HookClassCtor(T(*pCtorFun)(Types ...))
{
// I need the size in bytes not the count
// HookClassCtor(reinterpret_cast<DefaultCtor>(pCtorFun), sizeof...(Types));

size_t n = getSize<Types ...>();
HookClassCtor(reinterpret_cast<DefaultCtor>(pCtorFun), n);
}
};

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com