Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
std::alignment_of(3)	      C++ Standard Libary	  std::alignment_of(3)

NAME
       std::alignment_of - std::alignment_of

Synopsis
	  Defined in header <type_traits>
	  template< class T >		   (since C++11)
	  struct alignment_of;

	  Provides  the	 member	constant value equal to	the alignment require-
       ment of the type	T,
	  as if	obtained by an alignof expression. If T	is an array type,  re-
       turns the
	  alignment  requirements  of  the  element  type. If T	is a reference
       type, returns the
	  alignment requirements of the	type referred to.

	  If alignof(T)	is not a valid expression, the behavior	is undefined.

	  If the program adds specializations for std::alignment_of
	  or std::alignment_of_v
	  (since C++17), the behavior is undefined.

Member constants
	  value	   alignof(T)
	  [static] (public static member constant)

Member functions
	  operator std::size_t converts	the  object  to	 std::size_t,  returns
       value
			       (public member function)
	  operator()	       returns value
	  (C++14)	       (public member function)

Member types
	  Type	     Definition
	  value_type std::size_t
	  type	     std::integral_constant<std::size_t, value>

Possible implementation
	  template<class T>
	  struct   alignment_of	 :  std::integral_constant<std::size_t,	 alig-
       nof(T)> {};

Notes
	  This type trait predates the alignof keyword,	which can be  used  to
       obtain the same
	  value	with less verbosity.

Example
       // Run this code

	#include <cstdint>
	#include <iostream>
	#include <type_traits>

	struct A {};
	struct B
	{
	    std::int8_t	p;
	    std::int16_t q;
	};

	int main()
	{
	    std::cout << std::alignment_of<A>::value <<	' ';
	    std::cout << std::alignment_of<B>::value <<	' ';
	    std::cout << std::alignment_of<int>() << ' '; // alt syntax
	    std::cout  <<  std::alignment_of_v<double>	<<  '\n'; // c++17 alt
       syntax
	}

Possible output:
	1 2 4 8

See also
	  alignof operator(C++11)      queries	alignment  requirements	 of  a
       type
	  alignas  specifier(C++11)	 specifies  that  the  storage for the
       variable	should be
				       aligned by specific amount
	  aligned_storage	       defines the type	suitable  for  use  as
       uninitialized
	  (C++11)(deprecated in	C++23) storage for types of given size
				       (class template)
	  aligned_union			defines	 the  type suitable for	use as
       uninitialized
	  (C++11)(deprecated in	C++23) storage for all given types
				       (class template)
	  max_align_t		       trivial type with alignment requirement
       as great	as any
	  (C++11)		       other scalar type
				       (typedef)

http://cppreference.com		  2024.06.10		  std::alignment_of(3)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=std::alignment_of&sektion=3&manpath=FreeBSD+Ports+15.1.quarterly>

home | help