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

FreeBSD Manual Pages

  
 
  

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

NAME
       std::regular - std::regular

Synopsis
	  Defined in header <concepts>
	  template			    <class			    T>
       (since C++20)
	  concept  regular  =  std::semiregular<T>  &&	std::equality_compara-
       ble<T>;

	  The regular concept specifies	that a type is regular,	that is, it is
       copyable,
	  default  constructible,  and equality	comparable. It is satisfied by
       types that behave
	  similarly to built-in	types like int,	and that are  comparable  with
       ==.

Example
       // Run this code

	#include <concepts>
	#include <iostream>

	template<std::regular T>
	struct Single {
	    T value;
	    friend bool	operator==(const Single&, const	Single&) = default;
	};

	int main()
	{
	    Single<int>	myInt1{4};
	    Single<int>	myInt2;
	    myInt2 = myInt1;

	    if (myInt1 == myInt2)
		std::cout << "Equal\n";

	    std::cout << myInt1.value << ' ' <<	myInt2.value <<	'\n';
	}

Output:
	Equal
	4 4

See also
	  semiregular specifies	that an	object of a type can be	copied,	moved,
       swapped,	and
	  (C++20)     default constructed
		      (concept)

http://cppreference.com		  2022.07.31		       std::regular(3)

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

home | help