Jakiś czas temu opisywałem typowy błąd kompilacji w C++. Dzisiaj się męczę z dość poważną (np. mentorującą w Summer of Code) biblioteką… Która nijak nie chce współpracować. Pierwsza próba skompilowania przykładu z dokumentacji skończyła się ponad 700KB komunikatem błędu, z którego wklejam przykładową linijkę:

CGAL::Apollonius_graph_2, CGAL::Integral_domain_without_division_tag, CGAL::Simple_cartesian, CGAL::Integral_domain_without_division_tag, CGAL::Simple_cartesian >, CGAL::Integral_domain_without_division_tag, CGAL::Cartesian_converter, CGAL::Simple_cartesian, CGAL::NT_converter >, CGAL::Cartesian_converter, CGAL::Simple_cartesian >, CGAL::To_interval > >, CGAL::Triangulation_data_structure_2, CGAL::Integral_domain_without_division_tag, CGAL::Simple_cartesian, CGAL::Integral_domain_without_division_tag, CGAL::Simple_cartesian >, CGAL::Integral_domain_without_division_tag, CGAL::Cartesian_converter, CGAL::Simple_cartesian, CGAL::NT_converter >, CGAL::Cartesian_converter, CGAL::Simple_cartesian >, CGAL::To_interval > >, false, CGAL::Triangulation_ds_vertex_base_2 >, CGAL::Triangulation_face_base_2, CGAL::Integral_domain_without_division_tag, CGAL::Simple_cartesian, CGAL::Integral_domain_without_division_tag, CGAL::Simple_cartesian >, CGAL::Integral_domain_without_division_tag, CGAL::Cartesian_converter, CGAL::Simple_cartesian, CGAL::NT_converter >, CGAL::Cartesian_converter, CGAL::Simple_cartesian >, CGAL::To_interval > >, CGAL::Triangulation_ds_face_base_2 > >, CGAL::Boolean_tag >::expand_conflict_region(CGAL::internal::CC_iterator, CGAL::Integral_domain_without_division_tag, CGAL::Simple_cartesian, CGAL::Integral_domain_without_division_tag, CGAL::Simple_cartesian >, CGAL::Integral_domain_without_division_tag, CGAL::Cartesian_converter, CGAL::Simple_cartesian, CGAL::NT_converter >, CGAL::Cartesian_converter, CGAL::Simple_cartesian >, CGAL::To_interval > >, CGAL::Triangulation_ds_face_base_2, CGAL::Integral_domain_without_division_tag, CGAL::Simple_cartesian, CGAL::Integral_domain_without_division_tag, CGAL::Simple_cartesian >, CGAL::Integral_domain_without_division_tag, CGAL::Cartesian_converter, CGAL::Simple_cartesian, CGAL::NT_converter >, CGAL::Cartesian_converter, CGAL::Simple_cartesian >, CGAL::To_interval > >, false, CGAL::Triangulation_ds_vertex_base_2 >, CGAL::Triangulation_face_base_2, CGAL::Integral_domain_without_division_tag, CGAL::Simple_cartesian, CGAL::Integral_domain_without_division_tag, CGAL::Simple_cartesian >, CGAL::Integral_domain_without_division_tag, CGAL::Cartesian_converter, CGAL::Simple_cartesian, CGAL::NT_converter >, CGAL::Cartesian_converter, CGAL::Simple_cartesian >, CGAL::To_interval > >, CGAL::Triangulation_ds_face_base_2 > > > >, CGAL::Default>, false> const&, CGAL::Apollonius_site_2 > const&, CGAL::Edge_list, CGAL::Integral_domain_without_division_tag, CGAL::Simple_cartesian, CGAL::Integral_domain_without_division_tag, CGAL::Simple_cartesian >, CGAL::Integral_domain_without_division_tag, CGAL::Cartesian_converter, CGAL::Simple_cartesian, CGAL::NT_converter >, CGAL::Cartesian_converter, CGAL::Simple_cartesian >, CGAL::To_interval > >, CGAL::Triangulation_ds_face_base_2, CGAL::Integral_domain_without_division_tag, CGAL::Simple_cartesian, CGAL::Integral_domain_without_division_tag, CGAL::Simple_cartesian >, CGAL::Integral_domain_without_division_tag, CGAL::Cartesian_converter, CGAL::Simple_cartesian, CGAL::NT_converter >, CGAL::Cartesian_converter, CGAL::Simple_cartesian >, CGAL::To_interval > >, false, CGAL::Triangulation_ds_vertex_base_2 >, CGAL::Triangulation_face_base_2, CGAL::Integral_domain_without_division_tag, CGAL::Simple_cartesian, CGAL::Integral_domain_without_division_tag, CGAL::Simple_cartesian >, CGAL::Integral_domain_without_division_tag, CGAL::Cartesian_converter, CGAL::Simple_cartesian, CGAL::NT_converter >, CGAL::Cartesian_converter, CGAL::Simple_cartesian >, CGAL::To_interval > >, CGAL::Triangulation_ds_face_base_2 > > > >, CGAL::Default>, false>, int>, CGAL::Boolean_tag >&, std::map, CGAL::Integral_domain_without_division_tag, CGAL::Simple_cartesian, CGAL::Integral_domain_without_division_tag, CGAL::Simple_cartesian >, CGAL::Integral_domain_without_division_tag, CGAL::Cartesian_converter, CGAL::Simple_cartesian, CGAL::NT_converter >, CGAL::Cartesian_converter, CGAL::Simple_cartesian >, CGAL::To_interval > >, CGAL::Triangulation_ds_face_base_2, CGAL::Integral_domain_without_division_tag, CGAL::Simple_cartesian, CGAL::Integral_domain_without_division_tag, CGAL::Simple_cartesian >, CGAL::Integral_domain_without_division_tag, CGAL::Cartesian_converter, CGAL::Simple_cartesian, CGAL::NT_converter >, CGAL::Cartesian_converter, CGAL::Simple_cartesian >, CGAL::To_interval > >, false, CGAL::Triangulation_ds_vertex_base_2 >, CGAL::Triangulation_face_base_2, CGAL::Integral_domain_without_division_tag, CGAL::Simple_cartesian, CGAL::Integral_domain_without_division_tag, CGAL::Simple_cartesian >, CGAL::Integral_domain_without_division_tag, CGAL::Cartesian_converter, CGAL::Simple_cartesian, CGAL::NT_converter >, CGAL::Cartesian_converter, CGAL::Simple_cartesian >, CGAL::To_interval > >, CGAL::Triangulation_ds_face_base_2 > > > >, CGAL::Default>, false>, bool, std::less, CGAL::Integral_domain_without_division_tag, CGAL::Simple_cartesian, CGAL::Integral_domain_without_division_tag, CGAL::Simple_cartesian >, CGAL::Integral_domain_without_division_tag, CGAL::Cartesian_converter, CGAL::Simple_cartesian, CGAL::NT_converter >, CGAL::Cartesian_converter, CGAL::Simple_cartesian >, CGAL::To_interval > >, CGAL::Triangulation_ds_face_base_2, CGAL::Integral_domain_without_division_tag, CGAL::Simple_cartesian, CGAL::Integral_domain_without_division_tag, CGAL::Simple_cartesian >, CGAL::Integral_domain_without_division_tag, CGAL::Cartesian_converter, CGAL::Simple_cartesian, CGAL::NT_converter >, CGAL::Cartesian_converter, CGAL::Simple_cartesian >, CGAL::To_interval > >, false, CGAL::Triangulation_ds_vertex_base_2 >, CGAL::Triangulation_face_base_2, CGAL::Integral_domain_without_division_tag, CGAL::Simple_cartesian, CGAL::Integral_domain_without_division_tag, CGAL::Simple_cartesian >, CGAL::Integral_domain_without_division_tag, CGAL::Cartesian_converter, CGAL::Simple_cartesian, CGAL::NT_converter >, CGAL::Cartesian_converter, CGAL::Simple_cartesian >, CGAL::To_interval > >, CGAL::Triangulation_ds_face_base_2 > > > >, CGAL::Default>, false> >, std::allocator, CGAL::Integral_domain_without_division_tag, CGAL::Simple_cartesian, CGAL::Integral_domain_without_division_tag, CGAL::Simple_cartesian >, CGAL::Integral_domain_without_division_tag, CGAL::Cartesian_converter, CGAL::Simple_cartesian, CGAL::NT_converter >, CGAL::Cartesian_converter, CGAL::Simple_cartesian >, CGAL::To_interval > >, CGAL::Triangulation_ds_face_base_2, CGAL::Integral_domain_without_division_tag, CGAL::Simple_cartesian, CGAL::Integral_domain_without_division_tag, CGAL::Simple_cartesian >, CGAL::Integral_domain_without_division_tag, CGAL::Cartesian_converter, CGAL::Simple_cartesian, CGAL::NT_converter >, CGAL::Cartesian_converter, CGAL::Simple_cartesian >, CGAL::To_interval > >, false, CGAL::Triangulation_ds_vertex_base_2 >, CGAL::Triangulation_face_base_2, CGAL::Integral_domain_without_division_tag, CGAL::Simple_cartesian, CGAL::Integral_domain_without_division_tag, CGAL::Simple_cartesian >, CGAL::Integral_domain_without_division_tag, CGAL::Cartesian_converter, CGAL::Simple_cartesian, CGAL::NT_converter >, CGAL::Cartesian_converter, CGAL::Simple_cartesian >, CGAL::To_interval > >, CGAL::Triangulation_ds_face_base_2 > > > >, CGAL::Default>, false> const, bool> > >&, std::map, CGAL::Integral_domain_without_division_tag, CGAL::Simple_cartesian, CGAL::Integral_domain_without_division_tag, CGAL::Simple_cartesian >, CGAL::Integral_domain_without_division_tag, CGAL::Cartesian_converter, CGAL::Simple_cartesian, CGAL::NT_converter >, CGAL::Cartesian_converter, CGAL::Simple_cartesian >, CGAL::To_interval > >, false, CGAL::Triangulation_ds_vertex_base_2, CGAL::Integral_domain_without_division_tag, CGAL::Simple_cartesian, CGAL::Integral_domain_without_division_tag, CGAL::Simple_cartesian >, CGAL::Integral_domain_without_division_tag, CGAL::Cartesian_converter, CGAL::Simple_cartesian, CGAL::NT_converter >, CGAL::Cartesian_converter, CGAL::Simple_cartesian >, CGAL::To_interval > >, false, CGAL::Triangulation_ds_vertex_base_2 >, CGAL::Triangulation_face_base_2, CGAL::Integral_domain_without_division_tag, CGAL::Simple_cartesian, CGAL::Integral_domain_without_division_tag, CGAL::Simple_cartesian >, CGAL::Integral_domain_without_division_tag, CGAL::Cartesian_converter, CGAL::Simple_cartesian, CGAL::NT_converter >, CGAL::Cartesian_converter, CGAL::Simple_cartesian >, CGAL::To_interval > >, CGAL::Triangulation_ds_face_base_2 > > > >, CGAL::Default>, false>, bool, std::less, CGAL::Integral_domain_without_division_tag, CGAL::Simple_cartesian, CGAL::Integral_domain_without_division_tag, CGAL::Simple_cartesian >, CGAL::Integral_domain_without_division_tag, CGAL::Cartesian_converter, CGAL::Simple_cartesian, CGAL::NT_converter >, CGAL::Cartesian_converter, CGAL::Simple_cartesian >, CGAL::To_interval > >, false, CGAL::Triangulation_ds_vertex_base_2, CGAL::Integral_domain_without_division_tag, CGAL::Simple_cartesian, CGAL::Integral_domain_without_division_tag, CGAL::Simple_cartesian >, CGAL::Integral_domain_without_division_tag, CGAL::Cartesian_converter, CGAL::Simple_cartesian, CGAL::NT_converter >, CGAL::Cartesian_converter, CGAL::Simple_cartesian >, CGAL::To_interval > >, false, CGAL::Triangulation_ds_vertex_base_2 >, CGAL::Triangulation_face_base_2, CGAL::Integral_domain_without_division_tag, CGAL::Simple_cartesian, CGAL::Integral_domain_without_division_tag, CGAL::Simple_cartesian >, CGAL::Integral_domain_without_division_tag, CGAL::Cartesian_converter, CGAL::Simple_cartesian, CGAL::NT_converter >, CGAL::Cartesian_converter, CGAL::Simple_cartesian >, CGAL::To_interval > >, CGAL::Triangulation_ds_face_base_2 > > > >, CGAL::Default>, false> >, std::allocator, CGAL::Integral_domain_without_division_tag, CGAL::Simple_cartesian, CGAL::Integral_domain_without_division_tag, CGAL::Simple_cartesian >, CGAL::Integral_domain_without_division_tag, CGAL::Cartesian_converter, CGAL::Simple_cartesian, CGAL::NT_converter >, CGAL::Cartesian_converter, CGAL::Simple_cartesian >, CGAL::To_interval > >, false, CGAL::Triangulation_ds_vertex_base_2, CGAL::Integral_domain_without_division_tag, CGAL::Simple_cartesian, CGAL::Integral_domain_without_division_tag, CGAL::Simple_cartesian >, CGAL::Integral_domain_without_division_tag, CGAL::Cartesian_converter, CGAL::Simple_cartesian, CGAL::NT_converter >, CGAL::Cartesian_converter, CGAL::Simple_cartesian >, CGAL::To_interval > >, false, CGAL::Triangulation_ds_vertex_base_2 >, CGAL::Triangulation_face_base_2, CGAL::Integral_domain_without_division_tag, CGAL::Simple_cartesian, CGAL::Integral_domain_without_division_tag, CGAL::Simple_cartesian >, CGAL::Integral_domain_without_division_tag, CGAL::Cartesian_converter, CGAL::Simple_cartesian, CGAL::NT_converter >, CGAL::Cartesian_converter, CGAL::Simple_cartesian >, CGAL::To_interval > >, CGAL::Triangulation_ds_face_base_2 > > > >, CGAL::Default>, false> const, bool> > >&, std::vector, CGAL::Integral_domain_without_division_tag, CGAL::Simple_cartesian, CGAL::Integral_domain_without_division_tag, CGAL::Simple_cartesian >, CGAL::Integral_domain_without_division_tag, CGAL::Cartesian_converter, CGAL::Simple_cartesian, CGAL::NT_converter >, CGAL::Cartesian_converter, CGAL::Simple_cartesian >, CGAL::To_interval > >, false, CGAL::Triangulation_ds_vertex_base_2, CGAL::Integral_domain_without_division_tag, CGAL::Simple_cartesian, CGAL::Integral_domain_without_division_tag, CGAL::Simple_cartesian >, CGAL::Integral_domain_without_division_tag, CGAL::Cartesian_converter, CGAL::Simple_cartesian, CGAL::NT_converter >, CGAL::Cartesian_converter, CGAL::Simple_cartesian >, CGAL::To_interval > >, false, CGAL::Triangulation_ds_vertex_base_2 >, CGAL::Triangulation_face_base_2, CGAL::Integral_domain_without_division_tag, CGAL::Simple_cartesian, CGAL::Integral_domain_without_division_tag, CGAL::Simple_cartesian >, CGAL::Integral_domain_without_division_tag, CGAL::Cartesian_converter, CGAL::Simple_cartesian, CGAL::NT_converter >, CGAL::Cartesian_converter, CGAL::Simple_cartesian >, CGAL::To_interval > >, CGAL::Triangulation_ds_face_base_2 > > > >, CGAL::Default>, false> (*) [3], std::allocator, CGAL::Integral_domain_without_division_tag, CGAL::Simple_cartesian, CGAL::Integral_domain_without_division_tag, CGAL::Simple_cartesian >, CGAL::Integral_domain_without_division_tag, CGAL::Cartesian_converter, CGAL::Simple_cartesian, CGAL::NT_converter >, CGAL::Cartesian_converter, CGAL::Simple_cartesian >, CGAL::To_interval > >, false, CGAL::Triangulation_ds_vertex_base_2, CGAL::Integral_domain_without_division_tag, CGAL::Simple_cartesian, CGAL::Integral_domain_without_division_tag, CGAL::Simple_cartesian >, CGAL::Integral_domain_without_division_tag, CGAL::Cartesian_converter, CGAL::Simple_cartesian, CGAL::NT_converter >, CGAL::Cartesian_converter, CGAL::Simple_cartesian >, CGAL::To_interval > >, false, CGAL::Triangulation_ds_vertex_base_2 >, CGAL::Triangulation_face_base_2, CGAL::Integral_domain_without_division_tag, CGAL::Simple_cartesian, CGAL::Integral_domain_without_division_tag, CGAL::Simple_cartesian >, CGAL::Integral_domain_without_division_tag, CGAL::Cartesian_converter, CGAL::Simple_cartesian, CGAL::NT_converter >, CGAL::Cartesian_converter, CGAL::Simple_cartesian >, CGAL::To_interval > >, CGAL::Triangulation_ds_face_base_2 > > > >, CGAL::Default>, false> (*) [3]> >*) in cc-hAZWN2.o

