xtd 0.2.0
Loading...
Searching...
No Matches
stringable.hpp
Go to the documentation of this file.
1
4#pragma once
5#define __XTD_STD_INTERNAL__
7#undef __XTD_STD_INTERNAL__
9#include "iformatable.hpp"
10#include "istringable.hpp"
11#include "object.hpp"
12#include "raw_type.hpp"
13#include <concepts>
14#if defined(__xtd__cpp_lib_ranges)
15#include <ranges>
16#endif
17
19namespace xtd {
40 template<class value_t>
41 concept stringable =
42 std::derived_from<xtd::raw_type<value_t>, xtd::object> ||
43 std::derived_from<xtd::raw_type<value_t>, xtd::istringable<xtd::raw_type<value_t>>> ||
44 std::derived_from<xtd::raw_type<value_t>, xtd::iformatable> ||
45 std::derived_from<xtd::raw_type<value_t>, std::exception> ||
46 std::is_enum_v<xtd::raw_type<value_t>> ||
47 #if defined(__xtd__cpp_lib_ranges)
48 std::ranges::range<xtd::raw_type<value_t>> ||
49 #endif
51}
Provides functionality to format the value of an object into a string representation.
Definition iformatable.hpp:42
Provides a way to represent the current object as a string.
Definition istringable.hpp:26
Supports all classes in the xtd class hierarchy and provides low-level services to derived classes....
Definition object.hpp:45
Concept stream_insertable.
Definition stream_insertable.hpp:30
Concept stringable.
Definition stringable.hpp:41
Contains xtd::iformatable interface.
Contains xtd::istringable interface.
The xtd namespace contains all fundamental classes to access Hardware, Os, System,...
Definition abstract_object.hpp:8
Contains xtd::object class.
Contains xtd::raw_type alias.
Contains xtd::stream_insertable concept.