diff --git a/src/blackcore/networkvatlib.cpp b/src/blackcore/networkvatlib.cpp index 1f3476a69..00e89003d 100644 --- a/src/blackcore/networkvatlib.cpp +++ b/src/blackcore/networkvatlib.cpp @@ -202,28 +202,21 @@ namespace BlackCore std::function CNetworkVatlib::toFSD(QStringList qstrList) const { - struct Closure + QVector bytesVec; + for (auto i = qstrList.cbegin(); i != qstrList.cend(); ++i) { - QVector m_bytesVec; - QVector m_cstrVec; - Closure(QStringList qsl, const CNetworkVatlib *creator) + bytesVec.push_back(toFSD(*i)); + } + + return [ cstrVec = QVector(), 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(m_cstrVec.constData()); + cstrVec.push_back(i->constData()); } + return const_cast(cstrVec.constData()); }; - return Closure(qstrList, this); } QString CNetworkVatlib::fromFSD(const char *cstr) const diff --git a/src/blackmisc/datacache.cpp b/src/blackmisc/datacache.cpp index 0e7fecd98..fe73d8211 100644 --- a/src/blackmisc/datacache.cpp +++ b/src/blackmisc/datacache.cpp @@ -257,8 +257,7 @@ namespace BlackMisc void CDataCacheSerializer::deliverPromises(std::vector> i_promises) { - auto promises = std::make_shared(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(std::move(i_promises))]() { for (auto &promise : *promises) {