![]() |
libsemigroups
v3.0.0
C++ library for semigroups and monoids
|
Defined in word-range.hpp
.
This namespace contains some functions for creating word_type objects in a compact form.
Functions | |
std::string | operator""_p (const char *w) |
Literal for defining word_type by parsing an algebraic expression. | |
std::string | operator""_p (const char *w, size_t n) |
Literal for defining std::string by parsing an algebraic expression. | |
word_type | operator""_w (const char *w) |
Literal for defining word_type over integers less than 10. | |
word_type | operator""_w (const char *w, size_t n) |
Literal for defining word_type over integers less than 10. | |
std::string operator""_p | ( | const char * | w | ) |
See operator""_p for details.
std::string operator""_p | ( | const char * | w, |
size_t | n ) |
This operator provides a convenient concise means of constructing a std::string from an algebraic expression. For example, "((ab)^3cc)^2"_p
equals "abababccabababcc"
and "a^0"_p
equals the empty string ""
.
This function has the following behaviour:
"()^ "
and in a-zA-Z0-9
are allowed.w | the letters of the word. |
n | the length of w (defaults to the length of w ). |
LibsemigroupsException | if the string cannot be parsed. |
word_type operator""_w | ( | const char * | w | ) |
See operator""_w for details.
word_type operator""_w | ( | const char * | w, |
size_t | n ) |
This operator provides a convenient brief means of constructing a word_type from an sequence of literal integer digits or a string. For example, 0123_w
produces the same output as word_type({0, 1, 2, 3})
and so too does "abcd"_w
.
There are some gotchas and this operator should be used with some care:
w
must consist of the integers \(\{0, \ldots, 9\}\) or the characters in a-zA-Z
but not both.w
starts with 0
and is follows by a value greater than 7
, then it is necessary to enclose w
in quotes. For example, 08_w
will not compile because it is interpreted as an invalid octal. However "08"_w
behaves as expected.w
consists of characters in a-zA-Z
, then the output is the same as that of ToWord::operator()(w)
, see operator()()w | the letters of the word. |
n | the length of w (defaults to the length of w ). |
LibsemigroupsException | if the input contains a mixture of integers and non-integers. |