FastLED 3.10.8
Loading...
Searching...
No Matches
move.h
Go to the documentation of this file.
1#pragma once
3#include "fl/stl/noexcept.h"
4
5namespace fl {
6
7
8// Define remove_reference trait
9template <typename T> struct remove_reference {
10 using type = T;
11};
12
13// Specialization for lvalue reference
14template <typename T> struct remove_reference<T &> {
15 using type = T;
16};
17
18// Specialization for rvalue reference
19template <typename T> struct remove_reference<T &&> {
20 using type = T;
21};
22
23// Helper alias template for remove_reference
24template <typename T>
26
27namespace adl_barrier { // see fl/stl/adl_barrier.h
28// Implementation of move
29template <typename T>
30constexpr typename remove_reference<T>::type &&move(T &&t) FL_NO_EXCEPT {
31 return static_cast<typename remove_reference<T>::type &&>(t);
32}
33} // namespace adl_barrier
34
35
36} // namespace fl
Keeps fl's generic templates out of argument-dependent lookup (ADL).
constexpr remove_reference< T >::type && move(T &&t) FL_NO_EXCEPT
Definition move.h:30
u8 u8 fract8 blur_amount FL_NO_EXCEPT
Definition blur.h:186
typename remove_reference< T >::type remove_reference_t
Definition move.h:25
Base definition for an LED controller.