martinruenz/maskfusion

toml problem

wolf943134497 opened this issue · 2 comments

/home/titan/maskfusion/GUI/MainController.cpp: In constructor ‘MainController::MainController(int, char**)’:
/home/titan/maskfusion/GUI/MainController.cpp:277:45: error: conversion from ‘toml::basic_value<toml::discard_comments, std::unordered_map, std::vector>’ to non-scalar type ‘toml::table {aka std::unordered_map<std::__cxx11::basic_string, toml::basic_value<toml::discard_comments, std::unordered_map, std::vector> >}’ requested
toml::table tomlConfig = toml::parse("config.toml");
^
/home/titan/maskfusion/GUI/MainController.cpp:278:45: error: ‘Table’ is not a member of ‘toml’
const auto tomlMaskRCNN = toml::gettoml::Table(tomlConfig.at("MaskRCNN"));
^
/home/titan/maskfusion/GUI/MainController.cpp:278:45: error: ‘Table’ is not a member of ‘toml’
/home/titan/maskfusion/GUI/MainController.cpp:278:83: error: no matching function for call to ‘get(std::unordered_map<std::__cxx11::basic_string, toml::basic_value<toml::discard_comments, std::unordered_map, std::vector> >::mapped_type&)’
const auto tomlMaskRCNN = toml::gettoml::Table(tomlConfig.at("MaskRCNN"));
^
In file included from /home/titan/maskfusion/deps/toml11/toml.hpp:39:0,
from /home/titan/maskfusion/GUI/MainController.cpp:32:
/home/titan/maskfusion/deps/toml11/toml/get.hpp:19:1: note: candidate: template<class T, class C, template<class ...> class M, template<class ...> class V> toml::detail::enable_if_t<toml::detail::is_exact_toml_type<T, toml::basic_value<C, Tb, A> >::value, T>& toml::get(toml::basic_value<C, Tb, A>&)
get(basic_value<C, M, V>& v)
^
/home/titan/maskfusion/deps/toml11/toml/get.hpp:19:1: note: template argument deduction/substitution failed:
/home/titan/maskfusion/GUI/MainController.cpp:278:83: error: template argument 1 is invalid
const auto tomlMaskRCNN = toml::gettoml::Table(tomlConfig.at("MaskRCNN"));
^
In file included from /home/titan/maskfusion/deps/toml11/toml.hpp:39:0,
from /home/titan/maskfusion/GUI/MainController.cpp:32:
/home/titan/maskfusion/deps/toml11/toml/get.hpp:27:1: note: candidate: template<class T, class C, template<class ...> class M, template<class ...> class V> toml::detail::enable_if_t<toml::detail::is_exact_toml_type<T, toml::basic_value<C, Tb, A> >::value, T>& toml::get(const toml::basic_value<C, Tb, A>&)
get(const basic_value<C, M, V>& v)
^
/home/titan/maskfusion/deps/toml11/toml/get.hpp:27:1: note: template argument deduction/substitution failed:
/home/titan/maskfusion/GUI/MainController.cpp:278:83: error: template argument 1 is invalid
const auto tomlMaskRCNN = toml::gettoml::Table(tomlConfig.at("MaskRCNN"));
^
In file included from /home/titan/maskfusion/deps/toml11/toml.hpp:39:0,
from /home/titan/maskfusion/GUI/MainController.cpp:32:
/home/titan/maskfusion/deps/toml11/toml/get.hpp:35:1: note: candidate: template<class T, class C, template<class ...> class M, template<class ...> class V> toml::detail::enable_if_t<toml::detail::is_exact_toml_type<T, toml::basic_value<C, Tb, A> >::value, T>&& toml::get(toml::basic_value<C, Tb, A>&&)
get(basic_value<C, M, V>&& v)
^
/home/titan/maskfusion/deps/toml11/toml/get.hpp:35:1: note: template argument deduction/substitution failed:
/home/titan/maskfusion/GUI/MainController.cpp:278:83: error: template argument 1 is invalid
const auto tomlMaskRCNN = toml::gettoml::Table(tomlConfig.at("MaskRCNN"));
^
In file included from /home/titan/maskfusion/deps/toml11/toml.hpp:39:0,
from /home/titan/maskfusion/GUI/MainController.cpp:32:
/home/titan/maskfusion/deps/toml11/toml/get.hpp:46:1: note: candidate: template<class T, class C, template<class ...> class M, template<class ...> class V> toml::detail::enable_if_t<std::is_same<T, toml::basic_value<C, Tb, A> >::value, T>& toml::get(toml::basic_value<C, Tb, A>&)
get(basic_value<C, M, V>& v)
^
/home/titan/maskfusion/deps/toml11/toml/get.hpp:46:1: note: template argument deduction/substitution failed:
/home/titan/maskfusion/GUI/MainController.cpp:278:83: error: template argument 1 is invalid
const auto tomlMaskRCNN = toml::gettoml::Table(tomlConfig.at("MaskRCNN"));
^
In file included from /home/titan/maskfusion/deps/toml11/toml.hpp:39:0,
from /home/titan/maskfusion/GUI/MainController.cpp:32:
/home/titan/maskfusion/deps/toml11/toml/get.hpp:54:1: note: candidate: template<class T, class C, template<class ...> class M, template<class ...> class V> toml::detail::enable_if_t<std::is_same<T, toml::basic_value<C, Tb, A> >::value, T>& toml::get(const toml::basic_value<C, Tb, A>&)
get(const basic_value<C, M, V>& v)
^
/home/titan/maskfusion/deps/toml11/toml/get.hpp:54:1: note: template argument deduction/substitution failed:
/home/titan/maskfusion/GUI/MainController.cpp:278:83: error: template argument 1 is invalid
const auto tomlMaskRCNN = toml::gettoml::Table(tomlConfig.at("MaskRCNN"));
^
In file included from /home/titan/maskfusion/deps/toml11/toml.hpp:39:0,
from /home/titan/maskfusion/GUI/MainController.cpp:32:
/home/titan/maskfusion/deps/toml11/toml/get.hpp:62:1: note: candidate: template<class T, class C, template<class ...> class M, template<class ...> class V> toml::detail::enable_if_t<std::is_same<T, toml::basic_value<C, Tb, A> >::value, T>&& toml::get(toml::basic_value<C, Tb, A>&&)
get(basic_value<C, M, V>&& v)
^
/home/titan/maskfusion/deps/toml11/toml/get.hpp:62:1: note: template argument deduction/substitution failed:
/home/titan/maskfusion/GUI/MainController.cpp:278:83: error: template argument 1 is invalid
const auto tomlMaskRCNN = toml::gettoml::Table(tomlConfig.at("MaskRCNN"));
^
In file included from /home/titan/maskfusion/deps/toml11/toml.hpp:39:0,
from /home/titan/maskfusion/GUI/MainController.cpp:32:
/home/titan/maskfusion/deps/toml11/toml/get.hpp:75:1: note: candidate: template<class T, class C, template<class ...> class M, template<class ...> class V> toml::detail::enable_if_t<toml::detail::conjunction<toml::detail::is_basic_value, toml::detail::negation<std::is_same<T, toml::basic_value<C, Tb, A> > > >::value, T> toml::get(const toml::basic_value<C, Tb, A>&)
get(const basic_value<C, M, V>& v)
^
/home/titan/maskfusion/deps/toml11/toml/get.hpp:75:1: note: template argument deduction/substitution failed:
/home/titan/maskfusion/GUI/MainController.cpp:278:83: error: template argument 1 is invalid
const auto tomlMaskRCNN = toml::gettoml::Table(tomlConfig.at("MaskRCNN"));
^
In file included from /home/titan/maskfusion/deps/toml11/toml.hpp:39:0,
from /home/titan/maskfusion/GUI/MainController.cpp:32:
/home/titan/maskfusion/deps/toml11/toml/get.hpp:91:1: note: candidate: template<class T, class C, template<class ...> class M, template<class ...> class V> toml::detail::enable_if_t<toml::detail::conjunction<std::is_integral<_Tp>, toml::detail::negation<std::is_same<T, bool> >, toml::detail::negation<toml::detail::is_exact_toml_type<T, toml::basic_value<C, Tb, A> > > >::value, T> toml::get(const toml::basic_value<C, Tb, A>&)
get(const basic_value<C, M, V>& v)
^
/home/titan/maskfusion/deps/toml11/toml/get.hpp:91:1: note: template argument deduction/substitution failed:
/home/titan/maskfusion/GUI/MainController.cpp:278:83: error: template argument 1 is invalid
const auto tomlMaskRCNN = toml::gettoml::Table(tomlConfig.at("MaskRCNN"));
^
In file included from /home/titan/maskfusion/deps/toml11/toml.hpp:39:0,
from /home/titan/maskfusion/GUI/MainController.cpp:32:
/home/titan/maskfusion/deps/toml11/toml/get.hpp:106:1: note: candidate: template<class T, class C, template<class ...> class M, template<class ...> class V> toml::detail::enable_if_t<toml::detail::conjunction<std::is_floating_point<_Tp>, toml::detail::negation<toml::detail::is_exact_toml_type<T, toml::basic_value<C, Tb, A> > > >::value, T> toml::get(const toml::basic_value<C, Tb, A>&)
get(const basic_value<C, M, V>& v)
^
/home/titan/maskfusion/deps/toml11/toml/get.hpp:106:1: note: template argument deduction/substitution failed:
/home/titan/maskfusion/GUI/MainController.cpp:278:83: error: template argument 1 is invalid
const auto tomlMaskRCNN = toml::gettoml::Table(tomlConfig.at("MaskRCNN"));
^
In file included from /home/titan/maskfusion/deps/toml11/toml.hpp:39:0,
from /home/titan/maskfusion/GUI/MainController.cpp:32:
/home/titan/maskfusion/deps/toml11/toml/get.hpp:118:1: note: candidate: template<class T, class C, template<class ...> class M, template<class ...> class V> toml::detail::enable_if_t<std::is_same<T, std::__cxx11::basic_string >::value, std::__cxx11::basic_string >& toml::get(toml::basic_value<C, Tb, A>&)
get(basic_value<C, M, V>& v)
^
/home/titan/maskfusion/deps/toml11/toml/get.hpp:118:1: note: template argument deduction/substitution failed:
/home/titan/maskfusion/GUI/MainController.cpp:278:83: error: template argument 1 is invalid
const auto tomlMaskRCNN = toml::gettoml::Table(tomlConfig.at("MaskRCNN"));
^
In file included from /home/titan/maskfusion/deps/toml11/toml.hpp:39:0,
from /home/titan/maskfusion/GUI/MainController.cpp:32:
/home/titan/maskfusion/deps/toml11/toml/get.hpp:126:1: note: candidate: template<class T, class C, template<class ...> class M, template<class ...> class V> toml::detail::enable_if_t<std::is_same<T, std::__cxx11::basic_string >::value, std::__cxx11::basic_string >& toml::get(const toml::basic_value<C, Tb, A>&)
get(const basic_value<C, M, V>& v)
^
/home/titan/maskfusion/deps/toml11/toml/get.hpp:126:1: note: template argument deduction/substitution failed:
/home/titan/maskfusion/GUI/MainController.cpp:278:83: error: template argument 1 is invalid
const auto tomlMaskRCNN = toml::gettoml::Table(tomlConfig.at("MaskRCNN"));
^
In file included from /home/titan/maskfusion/deps/toml11/toml.hpp:39:0,
from /home/titan/maskfusion/GUI/MainController.cpp:32:
/home/titan/maskfusion/deps/toml11/toml/get.hpp:134:1: note: candidate: template<class T, class C, template<class ...> class M, template<class ...> class V> toml::detail::enable_if_t<std::is_same<T, std::__cxx11::basic_string >::value, std::__cxx11::basic_string >& toml::get(toml::basic_value<C, Tb, A>&&)
get(basic_value<C, M, V>&& v)
^
/home/titan/maskfusion/deps/toml11/toml/get.hpp:134:1: note: template argument deduction/substitution failed:
/home/titan/maskfusion/GUI/MainController.cpp:278:83: error: template argument 1 is invalid
const auto tomlMaskRCNN = toml::gettoml::Table(tomlConfig.at("MaskRCNN"));
^
In file included from /home/titan/maskfusion/deps/toml11/toml.hpp:39:0,
from /home/titan/maskfusion/GUI/MainController.cpp:32:
/home/titan/maskfusion/deps/toml11/toml/get.hpp:158:1: note: candidate: template<class T, class C, template<class ...> class M, template<class ...> class V> toml::detail::enable_if_t<toml::detail::is_chrono_duration::value, T> toml::get(const toml::basic_value<C, Tb, A>&)
get(const basic_value<C, M, V>& v)
^
/home/titan/maskfusion/deps/toml11/toml/get.hpp:158:1: note: template argument deduction/substitution failed:
/home/titan/maskfusion/GUI/MainController.cpp:278:83: error: template argument 1 is invalid
const auto tomlMaskRCNN = toml::gettoml::Table(tomlConfig.at("MaskRCNN"));
^
In file included from /home/titan/maskfusion/deps/toml11/toml.hpp:39:0,
from /home/titan/maskfusion/GUI/MainController.cpp:32:
/home/titan/maskfusion/deps/toml11/toml/get.hpp:171:1: note: candidate: template<class T, class C, template<class ...> class M, template<class ...> class V> toml::detail::enable_if_t<std::is_same<std::chrono::time_point<std::chrono::_V2::system_clock, std::chrono::duration<long int, std::ratio<1l, 1000000000l> > >, T>::value, T> toml::get(const toml::basic_value<C, Tb, A>&)
get(const basic_value<C, M, V>& v)
^
/home/titan/maskfusion/deps/toml11/toml/get.hpp:171:1: note: template argument deduction/substitution failed:
/home/titan/maskfusion/GUI/MainController.cpp:278:83: error: template argument 1 is invalid
const auto tomlMaskRCNN = toml::gettoml::Table(tomlConfig.at("MaskRCNN"));
^
In file included from /home/titan/maskfusion/deps/toml11/toml.hpp:39:0,
from /home/titan/maskfusion/GUI/MainController.cpp:32:
/home/titan/maskfusion/deps/toml11/toml/get.hpp:276:1: note: candidate: template<class T, class C, template<class ...> class M, template<class ...> class V> toml::detail::enable_if_t<toml::detail::conjunction<toml::detail::is_container, toml::detail::has_resize_method, toml::detail::negation<toml::detail::is_exact_toml_type<T, toml::basic_value<C, Tb, A> > > >::value, T> toml::get(const toml::basic_value<C, Tb, A>&)
get(const basic_value<C, M, V>& v)
^
/home/titan/maskfusion/deps/toml11/toml/get.hpp:276:1: note: template argument deduction/substitution failed:
/home/titan/maskfusion/GUI/MainController.cpp:278:83: error: template argument 1 is invalid
const auto tomlMaskRCNN = toml::gettoml::Table(tomlConfig.at("MaskRCNN"));
^
In file included from /home/titan/maskfusion/deps/toml11/toml.hpp:39:0,
from /home/titan/maskfusion/GUI/MainController.cpp:32:
/home/titan/maskfusion/deps/toml11/toml/get.hpp:298:1: note: candidate: template<class T, class C, template<class ...> class M, template<class ...> class V> toml::detail::enable_if_t<toml::detail::conjunction<toml::detail::is_container, toml::detail::negation<toml::detail::has_resize_method >, toml::detail::negation<toml::detail::is_exact_toml_type<T, toml::basic_value<C, Tb, A> > > >::value, T> toml::get(const toml::basic_value<C, Tb, A>&)
get(const basic_value<C, M, V>& v)
^
/home/titan/maskfusion/deps/toml11/toml/get.hpp:298:1: note: template argument deduction/substitution failed:
/home/titan/maskfusion/GUI/MainController.cpp:278:83: error: template argument 1 is invalid
const auto tomlMaskRCNN = toml::gettoml::Table(tomlConfig.at("MaskRCNN"));
^
In file included from /home/titan/maskfusion/deps/toml11/toml.hpp:39:0,
from /home/titan/maskfusion/GUI/MainController.cpp:32:
/home/titan/maskfusion/deps/toml11/toml/get.hpp:323:1: note: candidate: template<class T, class C, template<class ...> class M, template<class ...> class V> toml::detail::enable_if_t<toml::detail::is_std_pair::value, T> toml::get(const toml::basic_value<C, Tb, A>&)
get(const basic_value<C, M, V>& v)
^
/home/titan/maskfusion/deps/toml11/toml/get.hpp:323:1: note: template argument deduction/substitution failed:
/home/titan/maskfusion/GUI/MainController.cpp:278:83: error: template argument 1 is invalid
const auto tomlMaskRCNN = toml::gettoml::Table(tomlConfig.at("MaskRCNN"));
^
In file included from /home/titan/maskfusion/deps/toml11/toml.hpp:39:0,
from /home/titan/maskfusion/GUI/MainController.cpp:32:
/home/titan/maskfusion/deps/toml11/toml/get.hpp:357:1: note: candidate: template<class T, class C, template<class ...> class M, template<class ...> class V> toml::detail::enable_if_t<toml::detail::is_std_tuple::value, T> toml::get(const toml::basic_value<C, Tb, A>&)
get(const basic_value<C, M, V>& v)
^
/home/titan/maskfusion/deps/toml11/toml/get.hpp:357:1: note: template argument deduction/substitution failed:
/home/titan/maskfusion/GUI/MainController.cpp:278:83: error: template argument 1 is invalid
const auto tomlMaskRCNN = toml::gettoml::Table(tomlConfig.at("MaskRCNN"));
^
In file included from /home/titan/maskfusion/deps/toml11/toml.hpp:39:0,
from /home/titan/maskfusion/GUI/MainController.cpp:32:
/home/titan/maskfusion/deps/toml11/toml/get.hpp:383:1: note: candidate: template<class T, class C, template<class ...> class M, template<class ...> class V> toml::detail::enable_if_t<toml::detail::conjunction<toml::detail::is_map, toml::detail::negation<toml::detail::is_exact_toml_type<T, toml::basic_value<C, Tb, A> > > >::value, T> toml::get(const toml::basic_value<C, Tb, A>&)
get(const basic_value<C, M, V>& v)
^
/home/titan/maskfusion/deps/toml11/toml/get.hpp:383:1: note: template argument deduction/substitution failed:
/home/titan/maskfusion/GUI/MainController.cpp:278:83: error: template argument 1 is invalid
const auto tomlMaskRCNN = toml::gettoml::Table(tomlConfig.at("MaskRCNN"));
^
In file included from /home/titan/maskfusion/deps/toml11/toml.hpp:39:0,
from /home/titan/maskfusion/GUI/MainController.cpp:32:
/home/titan/maskfusion/deps/toml11/toml/get.hpp:409:1: note: candidate: template<class T, class C, template<class ...> class M, template<class ...> class V> toml::detail::enable_if_t<toml::detail::conjunction<toml::detail::negation<toml::detail::is_exact_toml_type<T, toml::basic_value<C, Tb, A> > >, toml::detail::has_from_toml_method<T, C, M, V>, std::is_default_constructible<_Tp> >::value, T> toml::get(const toml::basic_value<C, Tb, A>&)
get(const basic_value<C, M, V>& v)
^
/home/titan/maskfusion/deps/toml11/toml/get.hpp:409:1: note: template argument deduction/substitution failed:
/home/titan/maskfusion/GUI/MainController.cpp:278:83: error: template argument 1 is invalid
const auto tomlMaskRCNN = toml::gettoml::Table(tomlConfig.at("MaskRCNN"));
^
In file included from /home/titan/maskfusion/deps/toml11/toml.hpp:39:0,
from /home/titan/maskfusion/GUI/MainController.cpp:32:
/home/titan/maskfusion/deps/toml11/toml/get.hpp:418:3: note: candidate: template<class T, class C, template<class ...> class M, template<class ...> class V, long unsigned int S> T toml::get(const toml::basic_value<C, Tb, A>&)
T get(const basic_value<C, M, V>& v)
^
/home/titan/maskfusion/deps/toml11/toml/get.hpp:418:3: note: template argument deduction/substitution failed:
/home/titan/maskfusion/GUI/MainController.cpp:278:83: error: template argument 1 is invalid
const auto tomlMaskRCNN = toml::gettoml::Table(tomlConfig.at("MaskRCNN"));
^
GUI/CMakeFiles/MaskFusion.dir/build.make:86: recipe for target 'GUI/CMakeFiles/MaskFusion.dir/MainController.cpp.o' failed
make[2]: *** [GUI/CMakeFiles/MaskFusion.dir/MainController.cpp.o] Error 1
CMakeFiles/Makefile2:211: recipe for target 'GUI/CMakeFiles/MaskFusion.dir/all' failed
make[1]: *** [GUI/CMakeFiles/MaskFusion.dir/all] Error 2
Makefile:83: recipe for target 'all' failed
make: *** [all] Error 2

how to use toml?

@wolf943134497

The latest version of the toml11 library is 3.0.0, but it seems that MaskFusion code relies on an older version of toml11. Specifically, v3 introduced some breaking changes compared to v2 which lead to the compilation errors you experienced.

I could solve the issue by changing the following line from

  git_clone "git clone --depth=1 https://github.com/ToruNiina/toml11.git"

to

  git_clone "git clone --depth=1 --branch v2.4.0 https://github.com/ToruNiina/toml11.git"

@margaritaG thanks for your suggestion. It works!