FastArduino  v1.8
C++ library to build fast but small Arduino/AVR projects
move.h
1 // Copyright 2016-2021 Jean-Francois Poilpret
2 //
3 // Licensed under the Apache License, Version 2.0 (the "License");
4 // you may not use this file except in compliance with the License.
5 // You may obtain a copy of the License at
6 //
7 // http://www.apache.org/licenses/LICENSE-2.0
8 //
9 // Unless required by applicable law or agreed to in writing, software
10 // distributed under the License is distributed on an "AS IS" BASIS,
11 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 // See the License for the specific language governing permissions and
13 // limitations under the License.
14 
16 #ifndef MOVE_HH
17 #define MOVE_HH
18 
19 #include "types_traits.h"
20 
21 namespace std
22 {
39  template<typename T>
40  constexpr typename types_traits::remove_reference<T>::type&& move(T&& t)
41  {
42  return static_cast<typename types_traits::remove_reference<T>::type&&>(t);
43  }
44 }
45 
46 #endif /* MOVE_HH */
47 
types_traits.h
Useful traits for common types.
std::move
constexpr types_traits::remove_reference< T >::type && move(T &&t)
Obtain an "rvalue" reference.
Definition: move.h:40
std
Similar to standard C++ std namespace, this namespace is used by FastArduino library to implement var...
Definition: initializer_list.h:29