首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >断言结构类型是用alignas()声明的

断言结构类型是用alignas()声明的
EN

Stack Overflow用户
提问于 2019-12-20 06:36:34
回答 1查看 62关注 0票数 0

正如标题所述,我需要一些方法来断言类型已使用对齐方式声明:

代码语言:javascript
复制
struct alignas(16) MyStruct {
    ...
};

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

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-12-20 06:41:39

您可以使用alignof来确保您获得的文字与正确的大小对齐。您可以在函数中使用它,如下所示

代码语言:javascript
复制
template <typename T>
void foo(const T& bar)
{
    static_assert(alignof(T) == 16, "T must have an alignment of 16");
    // rest of function
}

如果在类中使用它,您将拥有

代码语言:javascript
复制
template <typename T>
class foo
{
    static_assert(alignof(T) == 16, "T must have an alignment of 16");
    // rest of class
};
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59417726

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档