-// Copyright (C) 2007-2016 CEA/DEN, EDF R&D, OPEN CASCADE
+// Copyright (C) 2007-2019 CEA/DEN, EDF R&D, OPEN CASCADE
//
// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
size_t myNbToFind, myNbFound, myTotalNb;
vector< const SMDS_MeshElement*>& myFoundElems;
bool & myFoundElemsOK;
+ bool myFoundElemsChecked;
TIterator( const SMESH_PredicatePtr& filter,
SMDS_ElemIteratorPtr& elems,
myNbFound( 0 ),
myTotalNb( totalNb ),
myFoundElems( foundElems ),
- myFoundElemsOK( foundElemsOK )
+ myFoundElemsOK( foundElemsOK ),
+ myFoundElemsChecked( false )
{
myFoundElemsOK = false;
next();
}
~TIterator()
{
- if ( !myFoundElemsOK )
+ if ( !myFoundElemsChecked && !myFoundElemsOK )
clearVector( myFoundElems );
}
virtual bool more()
}
if ( !myFoundElemsOK )
clearVector( myFoundElems );
+
+ myFoundElemsChecked = true; // in destructor: not to clearVector() which may already die
}
};
//================================================================================
#ifdef WITH_TBB
+#ifdef WIN32
+// See https://docs.microsoft.com/en-gb/cpp/porting/modifying-winver-and-win32-winnt?view=vs-2019
+// Windows 10 = 0x0A00
+#define WINVER 0x0A00
+#define _WIN32_WINNT 0x0A00
+
+#endif
+
#include <tbb/parallel_for.h>
#include "tbb/enumerable_thread_specific.h"