libsemigroups  v3.0.0
C++ library for semigroups and monoids
Loading...
Searching...
No Matches
make<Konieczny>

This page contains documentation related to safely constructing a Konieczny instance.

See also
The `make` function for an overview of possible uses of the make function.

Functions

template<template< typename... > typename Thing, typename Container, typename Traits = KoniecznyTraits<typename Container::value_type>>
std::enable_if_t< std::is_same_v< Konieczny< typename Container::value_type, Traits >, Thing< typename Container::value_type, Traits > >, Konieczny< typename Container::value_type, Traits > > make (Container const &gens)
 Safely construct from generators.
 
template<template< typename... > typename Thing, typename Element, typename Traits = KoniecznyTraits<Element>>
std::enable_if_t< std::is_same_v< Konieczny< Element, Traits >, Thing< Element, Traits > >, Konieczny< Element, Traits > > make (std::initializer_list< Element > const &gens)
 Safely construct from generators.
 

Function Documentation

◆ make() [1/2]

template<template< typename... > typename Thing, typename Container, typename Traits = KoniecznyTraits<typename Container::value_type>>
std::enable_if_t< std::is_same_v< Konieczny< typename Container::value_type, Traits >, Thing< typename Container::value_type, Traits > >, Konieczny< typename Container::value_type, Traits > > make ( Container const & gens)
nodiscard

Despite the hideous signature, this function should be invoked as follows:

enable_if_is_same< Return, Blocks > make(Container const &cont)
Check the arguments, construct a Blocks object, and check it.
Definition bipart.hpp:798

This function constructs a Konieczny instance generated by the specified container of generators. There can be duplicate generators and although they do not count as distinct elements, they do count as distinct generators. In other words, the generators are precisely (a copy of) gens in the same order they occur in gens.

Template Parameters
Thingfor SFINAE, must be Konieczny.
Containerthe type of the argument gens.
Traitsthe traits type for the Konieczny being constructed (defaults to KoniecznyTraits<typename Container::value_type>).
Parameters
gensthe generators.
Exceptions
LibsemigroupsExceptionif any of the following hold:
  • gens is empty
  • Degree{}(x) != Degree{}(y) for some x, y in gens.

◆ make() [2/2]

template<template< typename... > typename Thing, typename Element, typename Traits = KoniecznyTraits<Element>>
std::enable_if_t< std::is_same_v< Konieczny< Element, Traits >, Thing< Element, Traits > >, Konieczny< Element, Traits > > make ( std::initializer_list< Element > const & gens)
nodiscard

Despite the hideous signature, this function should be invoked as follows:

This function constructs a Konieczny instance generated by the specified container of generators. There can be duplicate generators and although they do not count as distinct elements, they do count as distinct generators. In other words, the generators are precisely (a copy of) gens in the same order they occur in gens.

Template Parameters
Thingfor SFINAE, must be Konieczny.
Elementthe type of the elements in the Konieczny.
Traitsthe traits type for the Konieczny being constructed (defaults to KoniecznyTraits<Element>).
Parameters
gensthe generators.
Exceptions
LibsemigroupsExceptionif any of the following hold:
  • gens is empty
  • Degree{}(x) != Degree{}(y) for some x, y in gens.