<html>
<head>
<style><!--
.hmmessage P
{
margin:0px;
padding:0px
}
body.hmmessage
{
font-size: 12pt;
font-family:Calibri
}
--></style></head>
<body class='hmmessage'><div dir='ltr'>Hi,<br><br>Looking at the code of GDAL 2.0 (but also 1.x), I noticed that the OGRGeometry class (and the derived classes) do not respects the Rule of 3 : there is a destructor and no copy constructor or assignment operator. It seems to me that this may lead to memory leaks on OGRSpatialReference (for example when using std::vector<OGRPoint> and not std::vector<OGRPoint*>).<br>This is not an issue when using the C API because the clone() method is used.<br>Am I well understanding the API ? <br><br>Various solutions exists:<br>1) defines private copy constructors and assignment operators (eg. libkml does this with a macro on each class: LIBKML_DISALLOW_EVIL_CONSTRUCTORS)<br>2) implements these methods, and manage poSRS the same way that clone()  does.<br>3) do nothing (and document it somewhere)<br><br>If needed I may open an issue and/or send a patch.<br><br>Best regards,<br>Simon HEGE<br>                                       </div></body>
</html>