2016-11-03 17 views
0

私はVisual Studioでwebrtcコードをコンパイルしようとしていますが、このエラー(type_traits.hから)に対して実行しています。コードは次のとおりです。Visual StudioのコンパイラエラーC2228 2035

// 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; 
}; 

エラーは次のとおりです。

エラーC2228が、私はそれので、このテンプレートを再書き込みするにはどうすればよいクラス/構造体/共用体に

  • を持っている必要があります「.dataセクション」の左ビジュアルスタジオ2015コンパイラでコンパイルしますか?
+0

あなたまたは(webrtc)はどのようにこのクラスを使用しましたか?どこでエラーが発生しますか? –

+0

その正確なコードを単に貼り付けるだけで( '#include 'を追加する)VS2015でうまくコンパイルできます。多分、他のコードがあなたのやり方になっていますか? – KompjoeFriek

+0

何ができるのでしょうか?いくつかのコンパイラオプション? – Sean

答えて

0

更新するVisual Studio 2015を更新する3がこの問題を解決しました。

関連する問題