From bc095dd4c56d94324f0424027a06171af35906af Mon Sep 17 00:00:00 2001 From: Andrea Iob Date: Wed, 28 Feb 2024 10:40:02 +0100 Subject: [PATCH] levelset: explicitly define the return type of lambda functions --- src/levelset/levelSetBooleanObject.tpp | 8 +++---- src/levelset/levelSetObject.cpp | 24 ++++++++++----------- src/levelset/levelSetSegmentationObject.cpp | 18 ++++++++-------- 3 files changed, 25 insertions(+), 25 deletions(-) diff --git a/src/levelset/levelSetBooleanObject.tpp b/src/levelset/levelSetBooleanObject.tpp index 87786969fa..b7bcf247aa 100644 --- a/src/levelset/levelSetBooleanObject.tpp +++ b/src/levelset/levelSetBooleanObject.tpp @@ -321,7 +321,7 @@ short LevelSetBooleanBaseObject::_evalCellSign(long id) co */ template double LevelSetBooleanBaseObject::_evalCellValue(long id, bool signedLevelSet) const { - return _evalCellFunction(id, signedLevelSet, [] (const LevelSetBooleanResult &result) + return _evalCellFunction(id, signedLevelSet, [] (const LevelSetBooleanResult &result) -> double { const LevelSetObject *resultObject = result.getObject(); if ( !resultObject ) { @@ -340,7 +340,7 @@ double LevelSetBooleanBaseObject::_evalCellValue(long id, */ template std::array LevelSetBooleanBaseObject::_evalCellGradient(long id, bool signedLevelSet) const { - return _evalCellFunction>(id, signedLevelSet, [id, signedLevelSet] (const LevelSetBooleanResult &result) + return _evalCellFunction>(id, signedLevelSet, [id, signedLevelSet] (const LevelSetBooleanResult &result) -> std::array { const LevelSetObject *resultObject = result.getObject(); if ( !resultObject ) { @@ -365,7 +365,7 @@ std::array LevelSetBooleanBaseObject::_evalCellG */ template double LevelSetBooleanBaseObject::_evalValue(const std::array &point, bool signedLevelSet) const { - return _evalFunction(point, signedLevelSet, [] (const LevelSetBooleanResult &result) + return _evalFunction(point, signedLevelSet, [] (const LevelSetBooleanResult &result) -> double { const SourceLevelSetObject *resultObject = result.getObject(); if ( !resultObject ) { @@ -385,7 +385,7 @@ double LevelSetBooleanBaseObject::_evalValue(const std::ar */ template std::array LevelSetBooleanBaseObject::_evalGradient(const std::array &point, bool signedLevelSet) const { - return _evalFunction>(point, signedLevelSet, [&point, signedLevelSet] (const LevelSetBooleanResult &result) + return _evalFunction>(point, signedLevelSet, [&point, signedLevelSet] (const LevelSetBooleanResult &result) -> std::array { const LevelSetObject *resultObject = result.getObject(); if ( !resultObject ) { diff --git a/src/levelset/levelSetObject.cpp b/src/levelset/levelSetObject.cpp index 0bd511d2fd..7caefb4368 100644 --- a/src/levelset/levelSetObject.cpp +++ b/src/levelset/levelSetObject.cpp @@ -1481,7 +1481,7 @@ LevelSetIntersectionStatus LevelSetObject::_intersectSurface(long id, double dis short LevelSetObject::evalCellSign(long id) const { // Define sign evaluators - auto evaluator = [this] (long id) + auto evaluator = [this] (long id) -> short { // Try fetching the sign from sign propagation CellCacheCollection::ValueCache *propagatedSignCache = getCellCache(m_cellPropagatedSignCacheId); @@ -1511,7 +1511,7 @@ short LevelSetObject::evalCellSign(long id) const { return _evalCellSign(id); }; - auto fallback = [this] (long id) + auto fallback = [this] (long id) -> short { // Try fetching the sign from sign propagation CellCacheCollection::ValueCache *propagatedSignCache = getCellCache(m_cellPropagatedSignCacheId); @@ -1544,12 +1544,12 @@ double LevelSetObject::evalCellValue(long id, bool signedLevelSet) const { // Evaluate signed value // // The value stored in the cache is unsigned. - auto evaluator = [this] (long id) + auto evaluator = [this] (long id) -> double { return _evalCellValue(id, false); }; - auto fallback = [] (long id) + auto fallback = [] (long id) -> double { BITPIT_UNUSED(id); @@ -1577,12 +1577,12 @@ std::array LevelSetObject::evalCellGradient(long id, bool signedLevelS // Evaluate signed gradient // // The gradient stored in the cache is unsigned. - auto evaluator = [this] (long id) + auto evaluator = [this] (long id) -> std::array { return _evalCellGradient(id, false); }; - auto fallback = [] (long id) + auto fallback = [] (long id) -> const std::array & { BITPIT_UNUSED(id); @@ -2098,24 +2098,24 @@ void LevelSetObject::flushVTKOutputData(std::fstream &stream, VTKFormat format, case LevelSetField::VALUE: { - auto evaluator = [this] (long id) { return evalCellValue(id, true); }; - auto fallback = [] (long id) { BITPIT_UNUSED(id); return levelSetDefaults::VALUE; }; + auto evaluator = [this] (long id) -> double { return evalCellValue(id, true); }; + auto fallback = [] (long id) -> double { BITPIT_UNUSED(id); return levelSetDefaults::VALUE; }; flushVTKOutputData(stream, format, field, evaluator, fallback); break; } case LevelSetField::SIGN: { - auto evaluator = [this] (long id) { return (short) evalCellSign(id); }; - auto fallback = [] (long id) { BITPIT_UNUSED(id); return levelSetDefaults::SIGN; }; + auto evaluator = [this] (long id) -> short { return (short) evalCellSign(id); }; + auto fallback = [] (long id) -> short { BITPIT_UNUSED(id); return levelSetDefaults::SIGN; }; flushVTKOutputData(stream, format, field, evaluator, fallback); break; } case LevelSetField::GRADIENT: { - auto evaluator = [this] (long id) { return evalCellGradient(id, true); }; - auto fallback = [] (long id) { BITPIT_UNUSED(id); return levelSetDefaults::GRADIENT; }; + auto evaluator = [this] (long id) -> std::array { return evalCellGradient(id, true); }; + auto fallback = [] (long id) -> const std::array & { BITPIT_UNUSED(id); return levelSetDefaults::GRADIENT; }; flushVTKOutputData>(stream, format, field, evaluator, fallback); break; } diff --git a/src/levelset/levelSetSegmentationObject.cpp b/src/levelset/levelSetSegmentationObject.cpp index b6abf08fc7..33582b39d7 100644 --- a/src/levelset/levelSetSegmentationObject.cpp +++ b/src/levelset/levelSetSegmentationObject.cpp @@ -1829,12 +1829,12 @@ std::array LevelSetSegmentationBaseObject::evalCellNormal(long id, boo // Evaluate signed normal // // The normal stored in the cache is unsigned. - auto evaluator = [this] (long id) + auto evaluator = [this] (long id) -> std::array { return _evalCellNormal(id, false); }; - auto fallback = [] (long id) + auto fallback = [] (long id) -> const std::array & { BITPIT_UNUSED(id); @@ -2145,24 +2145,24 @@ void LevelSetSegmentationBaseObject::flushVTKOutputData(std::fstream &stream, VT case LevelSetField::SUPPORT: { - auto evaluator = [this] (long id) { return evalCellSupport(id); }; - auto fallback = [] (long id) { BITPIT_UNUSED(id); return levelSetDefaults::SUPPORT; }; + auto evaluator = [this] (long id) -> long { return evalCellSupport(id); }; + auto fallback = [] (long id) -> long { BITPIT_UNUSED(id); return levelSetDefaults::SUPPORT; }; flushVTKOutputData(stream, format, field, evaluator, fallback); break; } case LevelSetField::PART: { - auto evaluator = [this] (long id) { return evalCellPart(id); }; - auto fallback = [] (long id) { BITPIT_UNUSED(id); return levelSetDefaults::PART; }; + auto evaluator = [this] (long id) -> int { return evalCellPart(id); }; + auto fallback = [] (long id) -> int { BITPIT_UNUSED(id); return levelSetDefaults::PART; }; flushVTKOutputData(stream, format, field, evaluator, fallback); break; } case LevelSetField::NORMAL: { - auto evaluator = [this] (long id) { return evalCellNormal(id, true); }; - auto fallback = [] (long id) { BITPIT_UNUSED(id); return levelSetDefaults::NORMAL; }; + auto evaluator = [this] (long id) -> std::array { return evalCellNormal(id, true); }; + auto fallback = [] (long id) -> const std::array & { BITPIT_UNUSED(id); return levelSetDefaults::NORMAL; }; flushVTKOutputData(stream, format, field, evaluator, fallback); break; } @@ -3276,7 +3276,7 @@ int LevelSetBooleanObject::_evalCellPart(long id */ std::array LevelSetBooleanObject::_evalCellNormal(long id, bool signedLevelSet) const { - return _evalCellFunction>(id, signedLevelSet, [&id, signedLevelSet] (const LevelSetBooleanResult &result) + return _evalCellFunction>(id, signedLevelSet, [&id, signedLevelSet] (const LevelSetBooleanResult &result) -> std::array { const LevelSetSegmentationBaseObject *resultObject = result.getObject(); if ( !resultObject ) {