Fixing whitespace problems
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@111767 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@@ -1 +1,76 @@
|
||||
//===----------------------------------------------------------------------===//
|
||||
//===----------------------------------------------------------------------===//
|
||||
//
|
||||
// The LLVM Compiler Infrastructure
|
||||
//
|
||||
// This file is distributed under the University of Illinois Open Source
|
||||
// License. See LICENSE.TXT for details.
|
||||
//
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
// <functional>
|
||||
|
||||
// reference_wrapper
|
||||
|
||||
// template <class... ArgTypes>
|
||||
// requires Callable<T, ArgTypes&&...>
|
||||
// Callable<T, ArgTypes&&...>::result_type
|
||||
// operator()(ArgTypes&&... args) const;
|
||||
|
||||
#include <functional>
|
||||
#include <cassert>
|
||||
|
||||
// 0 args, return int
|
||||
|
||||
int count = 0;
|
||||
|
||||
int f_int_0()
|
||||
{
|
||||
return 3;
|
||||
}
|
||||
|
||||
struct A_int_0
|
||||
{
|
||||
int operator()() {return 4;}
|
||||
};
|
||||
|
||||
void
|
||||
test_int_0()
|
||||
{
|
||||
// function
|
||||
{
|
||||
std::reference_wrapper<int ()> r1(f_int_0);
|
||||
assert(r1() == 3);
|
||||
}
|
||||
// function pointer
|
||||
{
|
||||
int (*fp)() = f_int_0;
|
||||
std::reference_wrapper<int (*)()> r1(fp);
|
||||
assert(r1() == 3);
|
||||
}
|
||||
// functor
|
||||
{
|
||||
A_int_0 a0;
|
||||
std::reference_wrapper<A_int_0> r1(a0);
|
||||
assert(r1() == 4);
|
||||
}
|
||||
}
|
||||
|
||||
// 1 arg, return void
|
||||
|
||||
void f_void_1(int i)
|
||||
{
|
||||
count += i;
|
||||
}
|
||||
|
||||
struct A_void_1
|
||||
{
|
||||
void operator()(int i)
|
||||
{
|
||||
count += i;
|
||||
}
|
||||
};
|
||||
|
||||
int main()
|
||||
{
|
||||
test_int_0();
|
||||
}
|
||||
|
Reference in New Issue
Block a user