xtd 1.0.0
Loading...
Searching...
No Matches
xtd::subtractable< type_t > Struct Template Reference

Definition

template<typename type_t>
struct xtd::subtractable< type_t >

Represents the subtractable concept.

Definition
template<typename type_t>
concept xtd::subtractable = requires(const xtd::raw_type<type_t>& a, const xtd::raw_type<type_t>& b) {{a - b} -> std::same_as<xtd::raw_type<type_t>>;};
Definition subtractable.hpp:12
std::remove_cvref_t< value_t > raw_type
Represents a raw type alias equivalent to std::remove_cvref_t<value_t>.
Definition raw_type.hpp:25
@ a
The A key.
Definition console_key.hpp:88
@ b
The B key.
Definition console_key.hpp:90
Header
#include <xtd/subtractable>
Namespace
xtd
Library
xtd.core
Examples
The following code shows how to use xtd::subtractable concept
#include <xtd/xtd>
auto print_is_subtractable(auto value) noexcept {
println("{} ({}) {} subtractable", value, type_of(value), subtractable<decltype(value)> ? "is" : "is not");
}
auto main() -> int {
print_is_subtractable(42);
print_is_subtractable(time_span {1, 2, 3});
print_is_subtractable(version {1, 2, 3});
}
// This code produces the following output :
//
// 42 (int) is subtractable
// 01:02:03 (xtd::time_span) is subtractable
// 1.2.3 (xtd::version) is not subtractable
Represents a time interval.
Definition time_span.hpp:29
auto println(FILE *file) -> void
Writes the current line terminator to the file output stream using the specified format information.
Definition println.hpp:14

The documentation for this struct was generated from the following file: