std::alignment_of

来自cppreference.com
< cpp‎ | types

 
 
 
类型支持
基本类型
基础类型
定宽整数类型 (C++11)
数值极限
C 数值极限接口
运行时类型信息
类型特性
类型类别
(C++11)
(C++11)
(C++11)
(C++11)
(C++11)
(C++11)
(C++11)
(C++11)
类型属性
(C++11)
(C++11)
(C++11)
(C++14)
(C++11)
(C++11)(C++17中过时)
(C++11)
类型特性常量
元函数
(C++17)
受支持操作
关系与属性查询
(C++11)
(C++11)
alignment_of
(C++11)
(C++11)
(C++11)
类型修改
(C++11)
(C++11)
(C++11)
类型变换
(C++11)
(C++11)
(C++17)
(C++11)(C++17中过时)
(C++17)
 
定义于头文件 <type_traits>
template< class T >
struct alignment_of;
(C++11 起)
提供部件恒定value类型T的对齐要求,等于,仿佛由alignof表达式获得。 T如果是一个数组类型,则返回的元素类型的对齐要求.
原文:
Provides the member constant value equal to the alignment requirement of the type T, as if obtained by an alignof expression. If T is an array type, returns the alignment requirements of the element type.
这段文字是通过 Google Translate 自动翻译生成的。
您可以帮助我们检查、纠正翻译中的错误。详情请点击这里

目录

继承自 std::integral_constant

成员常量

value
[静态]
alignof(typename std::remove_all_extents<T>::type)
(公开静态成员常量)

成员函数

operator std::size_t
转换对象为 std::size_t ,返回 value
(公开成员函数)
operator()
(C++14)
返回 value
(公开成员函数)

成员类型

类型 定义
value_type std::size_t
type std::integral_constant<std::size_t, value>

[编辑] 可能的实现

template< class T >
struct alignment_of : std::integral_constant<
                          std::size_t,
                          alignof(typename std::remove_all_extents<T>::type)
                       > {};

[编辑] 示例

#include <iostream>
#include <type_traits>
 
class A {};
 
int main()
{
    std::cout << std::alignment_of<A>::value << '\n';
    std::cout << std::alignment_of<int>::value << '\n';
    std::cout << std::alignment_of<double>::value << '\n';
}

输出:

1
4
8

[编辑] 另请参阅

alignof 运算符 查询类型的对齐要求 (C++11 起) [编辑]
定义类型在未初始化时需要的内存空间大小
(类模板) [编辑]
定义所有给定类型在未初始化时需要的最大内存空间大小
(类模板) [编辑]
内存对齐需求不小于任何基本类型的POD类型
(typedef) [编辑]