前提・実現したいこと
C++でリアルタイムにグラフ描画がしたかったため下のmatplotlibcppというものを導入しようとしています。
https://github.com/lava/matplotlib-cpp
発生している問題・エラーメッセージ
ヘッダファイルを加えてコンパイルしようとすると、
include/matplotlibcpp.h:2380:38: error: no matching function for call to ‘begin(const double&)’ auto xs = distance(std::begin(x), std::end(x)); ^ note: candidate: template<class _Tp> constexpr const _Tp* std::begin(std::initializer_list<_Tp>) begin(initializer_list<_Tp> __ils) noexcept ^
というエラーが出ました。エラーメッセージが多いので省略しましたが、end(x)でも同様のエラーがでています。
xというのはテンプレート型引数なのですが、これがdouble型だと思われたことによってエラーが出ていると推測しています。
上記のx, yがstd::beginとstd::endで使えるようにするためにはどのようにすればよいでしょうか。
よろしくお願いいたします。
該当のソースコード
関係があると思われる部分を以下に示します。
C++
1template<> 2struct plot_impl<std::false_type> 3{ 4 template<typename IterableX, typename IterableY> 5 bool operator()(const IterableX& x, const IterableY& y, const std::string& format) 6 { 7 detail::_interpreter::get(); 8 9 // 2-phase lookup for distance, begin, end 10 using std::distance; 11 using std::begin; 12 using std::end; 13 14 auto xs = distance(std::begin(x), std::end(x)); 15 auto ys = distance(std::begin(y), std::end(y)); 16 assert(xs == ys && "x and y data must have the same number of elements!");
補足情報(FW/ツールのバージョンなど)
g++でC++17でコンパイルしています。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/11/28 17:13