summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichael Stahl <mstahl@redhat.com>2012-08-01 12:52:09 +0200
committerMichael Stahl <mstahl@redhat.com>2012-08-01 12:54:06 +0200
commit3e3acee762fac71f7356ed1305a64e0278278081 (patch)
treed7478f0c065a577b85b6a2be64cb749b49501754
parent77165efb4eb4d9735f8dd4f8c99044a36d60a611 (diff)
sorted_vector: turn Find parameter into template
Enforces same type parameters for sorted_vector and Find, and makes it easier to use. Change-Id: Ide456a48f015cb0a9dea7a0bf2bcf2ccad527fd1
-rw-r--r--o3tl/inc/o3tl/sorted_vector.hxx11
-rw-r--r--o3tl/qa/test-sorted_vector.cxx6
-rw-r--r--sw/inc/docary.hxx2
-rw-r--r--sw/inc/ndhints.hxx4
-rw-r--r--sw/source/filter/html/htmlfly.hxx3
-rw-r--r--sw/source/ui/utlui/content.cxx3
6 files changed, 13 insertions, 16 deletions
diff --git a/o3tl/inc/o3tl/sorted_vector.hxx b/o3tl/inc/o3tl/sorted_vector.hxx
index 4d442dd590ae..6f444d90be14 100644
--- a/o3tl/inc/o3tl/sorted_vector.hxx
+++ b/o3tl/inc/o3tl/sorted_vector.hxx
@@ -27,12 +27,13 @@ struct find_unique;
@tpl Compare comparison method
@tpl Find look up index of a Value in the array
*/
-template<class Value, class Compare = std::less<Value>,
- class Find = find_unique<Value, Compare> >
+template<typename Value, typename Compare = std::less<Value>,
+ template<typename, typename> class Find = find_unique >
class sorted_vector
: private std::vector<Value>
{
private:
+ typedef Find<Value, Compare> Find_t;
typedef typename std::vector<Value> base_t;
typedef typename std::vector<Value>::iterator iterator;
public:
@@ -47,7 +48,7 @@ public:
std::pair<const_iterator,bool> insert( const Value& x )
{
- std::pair<const_iterator, bool> const ret(Find()(begin(), end(), x));
+ std::pair<const_iterator, bool> const ret(Find_t()(begin(), end(), x));
if (!ret.second)
{
const_iterator const it = base_t::insert(
@@ -59,7 +60,7 @@ public:
size_type erase( const Value& x )
{
- std::pair<const_iterator, bool> const ret(Find()(begin(), end(), x));
+ std::pair<const_iterator, bool> const ret(Find_t()(begin(), end(), x));
if (ret.second)
{
base_t::erase(begin_nonconst() + (ret.first - begin()));
@@ -129,7 +130,7 @@ public:
*/
const_iterator find( const Value& x ) const
{
- std::pair<const_iterator, bool> const ret(Find()(begin(), end(), x));
+ std::pair<const_iterator, bool> const ret(Find_t()(begin(), end(), x));
return (ret.second) ? ret.first : end();
}
diff --git a/o3tl/qa/test-sorted_vector.cxx b/o3tl/qa/test-sorted_vector.cxx
index 1b321c91a2a4..8e9e719f2c1d 100644
--- a/o3tl/qa/test-sorted_vector.cxx
+++ b/o3tl/qa/test-sorted_vector.cxx
@@ -136,8 +136,7 @@ public:
void testBasics_FindPtr()
{
o3tl::sorted_vector<SwContent*, o3tl::less_ptr_to<SwContent>,
- o3tl::find_partialorder_ptrequals<SwContent*,
- o3tl::less_ptr_to<SwContent> > > aVec;
+ o3tl::find_partialorder_ptrequals> aVec;
SwContent *p1 = new SwContent(1);
SwContent *p2 = new SwContent(2);
SwContent *p2_2 = new SwContent(2);
@@ -195,8 +194,7 @@ public:
void testErase_FindPtr()
{
o3tl::sorted_vector<SwContent*, o3tl::less_ptr_to<SwContent>,
- o3tl::find_partialorder_ptrequals<SwContent*,
- o3tl::less_ptr_to<SwContent> > > aVec;
+ o3tl::find_partialorder_ptrequals> aVec;
SwContent *p1 = new SwContent(1);
SwContent *p1_2 = new SwContent(1);
SwContent *p1_3 = new SwContent(1);
diff --git a/sw/inc/docary.hxx b/sw/inc/docary.hxx
index 7c9f92884694..4f9b9af9d2ce 100644
--- a/sw/inc/docary.hxx
+++ b/sw/inc/docary.hxx
@@ -145,7 +145,7 @@ struct CompareSwRedlineTbl
};
class _SwRedlineTbl
: public o3tl::sorted_vector<SwRedline*, CompareSwRedlineTbl,
- o3tl::find_partialorder_ptrequals<SwRedline*, CompareSwRedlineTbl> >
+ o3tl::find_partialorder_ptrequals>
{
public:
~_SwRedlineTbl();
diff --git a/sw/inc/ndhints.hxx b/sw/inc/ndhints.hxx
index 154c95763740..773bb1f4bfaa 100644
--- a/sw/inc/ndhints.hxx
+++ b/sw/inc/ndhints.hxx
@@ -76,14 +76,14 @@ struct CompareSwpHtStart
bool operator()(SwTxtAttr* const lhs, SwTxtAttr* const rhs) const;
};
class SwpHtStart : public o3tl::sorted_vector<SwTxtAttr*, CompareSwpHtStart,
- o3tl::find_partialorder_ptrequals<SwTxtAttr*, CompareSwpHtStart> > {};
+ o3tl::find_partialorder_ptrequals> {};
struct CompareSwpHtEnd
{
bool operator()(SwTxtAttr* const lhs, SwTxtAttr* const rhs) const;
};
class SwpHtEnd : public o3tl::sorted_vector<SwTxtAttr*, CompareSwpHtEnd,
- o3tl::find_partialorder_ptrequals<SwTxtAttr*, CompareSwpHtEnd> > {};
+ o3tl::find_partialorder_ptrequals> {};
// Class SwpHintsArr
diff --git a/sw/source/filter/html/htmlfly.hxx b/sw/source/filter/html/htmlfly.hxx
index 19b14e09153a..8184d5cd140b 100644
--- a/sw/source/filter/html/htmlfly.hxx
+++ b/sw/source/filter/html/htmlfly.hxx
@@ -130,8 +130,7 @@ public:
class SwHTMLPosFlyFrms
: public o3tl::sorted_vector<SwHTMLPosFlyFrm*,
o3tl::less_ptr_to<SwHTMLPosFlyFrm>,
- o3tl::find_partialorder_ptrequals<SwHTMLPosFlyFrm*,
- o3tl::less_ptr_to<SwHTMLPosFlyFrm> > >
+ o3tl::find_partialorder_ptrequals>
{};
#endif
diff --git a/sw/source/ui/utlui/content.cxx b/sw/source/ui/utlui/content.cxx
index f150239206db..9330f46519ba 100644
--- a/sw/source/ui/utlui/content.cxx
+++ b/sw/source/ui/utlui/content.cxx
@@ -106,8 +106,7 @@ using namespace ::com::sun::star::container;
class SwContentArr
: public o3tl::sorted_vector<SwContent*, o3tl::less_ptr_to<SwContent>,
- o3tl::find_partialorder_ptrequals<SwContent*,
- o3tl::less_ptr_to<SwContent> > >
+ o3tl::find_partialorder_ptrequals>
{
public:
~SwContentArr() { DeleteAndDestroyAll(); }