diff options
| author | Andrey Lihatskiy <alihatskiy@productengine.com> | 2021-08-27 19:24:05 +0300 | 
|---|---|---|
| committer | Andrey Lihatskiy <alihatskiy@productengine.com> | 2021-08-27 19:24:05 +0300 | 
| commit | 203ea3a70a775a09cbbffb1740ab7c58f1780baa (patch) | |
| tree | 828b0ea2336944d7ab0cc78704ae364966ec98a1 | |
| parent | 8e3f0778863a5aa337d1148a243ea91d238a8ac5 (diff) | |
| parent | 2e790e9b7250d5f79751fa5287c1993f3fa5c776 (diff) | |
Merge branch 'c++17' into DRTVWR-522-maint
| -rw-r--r-- | autobuild.xml | 14 | ||||
| -rw-r--r-- | indra/cmake/00-Common.cmake | 5 | ||||
| -rw-r--r-- | indra/edit-me-to-trigger-new-build.txt | 2 | ||||
| -rw-r--r-- | indra/llcommon/llsd.h | 43 | ||||
| -rw-r--r-- | indra/llcommon/llstl.h | 237 | ||||
| -rw-r--r-- | indra/llcommon/tests/llleap_test.cpp | 2 | ||||
| -rw-r--r-- | indra/llinventory/llparcel.cpp | 2 | ||||
| -rw-r--r-- | indra/llmessage/llcircuit.cpp | 11 | ||||
| -rw-r--r-- | indra/llmessage/lldispatcher.cpp | 2 | ||||
| -rw-r--r-- | indra/llmessage/llmessagethrottle.cpp | 22 | ||||
| -rw-r--r-- | indra/llui/lldockablefloater.h | 4 | ||||
| -rw-r--r-- | indra/newview/llappearancemgr.h | 2 | ||||
| -rw-r--r-- | indra/newview/llexperiencelog.cpp | 4 | ||||
| -rw-r--r-- | indra/newview/llfavoritesbar.cpp | 2 | ||||
| -rw-r--r-- | indra/newview/llfloaterregioninfo.cpp | 4 | ||||
| -rw-r--r-- | indra/newview/llgesturemgr.cpp | 2 | ||||
| -rw-r--r-- | indra/newview/llmachineid.cpp | 15 | ||||
| -rw-r--r-- | indra/newview/lltoast.h | 2 | ||||
| -rw-r--r-- | indra/newview/llwatchdog.cpp | 4 | ||||
| -rw-r--r-- | indra/test/lldoubledispatch_tut.cpp | 8 | 
20 files changed, 41 insertions, 346 deletions
| diff --git a/autobuild.xml b/autobuild.xml index f3df5002fc..e79e743de3 100644 --- a/autobuild.xml +++ b/autobuild.xml @@ -308,9 +308,9 @@              <key>archive</key>              <map>                <key>hash</key> -              <string>02e6a8207dcdaf243dcb6da19b8c3534</string> +              <string>f5a81594374c8a7f0825e2177510e079</string>                <key>url</key> -              <string>http://automated-builds-secondlife-com.s3.amazonaws.com/ct2/64099/601302/colladadom-2.3.545362-darwin64-545362.tar.bz2</string> +              <string>https://automated-builds-secondlife-com.s3.amazonaws.com/ct2/82030/770590/colladadom-2.3.559710-darwin64-559710.tar.bz2</string>              </map>              <key>name</key>              <string>darwin64</string> @@ -344,9 +344,9 @@              <key>archive</key>              <map>                <key>hash</key> -              <string>8a02a10fc69c8f504dc5335644db184a</string> +              <string>5d0729b835d63b7fe69acdc6b7c60188</string>                <key>url</key> -              <string>http://automated-builds-secondlife-com.s3.amazonaws.com/ct2/64104/601313/colladadom-2.3.545362-windows-545362.tar.bz2</string> +              <string>https://automated-builds-secondlife-com.s3.amazonaws.com/ct2/82050/770692/colladadom-2.3.559710-windows-559710.tar.bz2</string>              </map>              <key>name</key>              <string>windows</string> @@ -356,16 +356,16 @@              <key>archive</key>              <map>                <key>hash</key> -              <string>742180324fca7ab92b6a61a36aab4f9d</string> +              <string>985e3081e41c76b6176d39e44d7fb4b8</string>                <key>url</key> -              <string>http://automated-builds-secondlife-com.s3.amazonaws.com/ct2/64103/601314/colladadom-2.3.545362-windows64-545362.tar.bz2</string> +              <string>https://automated-builds-secondlife-com.s3.amazonaws.com/ct2/82049/770686/colladadom-2.3.559710-windows64-559710.tar.bz2</string>              </map>              <key>name</key>              <string>windows64</string>            </map>          </map>          <key>version</key> -        <string>2.3.545362</string> +        <string>2.3.559710</string>        </map>        <key>curl</key>        <map> diff --git a/indra/cmake/00-Common.cmake b/indra/cmake/00-Common.cmake index 8aea50e02b..0da530c6a2 100644 --- a/indra/cmake/00-Common.cmake +++ b/indra/cmake/00-Common.cmake @@ -66,7 +66,8 @@ if (WINDOWS)    # CP changed to only append the flag for 32bit builds - on 64bit builds,    # locally at least, the build output is spammed with 1000s of 'D9002'    # warnings about this switch being ignored. -  set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /MP")   +  # We need std::string_view, but that's not available without /std:c++17. +  set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /MP /std:c++17")      if( ADDRESS_SIZE EQUAL 32 )      set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /p:PreferredToolArchitecture=x64")      endif() @@ -175,7 +176,7 @@ if (DARWIN)    # Until we decide to set -std=c++14 in viewer-build-variables/variables, set    # it locally here: we want to at least prevent inadvertently reintroducing    # viewer code that would fail with C++14. -  set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${DARWIN_extra_cstar_flags} -std=c++14") +  set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${DARWIN_extra_cstar_flags} -std=c++17")    set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS}  ${DARWIN_extra_cstar_flags}")    # NOTE: it's critical that the optimization flag is put in front.    # NOTE: it's critical to have both CXX_FLAGS and C_FLAGS covered. diff --git a/indra/edit-me-to-trigger-new-build.txt b/indra/edit-me-to-trigger-new-build.txt index 5366987cff..ade83202cf 100644 --- a/indra/edit-me-to-trigger-new-build.txt +++ b/indra/edit-me-to-trigger-new-build.txt @@ -1,3 +1,3 @@  euclid 5/29/2020  euclid 7/23/2020 -euclid 4/29/2021
\ No newline at end of file +euclid 4/29/2021 diff --git a/indra/llcommon/llsd.h b/indra/llcommon/llsd.h index 5b6d5545af..6638b25feb 100644 --- a/indra/llcommon/llsd.h +++ b/indra/llcommon/llsd.h @@ -413,49 +413,6 @@ public:  	static std::string		typeString(Type type);		// Return human-readable type as a string  }; -struct llsd_select_bool : public std::unary_function<LLSD, LLSD::Boolean> -{ -	LLSD::Boolean operator()(const LLSD& sd) const -	{ -		return sd.asBoolean(); -	} -}; -struct llsd_select_integer : public std::unary_function<LLSD, LLSD::Integer> -{ -	LLSD::Integer operator()(const LLSD& sd) const -	{ -		return sd.asInteger(); -	} -}; -struct llsd_select_real : public std::unary_function<LLSD, LLSD::Real> -{ -	LLSD::Real operator()(const LLSD& sd) const -	{ -		return sd.asReal(); -	} -}; -struct llsd_select_float : public std::unary_function<LLSD, F32> -{ -	F32 operator()(const LLSD& sd) const -	{ -		return (F32)sd.asReal(); -	} -}; -struct llsd_select_uuid : public std::unary_function<LLSD, LLSD::UUID> -{ -	LLSD::UUID operator()(const LLSD& sd) const -	{ -		return sd.asUUID(); -	} -}; -struct llsd_select_string : public std::unary_function<LLSD, LLSD::String> -{ -	LLSD::String operator()(const LLSD& sd) const -	{ -		return sd.asString(); -	} -}; -  LL_COMMON_API std::ostream& operator<<(std::ostream& s, const LLSD& llsd);  namespace llsd diff --git a/indra/llcommon/llstl.h b/indra/llcommon/llstl.h index a90c2c7e08..d28260b9f8 100644 --- a/indra/llcommon/llstl.h +++ b/indra/llcommon/llstl.h @@ -40,30 +40,6 @@  // <ND> For strcmp  #include <string.h>  #endif -// Use to compare the first element only of a pair -// e.g. typedef std::set<std::pair<int, Data*>, compare_pair<int, Data*> > some_pair_set_t;  -template <typename T1, typename T2> -struct compare_pair_first -{ -	bool operator()(const std::pair<T1, T2>& a, const std::pair<T1, T2>& b) const -	{ -		return a.first < b.first; -	} -}; - -template <typename T1, typename T2> -struct compare_pair_greater -{ -	bool operator()(const std::pair<T1, T2>& a, const std::pair<T1, T2>& b) const -	{ -		if (!(a.first < b.first)) -			return true; -		else if (!(b.first < a.first)) -			return false; -		else -			return !(a.second < b.second); -	} -};  // Use to compare the contents of two pointers (e.g. std::string*)  template <typename T> @@ -123,58 +99,6 @@ struct DeletePairedPointerArray  }; -// Alternate version of the above so that has a more cumbersome -// syntax, but it can be used with compositional functors. -// NOTE: The functor retuns a bool because msdev bombs during the -// composition if you return void. Once we upgrade to a newer -// compiler, the second unary_function template parameter can be set -// to void. -// -// Here's a snippet showing how you use this object: -// -// typedef std::map<int, widget*> map_type; -// map_type widget_map; -// ... // add elements -// // delete them all -// for_each(widget_map.begin(), -//          widget_map.end(), -//          llcompose1(DeletePointerFunctor<widget>(), -//                     llselect2nd<map_type::value_type>())); - -template<typename T> -struct DeletePointerFunctor : public std::unary_function<T*, bool> -{ -	bool operator()(T* ptr) const -	{ -		delete ptr; -		return true; -	} -}; - -// See notes about DeleteArray for why you should consider avoiding this. -template<typename T> -struct DeleteArrayFunctor : public std::unary_function<T*, bool> -{ -	bool operator()(T* ptr) const -	{ -		delete[] ptr; -		return true; -	} -}; - -// CopyNewPointer is a simple helper which accepts a pointer, and -// returns a new pointer built with the copy constructor. Example: -// -//  transform(in.begin(), in.end(), out.end(), CopyNewPointer()); - -struct CopyNewPointer -{ -	template<typename T> T* operator()(const T* ptr) const -	{ -		return new T(*ptr); -	} -}; -  template<typename T, typename ALLOC>  void delete_and_clear(std::list<T*, ALLOC>& list)  { @@ -363,161 +287,6 @@ OutputIter ll_transform_n(  } - -/* - * - * Copyright (c) 1994 - * Hewlett-Packard Company - * - * Permission to use, copy, modify, distribute and sell this software - * and its documentation for any purpose is hereby granted without fee, - * provided that the above copyright notice appear in all copies and - * that both that copyright notice and this permission notice appear - * in supporting documentation.  Hewlett-Packard Company makes no - * representations about the suitability of this software for any - * purpose.  It is provided "as is" without express or implied warranty. - * - * - * Copyright (c) 1996-1998 - * Silicon Graphics Computer Systems, Inc. - * - * Permission to use, copy, modify, distribute and sell this software - * and its documentation for any purpose is hereby granted without fee, - * provided that the above copyright notice appear in all copies and - * that both that copyright notice and this permission notice appear - * in supporting documentation.  Silicon Graphics makes no - * representations about the suitability of this software for any - * purpose.  It is provided "as is" without express or implied warranty. - */ - - -// helper to deal with the fact that MSDev does not package -// select... with the stl. Look up usage on the sgi website. - -template <class _Pair> -struct _LLSelect1st : public std::unary_function<_Pair, typename _Pair::first_type> { -  const typename _Pair::first_type& operator()(const _Pair& __x) const { -    return __x.first; -  } -}; - -template <class _Pair> -struct _LLSelect2nd : public std::unary_function<_Pair, typename _Pair::second_type> -{ -  const typename _Pair::second_type& operator()(const _Pair& __x) const { -    return __x.second; -  } -}; - -template <class _Pair> struct llselect1st : public _LLSelect1st<_Pair> {}; -template <class _Pair> struct llselect2nd : public _LLSelect2nd<_Pair> {}; - -// helper to deal with the fact that MSDev does not package -// compose... with the stl. Look up usage on the sgi website. - -template <class _Operation1, class _Operation2> -class ll_unary_compose : -	public std::unary_function<typename _Operation2::argument_type, -							   typename _Operation1::result_type> -{ -protected: -  _Operation1 __op1; -  _Operation2 __op2; -public: -  ll_unary_compose(const _Operation1& __x, const _Operation2& __y) -    : __op1(__x), __op2(__y) {} -  typename _Operation1::result_type -  operator()(const typename _Operation2::argument_type& __x) const { -    return __op1(__op2(__x)); -  } -}; - -template <class _Operation1, class _Operation2> -inline ll_unary_compose<_Operation1,_Operation2> -llcompose1(const _Operation1& __op1, const _Operation2& __op2) -{ -  return ll_unary_compose<_Operation1,_Operation2>(__op1, __op2); -} - -template <class _Operation1, class _Operation2, class _Operation3> -class ll_binary_compose -  : public std::unary_function<typename _Operation2::argument_type, -							   typename _Operation1::result_type> { -protected: -  _Operation1 _M_op1; -  _Operation2 _M_op2; -  _Operation3 _M_op3; -public: -  ll_binary_compose(const _Operation1& __x, const _Operation2& __y, -					const _Operation3& __z) -    : _M_op1(__x), _M_op2(__y), _M_op3(__z) { } -  typename _Operation1::result_type -  operator()(const typename _Operation2::argument_type& __x) const { -    return _M_op1(_M_op2(__x), _M_op3(__x)); -  } -}; - -template <class _Operation1, class _Operation2, class _Operation3> -inline ll_binary_compose<_Operation1, _Operation2, _Operation3> -llcompose2(const _Operation1& __op1, const _Operation2& __op2, -         const _Operation3& __op3) -{ -  return ll_binary_compose<_Operation1,_Operation2,_Operation3> -    (__op1, __op2, __op3); -} - -// helpers to deal with the fact that MSDev does not package -// bind... with the stl. Again, this is from sgi. -template <class _Operation> -class llbinder1st : -	public std::unary_function<typename _Operation::second_argument_type, -							   typename _Operation::result_type> { -protected: -  _Operation op; -  typename _Operation::first_argument_type value; -public: -  llbinder1st(const _Operation& __x, -			  const typename _Operation::first_argument_type& __y) -      : op(__x), value(__y) {} -	typename _Operation::result_type -	operator()(const typename _Operation::second_argument_type& __x) const { -		return op(value, __x); -	} -}; - -template <class _Operation, class _Tp> -inline llbinder1st<_Operation> -llbind1st(const _Operation& __oper, const _Tp& __x) -{ -  typedef typename _Operation::first_argument_type _Arg1_type; -  return llbinder1st<_Operation>(__oper, _Arg1_type(__x)); -} - -template <class _Operation> -class llbinder2nd -	: public std::unary_function<typename _Operation::first_argument_type, -								 typename _Operation::result_type> { -protected: -	_Operation op; -	typename _Operation::second_argument_type value; -public: -	llbinder2nd(const _Operation& __x, -				const typename _Operation::second_argument_type& __y) -		: op(__x), value(__y) {} -	typename _Operation::result_type -	operator()(const typename _Operation::first_argument_type& __x) const { -		return op(__x, value); -	} -}; - -template <class _Operation, class _Tp> -inline llbinder2nd<_Operation> -llbind2nd(const _Operation& __oper, const _Tp& __x) -{ -  typedef typename _Operation::second_argument_type _Arg2_type; -  return llbinder2nd<_Operation>(__oper, _Arg2_type(__x)); -} -  /**   * Compare std::type_info* pointers a la std::less. We break this out as a   * separate function for use in two different std::less specializations. @@ -548,8 +317,7 @@ bool before(const std::type_info* lhs, const std::type_info* rhs)  namespace std  {  	template <> -	struct less<const std::type_info*>: -		public std::binary_function<const std::type_info*, const std::type_info*, bool> +	struct less<const std::type_info*>  	{  		bool operator()(const std::type_info* lhs, const std::type_info* rhs) const  		{ @@ -558,8 +326,7 @@ namespace std  	};  	template <> -	struct less<std::type_info*>: -		public std::binary_function<std::type_info*, std::type_info*, bool> +	struct less<std::type_info*>  	{  		bool operator()(std::type_info* lhs, std::type_info* rhs) const  		{ diff --git a/indra/llcommon/tests/llleap_test.cpp b/indra/llcommon/tests/llleap_test.cpp index 9d71e327d8..fd96aa01d5 100644 --- a/indra/llcommon/tests/llleap_test.cpp +++ b/indra/llcommon/tests/llleap_test.cpp @@ -530,7 +530,7 @@ namespace tut          result.ensure();      } -    struct TestLargeMessage: public std::binary_function<size_t, size_t, bool> +    struct TestLargeMessage      {          TestLargeMessage(const std::string& PYTHON_, const std::string& reader_module_,                           const std::string& test_name_): diff --git a/indra/llinventory/llparcel.cpp b/indra/llinventory/llparcel.cpp index e2469f3c7e..2f577bfb07 100644 --- a/indra/llinventory/llparcel.cpp +++ b/indra/llinventory/llparcel.cpp @@ -1268,5 +1268,5 @@ U32 LLParcel::countExperienceKeyType( U32 type )  	return std::count_if(  		boost::begin(mExperienceKeys | boost::adaptors::map_values),   		boost::end(mExperienceKeys | boost::adaptors::map_values),  -		std::bind2nd(std::equal_to<U32>(), type)); +		[type](U32 key){ return key == type; });  } diff --git a/indra/llmessage/llcircuit.cpp b/indra/llmessage/llcircuit.cpp index 8baa2e328b..a39989515e 100644 --- a/indra/llmessage/llcircuit.cpp +++ b/indra/llmessage/llcircuit.cpp @@ -436,12 +436,11 @@ LLCircuit::LLCircuit(const F32Seconds circuit_heartbeat_interval, const F32Secon  LLCircuit::~LLCircuit()  { -	// delete pointers in the map. -	std::for_each(mCircuitData.begin(), -				  mCircuitData.end(), -				  llcompose1( -					  DeletePointerFunctor<LLCircuitData>(), -					  llselect2nd<circuit_data_map::value_type>())); +    // delete pointers in the map. +    for (auto circ_pair : mCircuitData) +    { +        delete circ_pair.second; +    }  }  LLCircuitData *LLCircuit::addCircuitData(const LLHost &host, TPACKETID in_id) diff --git a/indra/llmessage/lldispatcher.cpp b/indra/llmessage/lldispatcher.cpp index 717ef10f70..8dfd924f31 100644 --- a/indra/llmessage/lldispatcher.cpp +++ b/indra/llmessage/lldispatcher.cpp @@ -62,7 +62,7 @@ void LLDispatcher::copyAllHandlerNames(keys_t& names) const  		mHandlers.begin(),  		mHandlers.end(),  		std::back_insert_iterator<keys_t>(names), -		llselect1st<dispatch_map_t::value_type>()); +		[](const dispatch_map_t::value_type& pair){ return pair.first; });  }  bool LLDispatcher::dispatch( diff --git a/indra/llmessage/llmessagethrottle.cpp b/indra/llmessage/llmessagethrottle.cpp index 579d6d7187..c5ae8b4547 100644 --- a/indra/llmessage/llmessagethrottle.cpp +++ b/indra/llmessage/llmessagethrottle.cpp @@ -32,18 +32,8 @@  #include "llframetimer.h"  // This is used for the stl search_n function. -#if _MSC_VER >= 1500 // VC9 has a bug in search_n -struct eq_message_throttle_entry : public std::binary_function< LLMessageThrottleEntry, LLMessageThrottleEntry, bool > -{ -	bool operator()(const LLMessageThrottleEntry& a, const LLMessageThrottleEntry& b) const -	{ -		return a.getHash() == b.getHash(); -	} -}; -#else  bool eq_message_throttle_entry(LLMessageThrottleEntry a, LLMessageThrottleEntry b)   		{ return a.getHash() == b.getHash(); } -#endif  const U64 SEC_TO_USEC = 1000000; @@ -118,14 +108,8 @@ BOOL LLMessageThrottle::addViewerAlert(const LLUUID& to, const std::string& mesg  	LLMessageThrottleEntry entry(hash, LLFrameTimer::getTotalTime());  	// Check if this message is already in the list. -#if _MSC_VER >= 1500 // VC9 has a bug in search_n -	// SJB: This *should* work but has not been tested yet *TODO: Test! -	message_list_iterator_t found = std::find_if(message_list->begin(), message_list->end(), -												 std::bind2nd(eq_message_throttle_entry(), entry)); -#else   	message_list_iterator_t found = std::search_n(message_list->begin(), message_list->end(),   												  1, entry, eq_message_throttle_entry); -#endif  	if (found == message_list->end())  	{  		// This message was not found.  Add it to the list. @@ -152,14 +136,8 @@ BOOL LLMessageThrottle::addAgentAlert(const LLUUID& agent, const LLUUID& task, c  	LLMessageThrottleEntry entry(hash, LLFrameTimer::getTotalTime());  	// Check if this message is already in the list. -#if _MSC_VER >= 1500 // VC9 has a bug in search_n -	// SJB: This *should* work but has not been tested yet *TODO: Test! -	message_list_iterator_t found = std::find_if(message_list->begin(), message_list->end(), -												 std::bind2nd(eq_message_throttle_entry(), entry)); -#else  	message_list_iterator_t found = std::search_n(message_list->begin(), message_list->end(),  												  1, entry, eq_message_throttle_entry); -#endif  	if (found == message_list->end())  	{ diff --git a/indra/llui/lldockablefloater.h b/indra/llui/lldockablefloater.h index 89c9852f4a..1110342f08 100644 --- a/indra/llui/lldockablefloater.h +++ b/indra/llui/lldockablefloater.h @@ -108,7 +108,7 @@ public:  	 *  	 * By default returns false.  	 */ -	virtual bool overlapsScreenChannel() { return mOverlapsScreenChannel && getVisible() && isDocked(); } +	virtual bool overlapsScreenChannel() const { return mOverlapsScreenChannel && getVisible() && isDocked(); }  	virtual void setOverlapsScreenChannel(bool overlaps) { mOverlapsScreenChannel = overlaps; }  	bool getUniqueDocking() { return mUniqueDocking;	} @@ -131,7 +131,7 @@ protected:  	boost::function<BOOL ()> mIsDockedStateForcedCallback;  private: -	std::auto_ptr<LLDockControl> mDockControl; +	std::unique_ptr<LLDockControl> mDockControl;  	LLUIImagePtr mDockTongue;  	static LLHandle<LLFloater> sInstanceHandle;  	/** diff --git a/indra/newview/llappearancemgr.h b/indra/newview/llappearancemgr.h index 8a55a848db..a5265a392f 100644 --- a/indra/newview/llappearancemgr.h +++ b/indra/newview/llappearancemgr.h @@ -276,7 +276,7 @@ private:  	LLUUID mCOFImageID; -	std::auto_ptr<LLOutfitUnLockTimer> mUnlockOutfitTimer; +	std::unique_ptr<LLOutfitUnLockTimer> mUnlockOutfitTimer;  	// Set of temp attachment UUIDs that should be removed  	typedef std::set<LLUUID> doomed_temp_attachments_t; diff --git a/indra/newview/llexperiencelog.cpp b/indra/newview/llexperiencelog.cpp index ee5d561927..c441fbc09f 100644 --- a/indra/newview/llexperiencelog.cpp +++ b/indra/newview/llexperiencelog.cpp @@ -149,10 +149,6 @@ std::string LLExperienceLog::getPermissionString( const LLSD& message, const std  		{  			buf.str(entry);  		} -		else -		{ -			buf.str(); -		}  	}  	if(buf.str().empty()) diff --git a/indra/newview/llfavoritesbar.cpp b/indra/newview/llfavoritesbar.cpp index 83b5bf3f25..e33def5969 100644 --- a/indra/newview/llfavoritesbar.cpp +++ b/indra/newview/llfavoritesbar.cpp @@ -831,7 +831,7 @@ void LLFavoritesBarCtrl::updateButtons()  		{  			//find last visible child to get the rightest button offset  			child_list_const_reverse_iter_t last_visible_it = std::find_if(childs->rbegin(), childs->rend(),  -					std::mem_fun(&LLView::getVisible)); +					[](child_list_t::value_type child){ return child->getVisible(); });  			if(last_visible_it != childs->rend())  			{  				last_right_edge = (*last_visible_it)->getRect().mRight; diff --git a/indra/newview/llfloaterregioninfo.cpp b/indra/newview/llfloaterregioninfo.cpp index ec1909d02a..0e4bb2ff92 100644 --- a/indra/newview/llfloaterregioninfo.cpp +++ b/indra/newview/llfloaterregioninfo.cpp @@ -636,9 +636,7 @@ void LLFloaterRegionInfo::refreshFromRegion(LLViewerRegion* region)  	std::for_each(  		mInfoPanels.begin(),  		mInfoPanels.end(), -		llbind2nd( -			std::mem_fun(&LLPanelRegionInfo::refreshFromRegion), -			region)); +		[region](info_panels_t::value_type panel){ panel->refreshFromRegion(region); });      mEnvironmentPanel->refreshFromRegion(region);  } diff --git a/indra/newview/llgesturemgr.cpp b/indra/newview/llgesturemgr.cpp index 950a6cfaef..eb0e77311b 100644 --- a/indra/newview/llgesturemgr.cpp +++ b/indra/newview/llgesturemgr.cpp @@ -752,7 +752,7 @@ S32 LLGestureMgr::getPlayingCount() const  } -struct IsGesturePlaying : public std::unary_function<LLMultiGesture*, bool> +struct IsGesturePlaying  {  	bool operator()(const LLMultiGesture* gesture) const  	{ diff --git a/indra/newview/llmachineid.cpp b/indra/newview/llmachineid.cpp index 57a6ecb604..1810105b42 100644 --- a/indra/newview/llmachineid.cpp +++ b/indra/newview/llmachineid.cpp @@ -30,7 +30,6 @@  #if	LL_WINDOWS  #define _WIN32_DCOM  #include <iostream> -using namespace std;  #include <comdef.h>  #include <Wbemidl.h>  #endif @@ -47,7 +46,7 @@ public:      {          mHR = CoInitializeEx(0, COINIT_MULTITHREADED);          if (FAILED(mHR)) -            LL_DEBUGS("AppInit") << "Failed to initialize COM library. Error code = 0x" << hex << mHR << LL_ENDL; +            LL_DEBUGS("AppInit") << "Failed to initialize COM library. Error code = 0x" << std::hex << mHR << LL_ENDL;      }      ~LLComInitialize() @@ -105,7 +104,7 @@ S32 LLMachineID::init()          if (FAILED(hres))          { -            LL_WARNS("AppInit") << "Failed to initialize security. Error code = 0x"  << hex << hres << LL_ENDL; +            LL_WARNS("AppInit") << "Failed to initialize security. Error code = 0x"  << std::hex << hres << LL_ENDL;              return 1;                    // Program has failed.          } @@ -122,7 +121,7 @@ S32 LLMachineID::init()          if (FAILED(hres))          { -            LL_WARNS("AppInit") << "Failed to create IWbemLocator object." << " Err code = 0x" << hex << hres << LL_ENDL; +            LL_WARNS("AppInit") << "Failed to create IWbemLocator object." << " Err code = 0x" << std::hex << hres << LL_ENDL;              return 1;                 // Program has failed.          } @@ -147,7 +146,7 @@ S32 LLMachineID::init()          if (FAILED(hres))          { -            LL_WARNS("AppInit") << "Could not connect. Error code = 0x"  << hex << hres << LL_ENDL; +            LL_WARNS("AppInit") << "Could not connect. Error code = 0x"  << std::hex << hres << LL_ENDL;              pLoc->Release();                   return 1;                // Program has failed.          } @@ -171,7 +170,7 @@ S32 LLMachineID::init()          if (FAILED(hres))          { -            LL_WARNS("AppInit") << "Could not set proxy blanket. Error code = 0x"   << hex << hres << LL_ENDL; +            LL_WARNS("AppInit") << "Could not set proxy blanket. Error code = 0x"   << std::hex << hres << LL_ENDL;              pSvc->Release();              pLoc->Release();                   return 1;               // Program has failed. @@ -191,7 +190,7 @@ S32 LLMachineID::init()          if (FAILED(hres))          { -            LL_WARNS("AppInit") << "Query for operating system name failed." << " Error code = 0x"  << hex << hres << LL_ENDL; +            LL_WARNS("AppInit") << "Query for operating system name failed." << " Error code = 0x"  << std::hex << hres << LL_ENDL;              pSvc->Release();              pLoc->Release();              return 1;               // Program has failed. @@ -219,7 +218,7 @@ S32 LLMachineID::init()              hr = pclsObj->Get(L"SerialNumber", 0, &vtProp, 0, 0);              if (FAILED(hr))              { -                LL_WARNS() << "Failed to get SerialNumber. Error code = 0x" << hex << hres << LL_ENDL; +                LL_WARNS() << "Failed to get SerialNumber. Error code = 0x" << std::hex << hres << LL_ENDL;                  pclsObj->Release();                  pclsObj = NULL;                  continue; diff --git a/indra/newview/lltoast.h b/indra/newview/lltoast.h index 69074b1670..2b1fedf74d 100644 --- a/indra/newview/lltoast.h +++ b/indra/newview/lltoast.h @@ -222,7 +222,7 @@ private:  	LLPanel*	 mWrapperPanel;  	// timer counts a lifetime of a toast -	std::auto_ptr<LLToastLifeTimer> mTimer; +	std::unique_ptr<LLToastLifeTimer> mTimer;  	F32			mToastLifetime; // in seconds  	F32			mToastFadingTime; // in seconds diff --git a/indra/newview/llwatchdog.cpp b/indra/newview/llwatchdog.cpp index 0aa0280b25..a3036ff6d0 100644 --- a/indra/newview/llwatchdog.cpp +++ b/indra/newview/llwatchdog.cpp @@ -224,7 +224,7 @@ void LLWatchdog::run()  		LL_INFOS() << "Watchdog thread delayed: resetting entries." << LL_ENDL;  		std::for_each(mSuspects.begin(),   			mSuspects.end(),  -			std::mem_fun(&LLWatchdogEntry::reset) +			[](SuspectsRegistry::value_type suspect){ suspect->reset(); }  			);  	}  	else @@ -232,7 +232,7 @@ void LLWatchdog::run()  		SuspectsRegistry::iterator result =   			std::find_if(mSuspects.begin(),   				mSuspects.end(),  -				std::not1(std::mem_fun(&LLWatchdogEntry::isAlive)) +				[](SuspectsRegistry::value_type suspect){ return ! suspect->isAlive(); }  				);  		if(result != mSuspects.end())  		{ diff --git a/indra/test/lldoubledispatch_tut.cpp b/indra/test/lldoubledispatch_tut.cpp index ad8f6454d4..e38d0e92a3 100644 --- a/indra/test/lldoubledispatch_tut.cpp +++ b/indra/test/lldoubledispatch_tut.cpp @@ -135,10 +135,10 @@ namespace tut          // Instantiate a few GameObjects.  Make sure we refer to them          // polymorphically, and don't let them leak. -        std::auto_ptr<GameObject> home; -        std::auto_ptr<GameObject> obstacle; -        std::auto_ptr<GameObject> tug; -        std::auto_ptr<GameObject> patrol; +        std::unique_ptr<GameObject> home; +        std::unique_ptr<GameObject> obstacle; +        std::unique_ptr<GameObject> tug; +        std::unique_ptr<GameObject> patrol;          // prototype objects          Asteroid dummyAsteroid; | 
