From 91e40e12dbb94283cd804405411effc7f9903ed4 Mon Sep 17 00:00:00 2001 From: Marco Bubke Date: Tue, 28 Nov 2017 17:58:24 +0100 Subject: Utils: Converter to raw pointer and references Sometimes you want to get raw pointer container from smart pointer container and reference container from value container. Change-Id: Ia018d572ac0a7bf742f3937dc38ee30670a3ca73 Reviewed-by: Eike Ziller --- tests/auto/algorithm/tst_algorithm.cpp | 53 ++++++++++++++++++++++++++++++++++ 1 file changed, 53 insertions(+) (limited to 'tests/auto/algorithm/tst_algorithm.cpp') diff --git a/tests/auto/algorithm/tst_algorithm.cpp b/tests/auto/algorithm/tst_algorithm.cpp index e55aceac41..70088d8a20 100644 --- a/tests/auto/algorithm/tst_algorithm.cpp +++ b/tests/auto/algorithm/tst_algorithm.cpp @@ -46,6 +46,8 @@ private slots: void contains(); void findOr(); void findOrDefault(); + void toRawPointer(); + void toReferences(); }; @@ -462,6 +464,57 @@ void tst_Algorithm::findOrDefault() QCOMPARE(Utils::findOrDefault(v4, &Struct::isEven), std::shared_ptr()); } +void tst_Algorithm::toRawPointer() +{ + const std::vector> v; + + // same result container + const std::vector x1 = Utils::toRawPointer(v); + // different result container + const std::vector x2 = Utils::toRawPointer(v); + const QVector x3 = Utils::toRawPointer(v); + // different fully specified result container + const std::vector x4 = Utils::toRawPointer>(v); + const QVector x5 = Utils::toRawPointer>(v); +} + +void tst_Algorithm::toReferences() +{ + // toReference + { + // std::vector -> std::vector + std::vector v; + const std::vector> x = Utils::toReferences(v); + } + { + // QList -> std::vector + QList v; + const std::vector> x = Utils::toReferences(v); + } + { + // std::vector -> QList + std::vector v; + const QList> x = Utils::toReferences(v); + } + // toConstReference + { + // std::vector -> std::vector + const std::vector v; + const std::vector> x = Utils::toConstReferences(v); + } + { + // QList -> std::vector + const QList v; + const std::vector> x + = Utils::toConstReferences(v); + } + { + // std::vector -> QList + const std::vector v; + const QList> x = Utils::toConstReferences(v); + } +} + QTEST_MAIN(tst_Algorithm) #include "tst_algorithm.moc" -- cgit v1.2.1