Remove use of generic lambdas
authorNick Terrell <terrelln@fb.com>
Mon, 3 Apr 2017 23:51:30 +0000 (16:51 -0700)
committerFacebook Github Bot <facebook-github-bot@users.noreply.github.com>
Mon, 3 Apr 2017 23:53:21 +0000 (16:53 -0700)
Summary:
The use of generic lambdas caused compiler errors with gcc 4.8.2.
Fixes https://github.com/facebook/folly/issues/569.

Reviewed By: Orvid, yfeldblum

Differential Revision: D4821115

fbshipit-source-id: 8372ee7695a3d0a1df0d033623618a923c261737

folly/io/Compression.cpp

index 5b83a6f..90235c6 100644 (file)
@@ -1599,14 +1599,16 @@ bool AutomaticCodec::canUncompress(
   return std::any_of(
       codecs_.begin(),
       codecs_.end(),
-      [data, uncompressedLength](const auto& codec) {
+      [data, uncompressedLength](std::unique_ptr<Codec> const& codec) {
         return codec->canUncompress(data, uncompressedLength);
       });
 }
 
 void AutomaticCodec::addCodecIfSupported(CodecType type) {
-  const bool present =
-      std::any_of(codecs_.begin(), codecs_.end(), [&type](const auto& codec) {
+  const bool present = std::any_of(
+      codecs_.begin(),
+      codecs_.end(),
+      [&type](std::unique_ptr<Codec> const& codec) {
         return codec->type() == type;
       });
   if (hasCodec(type) && !present) {
@@ -1631,17 +1633,20 @@ AutomaticCodec::AutomaticCodec(std::vector<std::unique_ptr<Codec>> customCodecs)
     checkCompatibleCodecs();
   }
   // Check that none of the codes are are null
-  DCHECK(std::none_of(codecs_.begin(), codecs_.end(), [](const auto& codec) {
-    return codec == nullptr;
-  }));
+  DCHECK(std::none_of(
+      codecs_.begin(), codecs_.end(), [](std::unique_ptr<Codec> const& codec) {
+        return codec == nullptr;
+      }));
 
-  needsUncompressedLength_ =
-      std::any_of(codecs_.begin(), codecs_.end(), [](const auto& codec) {
+  needsUncompressedLength_ = std::any_of(
+      codecs_.begin(), codecs_.end(), [](std::unique_ptr<Codec> const& codec) {
         return codec->needsUncompressedLength();
       });
 
   const auto it = std::max_element(
-      codecs_.begin(), codecs_.end(), [](const auto& lhs, const auto& rhs) {
+      codecs_.begin(),
+      codecs_.end(),
+      [](std::unique_ptr<Codec> const& lhs, std::unique_ptr<Codec> const& rhs) {
         return lhs->maxUncompressedLength() < rhs->maxUncompressedLength();
       });
   DCHECK(it != codecs_.end());