Today I officially start working in earnest with your great contribution, again thank you very much for this @skramm! ๐
But I've hit the first hurdle. Due to my other dependencies I need to work with C++17. However your library seems to have incompatibilities in this regard.
I am working with Visual Studio 2019 (Windows 10 x64).
When I try to build your "short preview" with the C++17 configuration I get the following errors.
>main.cpp
1>P:\Mis-Proyectos\Profesional\Ciberlandia\Geometria\inc\homog2d\homog2d.hpp(407,1): warning C4267: 'argument': conversion from 'size_t' to 'int', possible loss of data
1>P:\Mis-Proyectos\Profesional\Ciberlandia\Geometria\inc\homog2d\homog2d.hpp(417,1): warning C4267: 'argument': conversion from 'size_t' to 'int', possible loss of data
1>P:\Mis-Proyectos\Profesional\Ciberlandia\Geometria\inc\homog2d\homog2d.hpp(4574,1): error C2244: 'h2d::Circle_<FPT1>::intersects': unable to match function definition to an existing declaration
1>P:\Mis-Proyectos\Profesional\Ciberlandia\Geometria\inc\homog2d\homog2d.hpp(4573): message : see declaration of 'h2d::Circle_<FPT1>::intersects'
1>P:\Mis-Proyectos\Profesional\Ciberlandia\Geometria\inc\homog2d\homog2d.hpp(4574,1): message : definition
1>P:\Mis-Proyectos\Profesional\Ciberlandia\Geometria\inc\homog2d\homog2d.hpp(4574,1): message : 'h2d::detail::Intersect<h2d::detail::Inters_2,FPT> h2d::Circle_<FPT1>::intersects(const h2d::Circle_<FPT2> &) const'
1>P:\Mis-Proyectos\Profesional\Ciberlandia\Geometria\inc\homog2d\homog2d.hpp(4574,1): message : existing declarations
1>P:\Mis-Proyectos\Profesional\Ciberlandia\Geometria\inc\homog2d\homog2d.hpp(4574,1): message : 'h2d::detail::IntersectM<FPT> h2d::Circle_<FPT1>::intersects(const h2d::base::PolylineBase<PLT2,FPT2> &) const'
1>P:\Mis-Proyectos\Profesional\Ciberlandia\Geometria\inc\homog2d\homog2d.hpp(4574,1): message : 'h2d::detail::IntersectM<FPT> h2d::Circle_<FPT1>::intersects(const h2d::FRect_<FPT2> &) const'
1>P:\Mis-Proyectos\Profesional\Ciberlandia\Geometria\inc\homog2d\homog2d.hpp(4574,1): message : 'h2d::detail::Intersect<h2d::detail::Inters_2,FPT> h2d::Circle_<FPT1>::intersects(const h2d::Circle_<FPT2> &) const'
1>P:\Mis-Proyectos\Profesional\Ciberlandia\Geometria\inc\homog2d\homog2d.hpp(4574,1): message : 'h2d::detail::IntersectM<FPT> h2d::Circle_<FPT1>::intersects(const h2d::Segment_<FPT2> &) const'
1>P:\Mis-Proyectos\Profesional\Ciberlandia\Geometria\inc\homog2d\homog2d.hpp(4574,1): message : 'h2d::detail::Intersect<h2d::detail::Inters_2,FPT> h2d::Circle_<FPT1>::intersects(const h2d::base::LPBase<h2d::type::IsLine,FPT2> &) const'
1>P:\Mis-Proyectos\Profesional\Ciberlandia\Geometria\inc\homog2d\homog2d.hpp(6436,1): error C2244: 'h2d::Segment_<FPT>::intersects': unable to match function definition to an existing declaration
1>P:\Mis-Proyectos\Profesional\Ciberlandia\Geometria\inc\homog2d\homog2d.hpp(6435): message : see declaration of 'h2d::Segment_<FPT>::intersects'
1>P:\Mis-Proyectos\Profesional\Ciberlandia\Geometria\inc\homog2d\homog2d.hpp(6436,1): message : definition
1>P:\Mis-Proyectos\Profesional\Ciberlandia\Geometria\inc\homog2d\homog2d.hpp(6436,1): message : 'h2d::detail::Intersect<h2d::detail::Inters_1,FPT> h2d::Segment_<FPT>::intersects(const h2d::Segment_<FPT2> &) const'
1>P:\Mis-Proyectos\Profesional\Ciberlandia\Geometria\inc\homog2d\homog2d.hpp(6436,1): message : existing declarations
1>P:\Mis-Proyectos\Profesional\Ciberlandia\Geometria\inc\homog2d\homog2d.hpp(6436,1): message : 'h2d::detail::IntersectM<FPT> h2d::Segment_<FPT>::intersects(const h2d::base::PolylineBase<PLT2,FPT2> &) const'
1>P:\Mis-Proyectos\Profesional\Ciberlandia\Geometria\inc\homog2d\homog2d.hpp(6436,1): message : 'h2d::detail::IntersectM<FPT> h2d::Segment_<FPT>::intersects(const h2d::FRect_<FPT2> &) const'
1>P:\Mis-Proyectos\Profesional\Ciberlandia\Geometria\inc\homog2d\homog2d.hpp(6436,1): message : 'h2d::detail::IntersectM<FPT> h2d::Segment_<FPT>::intersects(const h2d::Circle_<FPT2> &) const'
1>P:\Mis-Proyectos\Profesional\Ciberlandia\Geometria\inc\homog2d\homog2d.hpp(6436,1): message : 'h2d::detail::Intersect<h2d::detail::Inters_1,FPT> h2d::Segment_<FPT>::intersects(const h2d::base::LPBase<h2d::type::IsLine,FPT2> &) const'
1>P:\Mis-Proyectos\Profesional\Ciberlandia\Geometria\inc\homog2d\homog2d.hpp(6436,1): message : 'h2d::detail::Intersect<h2d::detail::Inters_1,FPT> h2d::Segment_<FPT>::intersects(const h2d::Segment_<FPT2> &) const'
1>P:\Mis-Proyectos\Profesional\Ciberlandia\Geometria\inc\homog2d\homog2d.hpp(6475,1): error C2244: 'h2d::Segment_<FPT>::intersects': unable to match function definition to an existing declaration
1>P:\Mis-Proyectos\Profesional\Ciberlandia\Geometria\inc\homog2d\homog2d.hpp(6474): message : see declaration of 'h2d::Segment_<FPT>::intersects'
1>P:\Mis-Proyectos\Profesional\Ciberlandia\Geometria\inc\homog2d\homog2d.hpp(6475,1): message : definition
1>P:\Mis-Proyectos\Profesional\Ciberlandia\Geometria\inc\homog2d\homog2d.hpp(6475,1): message : 'h2d::detail::Intersect<h2d::detail::Inters_1,FPT> h2d::Segment_<FPT>::intersects(const h2d::base::LPBase<h2d::type::IsLine,FPT2> &) const'
1>P:\Mis-Proyectos\Profesional\Ciberlandia\Geometria\inc\homog2d\homog2d.hpp(6475,1): message : existing declarations
1>P:\Mis-Proyectos\Profesional\Ciberlandia\Geometria\inc\homog2d\homog2d.hpp(6475,1): message : 'h2d::detail::IntersectM<FPT> h2d::Segment_<FPT>::intersects(const h2d::base::PolylineBase<PLT2,FPT2> &) const'
1>P:\Mis-Proyectos\Profesional\Ciberlandia\Geometria\inc\homog2d\homog2d.hpp(6475,1): message : 'h2d::detail::IntersectM<FPT> h2d::Segment_<FPT>::intersects(const h2d::FRect_<FPT2> &) const'
1>P:\Mis-Proyectos\Profesional\Ciberlandia\Geometria\inc\homog2d\homog2d.hpp(6475,1): message : 'h2d::detail::IntersectM<FPT> h2d::Segment_<FPT>::intersects(const h2d::Circle_<FPT2> &) const'
1>P:\Mis-Proyectos\Profesional\Ciberlandia\Geometria\inc\homog2d\homog2d.hpp(6475,1): message : 'h2d::detail::Intersect<h2d::detail::Inters_1,FPT> h2d::Segment_<FPT>::intersects(const h2d::base::LPBase<h2d::type::IsLine,FPT2> &) const'
1>P:\Mis-Proyectos\Profesional\Ciberlandia\Geometria\inc\homog2d\homog2d.hpp(6475,1): message : 'h2d::detail::Intersect<h2d::detail::Inters_1,FPT> h2d::Segment_<FPT>::intersects(const h2d::Segment_<FPT2> &) const'
1>Done building project "geometria_msvc2019.vcxproj" -- FAILED.
With the C++14 configuration however the same code seems to go smoothly, but it is not convenient for me due to my other dependencies. Is it possible to solve it? ๐ง