簡體   English   中英

Visual Studio 2015中的編譯器錯誤C2228

[英]Compiler Error C2228 in Visual Studio 2015

我正在嘗試在Visual Studio中編譯webrtc代碼,並且遇到了該錯誤(來自type_traits.h)。 代碼是:

// Determines if the given class has zero-argument .data() and .size() methods
// whose return values are convertible to T* and size_t, respectively.
template <typename DS, typename T>
class HasDataAndSize {
 private:
     template <
     typename C,
     typename std::enable_if<
     std::is_convertible<decltype(std::declval<C>().data()), T*>::value &&
     std::is_convertible<decltype(std::declval<C>().size()), std::size_t>::value>::type* = nullptr>
  static int Test(int);

  template <typename>
  static char Test(...);

 public:
  static constexpr bool value = std::is_same<decltype(Test<DS>(0)), int>::value;
};

錯誤是:

.data左邊的錯誤C2228必須具有class / struct / union

  • 如何重新編寫此模板,以使其與Visual Studio 2015編譯器一起編譯?

更新visual studio 2015以更新3解決了此問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM