17#ifndef WPIUTIL_WPI_STLFORWARDCOMPAT_H
18#define WPIUTIL_WPI_STLFORWARDCOMPAT_H
32 using type = std::remove_cv_t<std::remove_reference_t<T>>;
45template <
typename T,
typename Function>
47 -> std::optional<
decltype(
F(*O))> {
55template <
typename T,
typename Function>
57 -> std::optional<
decltype(
F(*std::move(O)))> {
59 return F(*std::move(O));
static constexpr const unit_t< compound_unit< charge::coulomb, inverse< substance::mol > > > F(N_A *e)
Faraday constant.
Definition: ntcore_cpp.h:26
auto transformOptional(const std::optional< T > &O, const Function &F) -> std::optional< decltype(F(*O))>
Definition: STLForwardCompat.h:46
Definition: STLForwardCompat.h:31
std::remove_cv_t< std::remove_reference_t< T > > type
Definition: STLForwardCompat.h:32
typename wpi::remove_cvref< T >::type remove_cvref_t
Definition: STLForwardCompat.h:37