aboutsummaryrefslogtreecommitdiffstats
path: root/include
diff options
context:
space:
mode:
authorChandler Carruth <chandlerc@gmail.com>2011-12-17 10:20:15 +0000
committerChandler Carruth <chandlerc@gmail.com>2011-12-17 10:20:15 +0000
commit1243cdda6330139c55e8ecc033fcb559581e6870 (patch)
tree642e2ae797a900b18421527168289b77cadb5f48 /include
parent93ca12299f3210e300c9ac4f0fd8d6ce5b7d7d60 (diff)
downloadexternal_llvm-1243cdda6330139c55e8ecc033fcb559581e6870.zip
external_llvm-1243cdda6330139c55e8ecc033fcb559581e6870.tar.gz
external_llvm-1243cdda6330139c55e8ecc033fcb559581e6870.tar.bz2
As Doug pointed out (and I really should know), it is perfectly easy to
make VariadicFunction actually be trivial. Do so, and also make it look more like your standard trivial functor by making it a struct with no access specifiers. The unit test is updated to initialize its functors properly. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@146827 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'include')
-rw-r--r--include/llvm/ADT/VariadicFunction.h20
1 files changed, 4 insertions, 16 deletions
diff --git a/include/llvm/ADT/VariadicFunction.h b/include/llvm/ADT/VariadicFunction.h
index 00ae347..a9a0dc6 100644
--- a/include/llvm/ADT/VariadicFunction.h
+++ b/include/llvm/ADT/VariadicFunction.h
@@ -103,10 +103,7 @@ namespace llvm {
/// fixed leading arguments and up-to 32 optional arguments.
template <typename ResultT, typename ArgT,
ResultT (*Func)(ArrayRef<const ArgT *>)>
-class VariadicFunction {
- public:
- VariadicFunction() {}
-
+struct VariadicFunction {
ResultT operator()() const {
return Func(ArrayRef<const ArgT *>());
}
@@ -153,10 +150,7 @@ class VariadicFunction {
template <typename ResultT, typename Param0T, typename ArgT,
ResultT (*Func)(Param0T, ArrayRef<const ArgT *>)>
-class VariadicFunction1 {
- public:
- VariadicFunction1() {}
-
+struct VariadicFunction1 {
ResultT operator()(Param0T P0) const {
return Func(P0, ArrayRef<const ArgT *>());
}
@@ -203,10 +197,7 @@ class VariadicFunction1 {
template <typename ResultT, typename Param0T, typename Param1T, typename ArgT,
ResultT (*Func)(Param0T, Param1T, ArrayRef<const ArgT *>)>
-class VariadicFunction2 {
- public:
- VariadicFunction2() {}
-
+struct VariadicFunction2 {
ResultT operator()(Param0T P0, Param1T P1) const {
return Func(P0, P1, ArrayRef<const ArgT *>());
}
@@ -255,10 +246,7 @@ class VariadicFunction2 {
template <typename ResultT, typename Param0T, typename Param1T,
typename Param2T, typename ArgT,
ResultT (*Func)(Param0T, Param1T, Param2T, ArrayRef<const ArgT *>)>
-class VariadicFunction3 {
- public:
- VariadicFunction3() {}
-
+struct VariadicFunction3 {
ResultT operator()(Param0T P0, Param1T P1, Param2T P2) const {
return Func(P0, P1, P2, ArrayRef<const ArgT *>());
}