summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--include/llvm/ADT/VariadicFunction.h20
-rw-r--r--unittests/ADT/VariadicFunctionTest.cpp8
2 files changed, 8 insertions, 20 deletions
diff --git a/include/llvm/ADT/VariadicFunction.h b/include/llvm/ADT/VariadicFunction.h
index 00ae347dc7..a9a0dc6b6e 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 *>());
}
diff --git a/unittests/ADT/VariadicFunctionTest.cpp b/unittests/ADT/VariadicFunctionTest.cpp
index 3cd63d277b..cde3120596 100644
--- a/unittests/ADT/VariadicFunctionTest.cpp
+++ b/unittests/ADT/VariadicFunctionTest.cpp
@@ -22,7 +22,7 @@ std::string StringCatImpl(ArrayRef<const std::string *> Args) {
S += *Args[i];
return S;
}
-const VariadicFunction<std::string, std::string, StringCatImpl> StringCat;
+const VariadicFunction<std::string, std::string, StringCatImpl> StringCat = {};
TEST(VariadicFunctionTest, WorksForClassTypes) {
EXPECT_EQ("", StringCat());
@@ -45,7 +45,7 @@ long SumImpl(ArrayRef<const int *> Args) {
Result += *Args[i];
return Result;
}
-const VariadicFunction<long, int, SumImpl> Sum;
+const VariadicFunction<long, int, SumImpl> Sum = {};
TEST(VariadicFunctionTest, WorksForPrimitiveTypes) {
EXPECT_EQ(0, Sum());
@@ -65,7 +65,7 @@ int StringAppendImpl(std::string *Dest, ArrayRef<const std::string *> Args) {
return Chars;
}
const VariadicFunction1<int, std::string *, std::string,
- StringAppendImpl> StringAppend;
+ StringAppendImpl> StringAppend = {};
TEST(VariadicFunction1Test, Works) {
std::string S0("hi");
@@ -93,7 +93,7 @@ void CountInRangeImpl(int *NumInRange, int Low, int High,
++(*NumInRange);
}
const VariadicFunction3<void, int *, int, int, int,
- CountInRangeImpl> CountInRange;
+ CountInRangeImpl> CountInRange = {};
TEST(VariadicFunction3Test, Works) {
int N = -1;