• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 // Copyright 2018 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4 
5 #include "callback.h"
6 
Test()7 void Test() {
8   using base::BindOnce;
9   using base::Passed;
10   int i = 0;
11   int* p = nullptr;
12 
13   // Passed takes a pointer and the address is taken here.
14   // Remove `&` and replace base::Passed with std::move.
15   base::BindOnce([] {}, std::move(i));
16 
17   // Passed takes a pointer. Replace base::Passed with std::move plus deref.
18   base::BindOnce([] {}, std::move(*p));
19 
20   // The parameter is already rvalue-reference. Just remove base::Passed.
21   // Plus, check if unqualified names work.
22   base::BindOnce([] {}, std::move(*p));
23   BindOnce([] {}, 1);
24 }
25