Jakiś czas temu opisywałem [typowy błąd kompilacji w C++](http://blog.lrem.net/2009/04/29/c-monitory-panoramiczne-rowniez-dla- programistow/). 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…