mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-07-24 22:24:54 +00:00
Remove LLVM_HAS_VARIADIC_TEMPLATES and all the faux variadic workarounds guarded by it.
We no longer support compilers without variadic template support. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@229324 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@@ -70,8 +70,6 @@ public:
|
||||
return *this;
|
||||
}
|
||||
|
||||
#if LLVM_HAS_VARIADIC_TEMPLATES
|
||||
|
||||
/// Create a new object by constructing it in place with the given arguments.
|
||||
template<typename ...ArgTypes>
|
||||
void emplace(ArgTypes &&...Args) {
|
||||
@@ -80,51 +78,6 @@ public:
|
||||
new (storage.buffer) T(std::forward<ArgTypes>(Args)...);
|
||||
}
|
||||
|
||||
#else
|
||||
|
||||
/// Create a new object by default-constructing it in place.
|
||||
void emplace() {
|
||||
reset();
|
||||
hasVal = true;
|
||||
new (storage.buffer) T();
|
||||
}
|
||||
|
||||
/// Create a new object by constructing it in place with the given arguments.
|
||||
template<typename T1>
|
||||
void emplace(T1 &&A1) {
|
||||
reset();
|
||||
hasVal = true;
|
||||
new (storage.buffer) T(std::forward<T1>(A1));
|
||||
}
|
||||
|
||||
/// Create a new object by constructing it in place with the given arguments.
|
||||
template<typename T1, typename T2>
|
||||
void emplace(T1 &&A1, T2 &&A2) {
|
||||
reset();
|
||||
hasVal = true;
|
||||
new (storage.buffer) T(std::forward<T1>(A1), std::forward<T2>(A2));
|
||||
}
|
||||
|
||||
/// Create a new object by constructing it in place with the given arguments.
|
||||
template<typename T1, typename T2, typename T3>
|
||||
void emplace(T1 &&A1, T2 &&A2, T3 &&A3) {
|
||||
reset();
|
||||
hasVal = true;
|
||||
new (storage.buffer) T(std::forward<T1>(A1), std::forward<T2>(A2),
|
||||
std::forward<T3>(A3));
|
||||
}
|
||||
|
||||
/// Create a new object by constructing it in place with the given arguments.
|
||||
template<typename T1, typename T2, typename T3, typename T4>
|
||||
void emplace(T1 &&A1, T2 &&A2, T3 &&A3, T4 &&A4) {
|
||||
reset();
|
||||
hasVal = true;
|
||||
new (storage.buffer) T(std::forward<T1>(A1), std::forward<T2>(A2),
|
||||
std::forward<T3>(A3), std::forward<T4>(A4));
|
||||
}
|
||||
|
||||
#endif // LLVM_HAS_VARIADIC_TEMPLATES
|
||||
|
||||
static inline Optional create(const T* y) {
|
||||
return y ? Optional(*y) : Optional();
|
||||
}
|
||||
|
Reference in New Issue
Block a user