Core/CallOnExit: Rework to use template instead of std::function

This commit is contained in:
Jérôme Leclercq
2022-01-23 00:16:09 +01:00
parent 29786765c6
commit 2ebcddf9de
5 changed files with 85 additions and 100 deletions

View File

@@ -33,17 +33,16 @@ namespace Nz
{
m_currentStream = &stream;
// Force stream in text mode, reset it at the end
Nz::CallOnExit resetTextMode;
if ((stream.GetStreamOptions() & StreamOption::Text) == 0)
// force stream in text mode, reset it at the end
CallOnExit resetTextMode([&stream]
{
stream.EnableTextMode(true);
stream.EnableTextMode(false);
});
resetTextMode.Reset([&stream] ()
{
stream.EnableTextMode(false);
});
}
if ((stream.GetStreamOptions() & StreamOption::Text) == 0)
stream.EnableTextMode(true);
else
resetTextMode.Reset();
m_keepLastLine = false;
m_lineCount = 0;
@@ -489,17 +488,16 @@ namespace Nz
{
m_currentStream = &stream;
// Force stream in text mode, reset it at the end
Nz::CallOnExit resetTextMode;
if ((stream.GetStreamOptions() & StreamOption::Text) == 0)
// force stream in text mode, reset it at the end
CallOnExit resetTextMode([&stream]
{
stream.EnableTextMode(true);
stream.EnableTextMode(false);
});
resetTextMode.Reset([&stream] ()
{
stream.EnableTextMode(false);
});
}
if ((stream.GetStreamOptions() & StreamOption::Text) == 0)
stream.EnableTextMode(true);
else
resetTextMode.Reset();
m_outputStream.str({});

View File

@@ -21,17 +21,16 @@ namespace Nz
m_keepLastLine = false;
m_lineCount = 0;
// Force stream in text mode, reset it at the end
Nz::CallOnExit resetTextMode;
if ((stream.GetStreamOptions() & StreamOption::Text) == 0)
// force stream in text mode, reset it at the end
CallOnExit resetTextMode([&stream]
{
stream.EnableTextMode(true);
stream.EnableTextMode(false);
});
resetTextMode.Reset([&stream] ()
{
stream.EnableTextMode(false);
});
}
if ((stream.GetStreamOptions() & StreamOption::Text) == 0)
stream.EnableTextMode(true);
else
resetTextMode.Reset();
unsigned int failureCount = 0;
while (Advance(false))
@@ -93,17 +92,16 @@ namespace Nz
m_keepLastLine = false;
m_lineCount = 0;
// Force stream in text mode, reset it at the end
Nz::CallOnExit resetTextMode;
if ((stream.GetStreamOptions() & StreamOption::Text) == 0)
// force stream in text mode, reset it at the end
CallOnExit resetTextMode([&stream]
{
stream.EnableTextMode(true);
stream.EnableTextMode(false);
});
resetTextMode.Reset([&stream] ()
{
stream.EnableTextMode(false);
});
}
if ((stream.GetStreamOptions() & StreamOption::Text) == 0)
stream.EnableTextMode(true);
else
resetTextMode.Reset();
std::string matName, meshName;
matName = meshName = "default";
@@ -491,17 +489,16 @@ namespace Nz
{
m_currentStream = &stream;
// Force stream in text mode, reset it at the end
Nz::CallOnExit resetTextMode;
if ((stream.GetStreamOptions() & StreamOption::Text) == 0)
// force stream in text mode, reset it at the end
CallOnExit resetTextMode([&stream]
{
stream.EnableTextMode(true);
stream.EnableTextMode(false);
});
resetTextMode.Reset([&stream] ()
{
stream.EnableTextMode(false);
});
}
if ((stream.GetStreamOptions() & StreamOption::Text) == 0)
stream.EnableTextMode(true);
else
resetTextMode.Reset();
m_outputStream.str({});