Jakoś nie miałem siły tego czytać… Może ktoś polecić jakiś prostszy soft który policzy mi graf (dualne do diagramu) Apolloniusa, albo od biedy Voronoi?

Komentarze

  • Remigiusz ‘lRem’ Modrzejewski (2011-03-22 17:44:39):

    Ha, znalazłem implementację w C. Działa od ręki :)

  • pecet (2011-03-22 21:43:35):

    Aha narzekanie na jakiś język tylko dlatego, że nie umie się w nim programować, zgadzam się większość komunikatów błędów które generuje większość kompilatorów C++ w większości dotyczących szablonów nie jest czytelna, ale c’mon to nie wina języka, że nie umiesz pisać.

  • Remigiusz ‘lRem’ Modrzejewski (2011-03-22 21:44:17):

    Ale skąd Ci przyszło do głowy, że nie umiem pisać w C++?

  • scytale (2011-03-22 22:14:21):

    Tytuł wprowadza troszkę w błąd. Sugeruje, że tekst będzie traktował o strasznym bugu w samym C++, a nie o tym że kompilator wypluwa megabajtowy błąd kompilacji :)

  • Remigiusz ‘lRem’ Modrzejewski (2011-03-22 22:36:24):

    Troszkę celowo ;) Jak zaproponujesz lepszy, to zmienię.

  • R@V (2011-03-23 12:03:07):

    Co do Voronoi, to polecam openCV. Jak się lepiej zastanowić to w sumie Emgu.com powinno całkiem nieźle współgrać z C#, lub Managed C++, sam z tego korzystam i zachowuje się nad wyraz stabilnie. Może dlatego, ze to Intela rozwiązanie jest ;]

  • Remigiusz ‘lRem’ Modrzejewski (2011-03-23 12:03:46):

    Na OpenCV mam osobną alergię…

  • Remigiusz ‘lRem’ Modrzejewski (2011-03-23 12:21:57):

    Żeby nie było - w przypadku OpenCV to jest alergia. Nie mam nic obiektywnego do zarzucenia. Ot, zetknąłem się ze zbyt wieloma przypadkami PEBKAC i jakoś zostało negatywne skojarzenie…