File tree Expand file tree Collapse file tree 1 file changed +42
-0
lines changed Expand file tree Collapse file tree 1 file changed +42
-0
lines changed Original file line number Diff line number Diff line change 1+ //  RUN: %check_clang_tidy -std=c++14 %s cppcoreguidelines-missing-std-forward %t -- \
2+ // RUN: -config="{CheckOptions: {cppcoreguidelines-missing-std-forward.ForwardFunction: custom_forward}}" -- -fno-delayed-template-parsing 
3+ 
4+ //  NOLINTBEGIN
5+ namespace  std  {
6+ 
7+ template  <typename  T> struct  remove_reference       { using  type = T; };
8+ template  <typename  T> struct  remove_reference <T&>  { using  type = T; };
9+ template  <typename  T> struct  remove_reference <T&&> { using  type = T; };
10+ 
11+ template  <typename  T> using  remove_reference_t  = typename  remove_reference<T>::type;
12+ 
13+ template  <typename  T> constexpr  T &&forward(remove_reference_t <T> &t) noexcept ;
14+ template  <typename  T> constexpr  T &&forward(remove_reference_t <T> &&t) noexcept ;
15+ template  <typename  T> constexpr  remove_reference_t <T> &&move(T &&x);
16+ 
17+ } //  namespace std
18+ //  NOLINTEND
19+ 
20+ template <class  T >
21+ constexpr  decltype (auto ) custom_forward(std::remove_reference_t <T>& tmp) noexcept 
22+ {
23+   return  static_cast <T&&>(tmp);
24+ }
25+ 
26+ template <class  T >
27+ constexpr  decltype (auto ) custom_forward(std::remove_reference_t <T>&& tmp) noexcept 
28+ {
29+   return  static_cast <T&&>(tmp);
30+ }
31+ 
32+ template <class  T >
33+ void  forward_with_std (T&& t) {
34+   //  CHECK-MESSAGES: :[[@LINE-1]]:27: warning: forwarding reference parameter 't' is never forwarded inside the function body [cppcoreguidelines-missing-std-forward]
35+ 
36+   T other{std::forward<T>(t)};
37+ }
38+ 
39+ template <class  T >
40+ void  move_with_custom (T&& t) {
41+   T other{custom_forward<T>(t)};
42+ }
    
 
   
 
     
   
   
          
     
  
    
     
 
    
      
     
 
     
    You can’t perform that action at this time.
  
 
    
  
     
    
      
        
     
 
       
      
     
   
 
    
    
  
 
  
 
     
    
0 commit comments