Improve performance of enumerate() with optimization disabled
[folly.git] / folly / Lazy.h
index 886a1eb20ed60b268cb3a4015c01bd7fcf9b56b0..ff115f3f3d3af233e35bada0678546385e399f87 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright 2014 Facebook, Inc.
+ * Copyright 2017 Facebook, Inc.
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-#ifndef FOLLY_LAZY_H_
-#define FOLLY_LAZY_H_
 
-#include <utility>
+#pragma once
+
 #include <type_traits>
+#include <utility>
 
-#include "folly/Optional.h"
+#include <folly/Optional.h>
 
 namespace folly {
 
@@ -86,7 +86,7 @@ namespace folly {
 
 namespace detail {
 
-template<class Func>
+template <class Func>
 struct Lazy {
   typedef typename std::result_of<Func()>::type result_type;
 
@@ -107,20 +107,22 @@ struct Lazy {
   }
 
   result_type& operator()() {
-    if (!value_) value_ = func_();
+    if (!value_) {
+      value_ = func_();
+    }
     return *value_;
   }
 
-private:
+ private:
   Optional<result_type> value_;
   Func func_;
 };
 
-}
+} // namespace detail
 
 //////////////////////////////////////////////////////////////////////
 
-template<class Func>
+template <class Func>
 detail::Lazy<typename std::remove_reference<Func>::type>
 lazy(Func&& fun) {
   return detail::Lazy<typename std::remove_reference<Func>::type>(
@@ -130,6 +132,4 @@ lazy(Func&& fun) {
 
 //////////////////////////////////////////////////////////////////////
 
-}
-
-#endif
+} // namespace folly