使用alignas()声明结构类型

问题描述 投票:0回答:1

正如标题所指出的,我需要某种方式来断言已经使用alignas声明了一个类型:

struct alignas(16) MyStruct {
    ...
};

它用于模板参数,其中模板类需要确保其模板化的类型是16字节对齐的。

c++ assert alignas
1个回答
2
投票

可以使用alignof来确保获得的类型与正确的大小对齐。您可以在函数中使用它,例如

alignof

如果您要在课堂上使用它,则应具有

template <typename T>
void foo(const T& bar)
{
    static_assert(alignof(T) == 16, "T must have an alignment of 16");
    // rest of function
}
© www.soinside.com 2019 - 2024. All rights reserved.