buffet: Fix CLang build issues

While trying to compile buffet with CLang compiler instead of GCC,
there were two breaks: nullptr_t wasn't quialified by std:: namespace
and buffet::internal_details::Buffer was forward-declared as 'struct'
but later defined as a 'class'.

BUG=None
TEST=USE="clang buffet" P2_TEST_FILTER="buffet::*" FEATURES=test emerge-link platform2

Change-Id: Iee253a85eeb49b35929bb0d40107bdcab8263930
Reviewed-on: https://chromium-review.googlesource.com/212300
Tested-by: Alex Vakulenko <avakulenko@chromium.org>
Reviewed-by: Chris Sosa <sosa@chromium.org>
Commit-Queue: Alex Vakulenko <avakulenko@chromium.org>
diff --git a/buffet/any_internal_impl.h b/buffet/any_internal_impl.h
index 5d93200..d875e3b 100644
--- a/buffet/any_internal_impl.h
+++ b/buffet/any_internal_impl.h
@@ -40,7 +40,7 @@
   return false;
 }
 
-struct Buffer;  // Forward declaration of data buffer container.
+class Buffer;  // Forward declaration of data buffer container.
 
 // Abstract base class for contained variant data.
 struct Data {
diff --git a/buffet/any_internal_impl_unittest.cc b/buffet/any_internal_impl_unittest.cc
index fbc56fc..8c2fa58 100644
--- a/buffet/any_internal_impl_unittest.cc
+++ b/buffet/any_internal_impl_unittest.cc
@@ -39,7 +39,7 @@
   buffer.Assign(nullptr);
   EXPECT_FALSE(buffer.IsEmpty());
   EXPECT_EQ(Buffer::kContained, buffer.storage_);
-  EXPECT_EQ(typeid(nullptr_t), buffer.GetDataPtr()->GetType());
+  EXPECT_EQ(typeid(std::nullptr_t), buffer.GetDataPtr()->GetType());
 
   // char *
   buffer.Assign("abcd");