Use C++14 features to simplify our container base classes

Summary: Using C++14 function return type deduction we can simplify the CRTP in CContainerBase etc.

Reviewers: #swift_developers, rwinklmeier

Reviewed By: #swift_developers, rwinklmeier

Subscribers: jenkins

Tags: #swift_pilot_client

Differential Revision: https://dev.swift-project.org/D65
This commit is contained in:
Mathew Sutcliffe
2017-11-23 21:59:08 +00:00
parent c553d24d0e
commit 921ef30eda
5 changed files with 58 additions and 54 deletions

View File

@@ -367,8 +367,8 @@ namespace BlackMisc
};
// CContainerBase methods implemented out-of-line to avoid circular include
template <template <class> class C, class T, class CIt>
CStatusMessage CContainerBase<C, T, CIt>::convertFromJsonNoThrow(const QJsonObject &json, const CLogCategoryList &categories, const QString &prefix)
template <class Derived>
CStatusMessage CContainerBase<Derived>::convertFromJsonNoThrow(const QJsonObject &json, const CLogCategoryList &categories, const QString &prefix)
{
try
{
@@ -382,8 +382,8 @@ namespace BlackMisc
}
//! Call convertFromJson, catch any CJsonException that is thrown and return it as CStatusMessage.
template <template <class> class C, class T, class CIt>
CStatusMessage CContainerBase<C, T, CIt>::convertFromJsonNoThrow(const QString &jsonString, const CLogCategoryList &categories, const QString &prefix)
template <class Derived>
CStatusMessage CContainerBase<Derived>::convertFromJsonNoThrow(const QString &jsonString, const CLogCategoryList &categories, const QString &prefix)
{
try
{