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 <concepts>
13#if defined(__xtd__cpp_lib_ranges)
14#include <ranges>
15#endif
16#include <type_traits>
17
19namespace xtd {
41 template<class value_t>
42 concept stringable =
43 std::derived_from<std::remove_cvref_t<value_t>, xtd::object> ||
44 std::derived_from<std::remove_cvref_t<value_t>, xtd::istringable<std::remove_cvref_t<value_t>>> ||
45 std::derived_from<std::remove_cvref_t<value_t>, xtd::iformatable> ||
46 std::derived_from<std::remove_cvref_t<value_t>, std::exception> ||
47 std::is_enum_v<std::remove_cvref_t<value_t>> ||
48 #if defined(__xtd__cpp_lib_ranges)
49 std::ranges::range<std::remove_cvref_t<value_t>> ||
50 #endif
52}
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
Definition stringable.hpp:42
Concept stream_insertable.
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::stream_insertable concept.