cmapfile.cc がコンパイルエラーになる
Closed this issue · 6 comments
h20y6m commented
make するとで以下のようなコンパイルエラーがでます。
g++ のバージョンは 7.4.0 です。
g++ -std=c++11 -MMD -MP -MF cmapfile.d -MT cmapfile.o -c -o cmapfile.o cmapfile.cc
cmapfile.cc: In constructor ‘cmapfile::cmapfile()’:
cmapfile.cc:66:4: error: no matching function for call to ‘regex_dispatcher::member_table<cmapfile>::member_table(<brace-enclosed initializer list>)’
})
^
In file included from cmapfile.hh:43:0,
from cmapfile.cc:36:
regex_dispatcher_m.hh:54:5: note: candidate: regex_dispatcher::member_table<Derived>::member_table(regex_dispatcher::member_table<Derived>::table_type) [with Derived = cmapfile; regex_dispatcher::member_table<Derived>::table_type = std::vector<std::pair<std::__cxx11::basic_regex<char>, bool (cmapfile::*)(const std::__cxx11::match_results<__gnu_cxx::__normal_iterator<const char*, std::__cxx11::basic_string<char> > >&)>, std::allocator<std::pair<std::__cxx11::basic_regex<char>, bool (cmapfile::*)(const std::__cxx11::match_results<__gnu_cxx::__normal_iterator<const char*, std::__cxx11::basic_string<char> > >&)> > >]
member_table (table_type t):
^~~~~~~~~~~~
regex_dispatcher_m.hh:54:5: note: no known conversion for argument 1 from ‘<brace-enclosed initializer list>’ to ‘regex_dispatcher::member_table<cmapfile>::table_type {aka std::vector<std::pair<std::__cxx11::basic_regex<char>, bool (cmapfile::*)(const std::__cxx11::match_results<__gnu_cxx::__normal_iterator<const char*, std::__cxx11::basic_string<char> > >&)>, std::allocator<std::pair<std::__cxx11::basic_regex<char>, bool (cmapfile::*)(const std::__cxx11::match_results<__gnu_cxx::__normal_iterator<const char*, std::__cxx11::basic_string<char> > >&)> > >}’
regex_dispatcher_m.hh:47:9: note: candidate: regex_dispatcher::member_table<cmapfile>::member_table(const regex_dispatcher::member_table<cmapfile>&)
class member_table
^~~~~~~~~~~~
regex_dispatcher_m.hh:47:9: note: no known conversion for argument 1 from ‘<brace-enclosed initializer list>’ to ‘const regex_dispatcher::member_table<cmapfile>&’
regex_dispatcher_m.hh:47:9: note: candidate: regex_dispatcher::member_table<cmapfile>::member_table(regex_dispatcher::member_table<cmapfile>&&)
regex_dispatcher_m.hh:47:9: note: no known conversion for argument 1 from ‘<brace-enclosed initializer list>’ to ‘regex_dispatcher::member_table<cmapfile>&&’
trueroad commented
レポートありがとうございます。
私の手元の環境 (Cygwin 64 bit) も g++ 7.4.0 なのですが、
特にエラーは発生せず再現できない状況です。
どのような環境でお使いでしょうか。
h20y6m commented
ありがとうございます。
環境は WSL 上の Ubuntu 18.04.4 LTS です。
Cygwin 試してみます。
trueroad commented
本件とは関係ないかもしれませんが clang++ ではコンパイルできなかったため、修正したものを
332c8f0
に push しました。
Ubuntu 18.04.4 LTS の g++ 7.4.0 でコンパイルできるか試してみていただけますでしょうか。
h20y6m commented
ありがとうございます。
experiment-fix-clang++ ブランチで Ubuntu 18.04.4 LTS の g++ 7.4.0 でコンパイルできました。
trueroad commented
ご確認いただきありがとうございます。
また、Cygwin 64 bit の g++ 7.4.0 および clang++ 8.0.1 で、以前と同じ出力が得られることを確認しましたので、 master ブランチへマージしました。