bwidgets/inc/basic_widgets/core/type/concepts.hpp

21 lines
444 B
C++
Raw Normal View History

#ifndef BWIDGETS_CONCEPTS_HPP_
#define BWIDGETS_CONCEPTS_HPP_
#include <ostream>
#include <string>
#include <type_traits>
namespace bwidgets::core
{
template<typename T>
concept CanToString = requires(T value) { std::to_string(value); };
template<typename T>
concept Numeric = std::is_arithmetic_v<T>;
template<typename T>
concept Printable = requires(T value) { std::declval<std::ostream&>() << value; };
}
#endif