23#ifndef VCL_TYPES_POINTERS_H
24#define VCL_TYPES_POINTERS_H
80 std::add_pointer_t<std::remove_cv_t<RemovePtr<T>>>,
97 if constexpr (std::is_pointer_v<RemoveRef<T>>) {
101 return std::forward<T>(
obj);
118 if constexpr (std::is_pointer_v<RemoveRef<T>>) {
A class representing a line segment in n-dimensional space. The class is parameterized by a PointConc...
Definition segment.h:43
std::remove_pointer_t< T > RemovePtr
Utility alias to get a type without the pointer. e.g. If T is int*, the resulting type is int.
Definition pointers.h:42
std::remove_reference_t< T > RemoveRef
Utility alias to get a type type without the reference. e.g. If T is int&, the resulting type is int.
Definition pointers.h:55
auto & dereferencePtr(T &&obj)
Utility function that applies the unary operator '*' to the argument only if the object is a pointer,...
Definition pointers.h:95
std::remove_cvref_t< RemovePtr< T > > RemoveCVRefAndPointer
Utility alias to get clean type from an input type that could have a reference or a pointer.
Definition pointers.h:66
std::conditional_t< std::is_pointer_v< T >, std::add_pointer_t< std::remove_cv_t< RemovePtr< T > > >, T > RemoveConstFromPointer
Utility alias to get a pointer type without the constness. e.g. If T is const int*,...
Definition pointers.h:81
auto addressOfObj(T &obj)
Utility function that applies the unary operator '&' to the argument only if it is not a pointer.
Definition pointers.h:116