Fixed warning and error found by Clang svn-trunk.

This commit is contained in:
Mathew Sutcliffe
2017-02-21 02:06:19 +00:00
parent db692461ef
commit 3439edf946
2 changed files with 10 additions and 2 deletions

View File

@@ -326,7 +326,7 @@ namespace BlackMisc
void CDataCacheSerializer::deliverPromises(std::vector<std::promise<void>> i_promises)
{
QTimer::singleShot(0, Qt::PreciseTimer, this, [this, promises = std::make_shared<decltype(i_promises)>(std::move(i_promises))]()
QTimer::singleShot(0, Qt::PreciseTimer, this, [promises = std::make_shared<decltype(i_promises)>(std::move(i_promises))]()
{
for (auto &promise : *promises)
{

View File

@@ -57,6 +57,14 @@ namespace BlackMisc
}
static constexpr bool value = impl();
};
//! \private Dummy that derives from T if T is a class.
template <typename T, bool = std::is_class<T>::value>
struct SyntheticDerived : public T {};
//! \cond
template <typename T>
struct SyntheticDerived<T, false> {};
//! \endcond
}
/*!
@@ -213,7 +221,7 @@ namespace BlackMisc
struct TIsQPrivateSignal : public std::false_type {};
//! \cond
template <typename T>
struct TIsQPrivateSignal<T, void_t<typename T::QPrivateSignal>> : public std::is_same<T, typename T::QPrivateSignal> {};
struct TIsQPrivateSignal<T, void_t<typename Private::SyntheticDerived<T>::QPrivateSignal>> : public std::is_same<T, typename Private::SyntheticDerived<T>::QPrivateSignal> {};
//! \endcond
}