#include <type_traits>
#include <sstream>
#include <ostream>
#include "Cpp17.h"
Go to the source code of this file.
|
class | Cast< U > |
| dynamic_cast<U *>(x) does not compile if x is not polymorphic. More...
|
|
|
template<typename T > |
using | operator_not_eq_t = decltype(std::declval< T const & >() !=std::declval< T const & >()) |
| Defines the type for operator!= More...
|
|
template<typename T > |
using | operator_write_to_ostream_t = decltype(std::declval< std::ostream & >()<< std::declval< T const & >()) |
| Defines the type for operator<< More...
|
|
template<typename From , typename To > |
using | static_cast_t = decltype(static_cast< To >(std::declval< From >())) |
| Defines the type for static_cast<To>(From) More...
|
|
|
template<typename T > |
std::string | typeString () |
| typeid(T).name() does not account for const or reference. More...
|
|
|
template<typename T > |
constexpr auto | is_operator_not_eq_defined = cpp17::experimental::is_detected_v<operator_not_eq_t, T> |
| Allows to detect whether a type defines operator!= at compile time. More...
|
|
template<typename T > |
constexpr auto | is_operator_write_to_ostream_defined = cpp17::experimental::is_detected_v<operator_write_to_ostream_t, T> |
| Allows to detect whether a type defines ostream << x at compile time. More...
|
|
template<typename From , typename To > |
constexpr auto | is_static_cast_defined = cpp17::experimental::is_detected_v<static_cast_t, From, To> |
| Allows to detect (at compilation time) whether the call static_cast<To>(from) (where from is of type From ) will compile. More...
|
|