Remove ConditionallyExistent, because it violates the C++ spec
[folly.git] / folly / ConditionallyExistent.h
diff --git a/folly/ConditionallyExistent.h b/folly/ConditionallyExistent.h
deleted file mode 100644 (file)
index c40dff1..0000000
+++ /dev/null
@@ -1,62 +0,0 @@
-/*
- * Copyright 2016 Facebook, Inc.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#pragma once
-
-#include <glog/logging.h>
-#include <folly/Portability.h>
-
-namespace folly {
-
-template <typename T, bool Debug>
-class ConditionallyExistent;
-
-template <typename T>
-class ConditionallyExistent<T, false> {
- public:
-  static constexpr bool present() { return false; }
-  explicit ConditionallyExistent(const T&) {}
-  explicit ConditionallyExistent(T&&) {}
-  ConditionallyExistent(const ConditionallyExistent&) = delete;
-  ConditionallyExistent(ConditionallyExistent&&) = delete;
-  ConditionallyExistent& operator=(const ConditionallyExistent&) = delete;
-  ConditionallyExistent& operator=(ConditionallyExistent&&) = delete;
-  template <typename F>
-  void with(const F&&) {}
-};
-
-template <typename T>
-class ConditionallyExistent<T, true> {
- public:
-  static constexpr bool present() { return true; }
-  explicit ConditionallyExistent(const T& v) : value_(v) {}
-  explicit ConditionallyExistent(T&& v) : value_(std::move(v)) {}
-  ConditionallyExistent(const ConditionallyExistent&) = delete;
-  ConditionallyExistent(ConditionallyExistent&&) = delete;
-  ConditionallyExistent& operator=(const ConditionallyExistent&) = delete;
-  ConditionallyExistent& operator=(ConditionallyExistent&&) = delete;
-  template <typename F>
-  void with(F&& f) {
-    f(value_);
-  }
-
- private:
-  T value_;
-};
-
-template <typename T>
-using ExistentIfDebug = ConditionallyExistent<T, kIsDebug>;
-}