Before I can generate meaningful pic, I found a few function calls are not properly analyzed by “dot”. Acutally I am not sure if it’s with “dot” or “opt”.
For example the following parse() call will result in countless “bad label format” errors from “dot”.
Note: I was using version 15.x of clang and opt, while using graphviz 2.43.
Error: bad label format {std::__uniq_ptr_data<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, nlohmann::basic_json<std::map, std::vector, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, bool, long, unsigned long, double, std::allocator, nlohmann::adl_serializer, std::vector<unsigned char, std::allocator<unsigned char> > >::create<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, char const (&) [1]>(char const (&) [1])::{lambda(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >)#1}, true, false>::__uniq_ptr_impl<nlohmann::basic_json<std::map, std::vector, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, bool, long, unsigned long, double, std::allocator, nlohmann::adl_serializer, std::vector<unsigned char, std::allocator<unsigned char> > >::create<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, char const (&) [1]>(char const (&) [1])::{lambda(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >)#1} const&>(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, nlohmann::basic_json<std::map, std::vector, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, bool, long, unsigned long, double, std::allocator, nlohmann::adl_serializer, std::vector<unsigned char, std::allocator<unsigned char> > >::create<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, char const (&) [1]>(char const (&) [1])::{lambda(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >)#1} const&)}
Error: bad label format {std::__uniq_ptr_impl<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, nlohmann::basic_json<std::map, std::vector, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, bool, long, unsigned long, double, std::allocator, nlohmann::adl_serializer, std::vector<unsigned char, std::allocator<unsigned char> > >::create<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, char const (&) [1]>(char const (&) [1])::{lambda(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >)#1}>::__uniq_ptr_impl<nlohmann::basic_json<std::map, std::vector, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, bool, long, unsigned long, double, std::allocator, nlohmann::adl_serializer, std::vector<unsigned char, std::allocator<unsigned char> > >::create<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, char const (&) [1]>(char const (&) [1])::{lambda(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >)#1} const&>(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, nlohmann::basic_json<std::map, std::vector, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, bool, long, unsigned long, double, std::allocator, nlohmann::adl_serializer, std::vector<unsigned char, std::allocator<unsigned char> > >::create<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, char const (&) [1]>(char const (&) [1])::{lambda(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >)#1} const&)}