refs #624 Use lambda init-capture.

This commit is contained in:
Mathew Sutcliffe
2016-03-20 00:41:26 +00:00
parent 3c2285e46b
commit 463a7c776a
2 changed files with 12 additions and 20 deletions

View File

@@ -202,28 +202,21 @@ namespace BlackCore
std::function<const char **()> CNetworkVatlib::toFSD(QStringList qstrList) const
{
struct Closure
QVector<QByteArray> bytesVec;
for (auto i = qstrList.cbegin(); i != qstrList.cend(); ++i)
{
QVector<QByteArray> m_bytesVec;
QVector<const char *> m_cstrVec;
Closure(QStringList qsl, const CNetworkVatlib *creator)
bytesVec.push_back(toFSD(*i));
}
return [ cstrVec = QVector<const char *>(), bytesVec = std::move(bytesVec) ]() mutable
{
Q_ASSERT(cstrVec.isEmpty());
for (auto i = bytesVec.cbegin(); i != bytesVec.cend(); ++i)
{
for (auto i = qsl.begin(); i != qsl.end(); ++i)
{
m_bytesVec.push_back(creator->toFSD(*i));
}
}
const char **operator()()
{
Q_ASSERT(m_cstrVec.isEmpty());
for (auto i = m_bytesVec.begin(); i != m_bytesVec.end(); ++i)
{
m_cstrVec.push_back(i->constData());
}
return const_cast<const char **>(m_cstrVec.constData());
cstrVec.push_back(i->constData());
}
return const_cast<const char **>(cstrVec.constData());
};
return Closure(qstrList, this);
}
QString CNetworkVatlib::fromFSD(const char *cstr) const

View File

@@ -257,8 +257,7 @@ namespace BlackMisc
void CDataCacheSerializer::deliverPromises(std::vector<std::promise<void>> i_promises)
{
auto promises = std::make_shared<decltype(i_promises)>(std::move(i_promises)); // \todo use C++14 lambda init-capture
QTimer::singleShot(0, Qt::PreciseTimer, this, [this, promises]
QTimer::singleShot(0, Qt::PreciseTimer, this, [this, promises = std::make_shared<decltype(i_promises)>(std::move(i_promises))]()
{
for (auto &promise : *promises)
{