aboutsummaryrefslogtreecommitdiff
path: root/framework
diff options
context:
space:
mode:
authorMoritz Pflanzer <moritz.pflanzer@arm.com>2017-07-19 10:02:07 +0100
committerAnthony Barbier <anthony.barbier@arm.com>2018-09-17 14:16:42 +0100
commitfce87954ac2373e910ccb0d83a00f5958ba41e71 (patch)
treeaf43642ad65c0262d260dcc5c019e7d59539b2de /framework
parentc87fbf8106bea3e0dc7232afb91df6a9ddb25040 (diff)
downloadComputeLibrary-fce87954ac2373e910ccb0d83a00f5958ba41e71.tar.gz
COMPMID-415: Allow lvalues when using dataset::combine
Change-Id: I6d7750d6ad0c8100da48e7717304346c1aa92c80 Reviewed-on: http://mpd-gerrit.cambridge.arm.com/80996 Tested-by: Kaizen <jeremy.johnson+kaizengerrit@arm.com> Reviewed-by: Anthony Barbier <anthony.barbier@arm.com>
Diffstat (limited to 'framework')
-rw-r--r--framework/datasets/CartesianProductDataset.h18
1 files changed, 10 insertions, 8 deletions
diff --git a/framework/datasets/CartesianProductDataset.h b/framework/datasets/CartesianProductDataset.h
index e03a45da1f..f6e45ddc12 100644
--- a/framework/datasets/CartesianProductDataset.h
+++ b/framework/datasets/CartesianProductDataset.h
@@ -47,8 +47,10 @@ template <typename T, typename U>
class CartesianProductDataset : public Dataset
{
private:
- using iter1_type = typename T::iterator;
- using iter2_type = typename U::iterator;
+ using T_noref = typename std::remove_reference<T>::type;
+ using U_noref = typename std::remove_reference<U>::type;
+ using iter1_type = typename T_noref::iterator;
+ using iter2_type = typename U_noref::iterator;
public:
/** Construct dataset from the given datasets.
@@ -70,7 +72,7 @@ public:
/** Iterator for the dataset. */
struct iterator
{
- iterator(const T *dataset1, const U *dataset2)
+ iterator(const T_noref *dataset1, const U_noref *dataset2)
: _iter1{ dataset1->begin() },
_dataset2{ dataset2 },
_iter2{ dataset2->begin() }
@@ -114,11 +116,11 @@ public:
}
private:
- iter1_type _iter1;
- const U *_dataset2;
- iter2_type _iter2;
- int _first_pos{ 0 };
- int _second_pos{ 0 };
+ iter1_type _iter1;
+ const U_noref *_dataset2;
+ iter2_type _iter2;
+ int _first_pos{ 0 };
+ int _second_pos{ 0 };
};
/** Iterator pointing at the begin of the dataset.