From 97ede98b5df45c3ba0da5aec3cf8fbcd30f6bd44 Mon Sep 17 00:00:00 2001 From: Cedric Bail Date: Wed, 26 Feb 2014 12:12:21 -0300 Subject: [PATCH] eina_cxx: fix build with clang. --- src/lib/eina_cxx/eina_clone_allocators.hh | 2 +- src/lib/eina_cxx/eina_inarray.hh | 3 ++- src/lib/eina_cxx/eina_ptrarray.hh | 8 ++++---- src/lib/eina_cxx/eina_ptrlist.hh | 12 ++++++------ src/lib/eina_cxx/eina_thread.hh | 14 +++++++------- src/lib/eina_cxx/eina_value.hh | 5 +++++ 6 files changed, 25 insertions(+), 19 deletions(-) diff --git a/src/lib/eina_cxx/eina_clone_allocators.hh b/src/lib/eina_cxx/eina_clone_allocators.hh index 6f7aba49eb..459b6356cd 100644 --- a/src/lib/eina_cxx/eina_clone_allocators.hh +++ b/src/lib/eina_cxx/eina_clone_allocators.hh @@ -46,7 +46,7 @@ struct view_clone_allocator return const_cast(&v); } template - static void deallocate_clone(T* p) + static void deallocate_clone(T*) { } }; diff --git a/src/lib/eina_cxx/eina_inarray.hh b/src/lib/eina_cxx/eina_inarray.hh index 3619358bad..4b59be6e0d 100644 --- a/src/lib/eina_cxx/eina_inarray.hh +++ b/src/lib/eina_cxx/eina_inarray.hh @@ -375,7 +375,8 @@ public: } for(size_type i = 0;i != n;++i) new (&*first++) T(t); - assert(last - first == _array->len - index - n); + std::size_t diff = last - first; + assert(diff == _array->len - index - n); while(first != last) { new (&*first++) T(*old_first); diff --git a/src/lib/eina_cxx/eina_ptrarray.hh b/src/lib/eina_cxx/eina_ptrarray.hh index 7b0e88b6ed..85ed8b607b 100644 --- a/src/lib/eina_cxx/eina_ptrarray.hh +++ b/src/lib/eina_cxx/eina_ptrarray.hh @@ -233,10 +233,10 @@ public: } void push_back(pointer p) { - std::auto_ptr p1(p); + std::unique_ptr p1(p); push_back(p1); } - void push_back(std::auto_ptr& p) + void push_back(std::unique_ptr& p) { if(eina_array_push(this->_impl._array, p.get())) p.release(); @@ -253,10 +253,10 @@ public: } iterator insert(iterator i, pointer pv) { - std::auto_ptr p(pv); + std::unique_ptr p(pv); return insert(i, p); } - iterator insert(iterator i, std::auto_ptr& p) + iterator insert(iterator i, std::unique_ptr& p) { std::size_t j = i.native_handle() - this->_impl._array->data diff --git a/src/lib/eina_cxx/eina_ptrlist.hh b/src/lib/eina_cxx/eina_ptrlist.hh index b9132872b7..0ae0319a1f 100644 --- a/src/lib/eina_cxx/eina_ptrlist.hh +++ b/src/lib/eina_cxx/eina_ptrlist.hh @@ -225,10 +225,10 @@ public: } void push_back(pointer p) { - std::auto_ptr p1(p); + std::unique_ptr p1(p); push_back(p1); } - void push_back(std::auto_ptr& p) + void push_back(std::unique_ptr& p) { Eina_List* new_list = eina_list_append(this->_impl._list, p.get()); if(new_list) @@ -245,10 +245,10 @@ public: } void push_front(pointer p) { - std::auto_ptr p1(p); + std::unique_ptr p1(p); push_front(p1); } - void push_front(std::auto_ptr& p) + void push_front(std::unique_ptr& p) { Eina_List* new_list = eina_list_prepend(this->_impl._list, p.get()); if(new_list) @@ -273,10 +273,10 @@ public: } iterator insert(iterator i, pointer pv) { - std::auto_ptr p(pv); + std::unique_ptr p(pv); return insert(i, p); } - iterator insert(iterator i, std::auto_ptr& p) + iterator insert(iterator i, std::unique_ptr& p) { this->_impl._list = _eina_list_prepend_relative_list (this->_impl._list, p.get(), i.native_handle()); diff --git a/src/lib/eina_cxx/eina_thread.hh b/src/lib/eina_cxx/eina_thread.hh index bb630a5d27..84bd0e53e7 100644 --- a/src/lib/eina_cxx/eina_thread.hh +++ b/src/lib/eina_cxx/eina_thread.hh @@ -167,6 +167,13 @@ struct thread_id } private: Eina_Thread _raw; + + template + friend std::basic_ostream& + operator<<(std::basic_ostream& out, thread_id id) + { + return out << id._raw; + } }; inline bool operator<=(thread_id lhs, thread_id rhs) @@ -182,13 +189,6 @@ inline bool operator>=(thread_id lhs, thread_id rhs) return !(lhs < rhs); } -template -std::basic_ostream& -operator<<(std::basic_ostream& out, thread_id id) -{ - return out << id._raw; -} - namespace _detail { struct arguments diff --git a/src/lib/eina_cxx/eina_value.hh b/src/lib/eina_cxx/eina_value.hh index 378c344f91..b202f2e63e 100644 --- a/src/lib/eina_cxx/eina_value.hh +++ b/src/lib/eina_cxx/eina_value.hh @@ -232,6 +232,11 @@ struct _eina_value_traits::value>: } }; +class eina_value; + +template +T get(eina_value const& v); + class eina_value { template