<div dir="auto">Unless you're dealing with templates or some functions that are important to let the compiler inline so that it can "see" more code, I would just put things in the .cpp file. Functions like accessors that are used frequently should definitely be made available for inlining.</div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Wed, Aug 12, 2020, 5:54 PM Paul Ramsey <<a href="mailto:pramsey@cleverelephant.ca">pramsey@cleverelephant.ca</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><br>
<br>
> On Aug 12, 2020, at 2:52 AM, Sandro Santilli <<a href="mailto:strk@kbt.io" target="_blank" rel="noreferrer">strk@kbt.io</a>> wrote:<br>
> <br>
> On Tue, Aug 11, 2020 at 03:06:00PM -0700, Paul Ramsey wrote:<br>
>> Can anyone shed some light on our inlining strategy? It seems really... odd. <br>
>> Like picked at random, in ConvexHull, the following methods are inlined if GEOS_INLINE is on (it is by default).<br>
>> <br>
>> ConvexHull::ConvexHull(const geom::Geometry* newGeometry)<br>
>> ConvexHull::~ConvexHull()<br>
>> ConvexHull::extractCoordinates(const geom::Geometry* geom)<br>
>> <br>
>> Now... none of these feel like they are particularly hot path to me. The constructor, destructor, and a private utilty method.<br>
>> I ask mostly because there's a lot of this .inl stuff scattered around and it doesn't seem particularly helpful.<br>
>> If there's some history I'd be intrigued to know.<br>
> <br>
> I can't remember why those things ended up in .inl.<br>
> I guess destructors were there to try at debugging some issues<br>
> with virtual tables not being correct when destructors were inlined<br>
> (so to turn inlining off)<br>
<br>
Going back to an old question from mloskot, would it be crazy to just put the inlined functions into the standard header, marked "inline" and use compiler flags to turn off inling if we so desire? Maybe things work better now than they did ~2007 when you laid this structure out?<br>
<br>
P.<br>
<br>
<br>
_______________________________________________<br>
geos-devel mailing list<br>
<a href="mailto:geos-devel@lists.osgeo.org" target="_blank" rel="noreferrer">geos-devel@lists.osgeo.org</a><br>
<a href="https://lists.osgeo.org/mailman/listinfo/geos-devel" rel="noreferrer noreferrer" target="_blank">https://lists.osgeo.org/mailman/listinfo/geos-devel</a></blockquote></div>