diff --git a/indra/llappearance/llavatarappearance.h b/indra/llappearance/llavatarappearance.h
index f95dc7c3f08de80789d0fd5a3822c442e5e8c8cf..c721c86dd8e954d71f4bb40058b7072cbaa76029 100644
--- a/indra/llappearance/llavatarappearance.h
+++ b/indra/llappearance/llavatarappearance.h
@@ -60,11 +60,10 @@ class LLAvatarAppearance : public LLCharacter
  **                                                                            **
  **                    INITIALIZATION
  **/
-private:
-	// Hide default constructor.
-	LLAvatarAppearance() {}
-
 public:
+	// Delete the default constructor. Force construction with wearable data
+	LLAvatarAppearance() = delete;
+
 	LLAvatarAppearance(LLWearableData* wearable_data);
 	virtual ~LLAvatarAppearance();
 
diff --git a/indra/llappearance/lldriverparam.h b/indra/llappearance/lldriverparam.h
index 2ee3a590a9ca301a70a2541de9a4f6d80472d69c..dcff02fc37587cfa7af039bd375d93b4978559fa 100644
--- a/indra/llappearance/lldriverparam.h
+++ b/indra/llappearance/lldriverparam.h
@@ -80,10 +80,10 @@ class LLDriverParamInfo final : public LLViewerVisualParamInfo
 LL_ALIGN_PREFIX(16)
 class LLDriverParam final : public LLViewerVisualParam
 {
-private:
-	// Hide the default constructor.  Force construction with LLAvatarAppearance.
-	LLDriverParam() {}
 public:
+	// Delete the default constructor.  Force construction with LLAvatarAppearance.
+	LLDriverParam() = delete;
+
 	LLDriverParam(LLAvatarAppearance *appearance, LLWearable* wearable = NULL);
 	~LLDriverParam() = default;
 
diff --git a/indra/llappearance/llpolyskeletaldistortion.cpp b/indra/llappearance/llpolyskeletaldistortion.cpp
index 7e9af5eb1e8c562755de62a3f1d2b9c2749fdabf..af8ea759a84da3440555f139ce7451d90ec2b6f2 100644
--- a/indra/llappearance/llpolyskeletaldistortion.cpp
+++ b/indra/llappearance/llpolyskeletaldistortion.cpp
@@ -41,10 +41,6 @@
 //-----------------------------------------------------------------------------
 // LLPolySkeletalDistortionInfo()
 //-----------------------------------------------------------------------------
-LLPolySkeletalDistortionInfo::LLPolySkeletalDistortionInfo()
-{
-}
-
 BOOL LLPolySkeletalDistortionInfo::parseXml(LLXmlTreeNode* node)
 {
         llassert( node->hasName( "param" ) && node->getChildByName( "param_skeleton" ) );
@@ -117,15 +113,6 @@ LLPolySkeletalDistortion::LLPolySkeletalDistortion(LLAvatarAppearance *avatarp)
 //-----------------------------------------------------------------------------
 // LLPolySkeletalDistortion()
 //-----------------------------------------------------------------------------
-LLPolySkeletalDistortion::LLPolySkeletalDistortion(const LLPolySkeletalDistortion &pOther)
-	: LLViewerVisualParam(pOther),
-	mDefaultVec(pOther.mDefaultVec),
-	mJointScales(pOther.mJointScales),
-	mJointOffsets(pOther.mJointOffsets),
-	mAvatar(pOther.mAvatar)
-{
-}
-
 BOOL LLPolySkeletalDistortion::setInfo(LLPolySkeletalDistortionInfo *info)
 {
     if (info->mID < 0)
diff --git a/indra/llappearance/llpolyskeletaldistortion.h b/indra/llappearance/llpolyskeletaldistortion.h
index 5c9043a22f383b1331ac83dc0c734f72b697dff9..5ecd5ac600135295effebbd87c47129bc44287c6 100644
--- a/indra/llappearance/llpolyskeletaldistortion.h
+++ b/indra/llappearance/llpolyskeletaldistortion.h
@@ -68,7 +68,7 @@ class LLPolySkeletalDistortionInfo : public LLViewerVisualParamInfo
 	friend class LLPolySkeletalDistortion;
 public:
 	
-	LLPolySkeletalDistortionInfo();
+	LLPolySkeletalDistortionInfo() = default;
 	/*virtual*/ ~LLPolySkeletalDistortionInfo() = default;
 	
 	/*virtual*/ BOOL parseXml(LLXmlTreeNode* node);
@@ -131,7 +131,7 @@ class LLPolySkeletalDistortion : public LLViewerVisualParam
 	/*virtual*/ const LLVector4a*	getNextDistortion(U32 *index, LLPolyMesh **poly_mesh){index = 0; poly_mesh = NULL; return NULL;};
 
 protected:
-	LLPolySkeletalDistortion(const LLPolySkeletalDistortion& pOther);
+	LLPolySkeletalDistortion(const LLPolySkeletalDistortion& pOther) = default;
 
 	LL_ALIGN_16(LLVector4a mDefaultVec);
 	typedef std::map<LLJoint*, LLVector3> joint_vec_map_t;
diff --git a/indra/llappearance/lltexglobalcolor.cpp b/indra/llappearance/lltexglobalcolor.cpp
index 01cc01b2de917d21f082f11537427cdaa72b5e6d..7ce5714f06f2b2169099a763e8c1cb1ef2471978 100644
--- a/indra/llappearance/lltexglobalcolor.cpp
+++ b/indra/llappearance/lltexglobalcolor.cpp
@@ -93,12 +93,6 @@ LLTexParamGlobalColor::LLTexParamGlobalColor(LLTexGlobalColor* tex_global_color)
 //-----------------------------------------------------------------------------
 // LLTexParamGlobalColor
 //-----------------------------------------------------------------------------
-LLTexParamGlobalColor::LLTexParamGlobalColor(const LLTexParamGlobalColor& pOther)
-	: LLTexLayerParamColor(pOther),
-	mTexGlobalColor(pOther.mTexGlobalColor)
-{
-}
-
 /*virtual*/ LLViewerVisualParam* LLTexParamGlobalColor::cloneParam(LLWearable* wearable) const
 {
 	return new LLTexParamGlobalColor(*this);
@@ -113,11 +107,6 @@ void LLTexParamGlobalColor::onGlobalColorChanged()
 // LLTexGlobalColorInfo
 //-----------------------------------------------------------------------------
 
-LLTexGlobalColorInfo::LLTexGlobalColorInfo()
-{
-}
-
-
 LLTexGlobalColorInfo::~LLTexGlobalColorInfo()
 {
 	for_each(mParamColorInfoList.begin(), mParamColorInfoList.end(), DeletePointer());
diff --git a/indra/llappearance/lltexglobalcolor.h b/indra/llappearance/lltexglobalcolor.h
index f4c8f6cd3bd88eae7e84ec13eb78973ab66d82cd..c9e99bf688e8b825c6d2cf47cfd0125a18b570b7 100644
--- a/indra/llappearance/lltexglobalcolor.h
+++ b/indra/llappearance/lltexglobalcolor.h
@@ -61,7 +61,7 @@ class LLTexGlobalColorInfo
 {
 	friend class LLTexGlobalColor;
 public:
-	LLTexGlobalColorInfo();
+	LLTexGlobalColorInfo() = default;
 	~LLTexGlobalColorInfo();
 
 	BOOL parseXml(LLXmlTreeNode* node);
@@ -78,7 +78,7 @@ class LLTexParamGlobalColor : public LLTexLayerParamColor
 	virtual ~LLTexParamGlobalColor() = default;
 	/*virtual*/ LLViewerVisualParam* cloneParam(LLWearable* wearable) const;
 protected:
-	LLTexParamGlobalColor(const LLTexParamGlobalColor& pOther);
+	LLTexParamGlobalColor(const LLTexParamGlobalColor& pOther) = default;
 	/*virtual*/ void onGlobalColorChanged();
 private:
 	LLTexGlobalColor*		mTexGlobalColor;
diff --git a/indra/llappearance/lltexlayerparams.cpp b/indra/llappearance/lltexlayerparams.cpp
index 2d5429de04dacaa729580acc25a58f75c8ec8404..a21696ad23a937e3f7a9d8f0e4a55035ec75b1df 100644
--- a/indra/llappearance/lltexlayerparams.cpp
+++ b/indra/llappearance/lltexlayerparams.cpp
@@ -62,13 +62,6 @@ LLTexLayerParam::LLTexLayerParam(LLAvatarAppearance *appearance)
 {
 }
 
-LLTexLayerParam::LLTexLayerParam(const LLTexLayerParam& pOther)
-	: LLViewerVisualParam(pOther),
-	mTexLayer(pOther.mTexLayer),
-	mAvatarAppearance(pOther.mAvatarAppearance)
-{
-}
-
 BOOL LLTexLayerParam::setInfo(LLViewerVisualParamInfo *info, BOOL add_to_appearance)
 {
 	LLViewerVisualParam::setInfo(info);
@@ -433,12 +426,6 @@ LLTexLayerParamColor::LLTexLayerParamColor(LLAvatarAppearance *appearance)
 {
 }
 
-LLTexLayerParamColor::LLTexLayerParamColor(const LLTexLayerParamColor& pOther)
-	: LLTexLayerParam(pOther),
-	mAvgDistortionVec(pOther.mAvgDistortionVec)
-{
-}
-
 /*virtual*/ LLViewerVisualParam* LLTexLayerParamColor::cloneParam(LLWearable* wearable) const
 {
 	return new LLTexLayerParamColor(*this);
diff --git a/indra/llappearance/lltexlayerparams.h b/indra/llappearance/lltexlayerparams.h
index d0eef8121a8b0b62da6e34c9e5ffd2bac77fe136..cb57d1f26e4ec30d3c1905b3a159cf098d72aa57 100644
--- a/indra/llappearance/lltexlayerparams.h
+++ b/indra/llappearance/lltexlayerparams.h
@@ -52,7 +52,7 @@ class LLTexLayerParam : public LLViewerVisualParam
 	/*virtual*/ LLViewerVisualParam* cloneParam(LLWearable* wearable) const = 0;
 
 protected:
-	LLTexLayerParam(const LLTexLayerParam& pOther);
+	LLTexLayerParam(const LLTexLayerParam& pOther) = default;
 
 	LLTexLayerInterface*	mTexLayer;
 	LLAvatarAppearance*		mAvatarAppearance;
@@ -194,7 +194,7 @@ class LLTexLayerParamColor : public LLTexLayerParam
 	// New functions
 	LLColor4				getNetColor() const;
 protected:
-	LLTexLayerParamColor(const LLTexLayerParamColor& pOther);
+	LLTexLayerParamColor(const LLTexLayerParamColor& pOther) = default;
 
 	virtual void onGlobalColorChanged() {}
 private:
diff --git a/indra/llappearance/llviewervisualparam.cpp b/indra/llappearance/llviewervisualparam.cpp
index fc0f403fac69be73550a88ac43d15df5f135b257..86d20b163c69313ada4f0391283dadc958f040cd 100644
--- a/indra/llappearance/llviewervisualparam.cpp
+++ b/indra/llappearance/llviewervisualparam.cpp
@@ -123,14 +123,6 @@ LLViewerVisualParam::LLViewerVisualParam()
 {
 }
 
-//-----------------------------------------------------------------------------
-// LLViewerVisualParam()
-//-----------------------------------------------------------------------------
-LLViewerVisualParam::LLViewerVisualParam(const LLViewerVisualParam& pOther)
-	: LLVisualParam(pOther)
-{
-}
-
 //-----------------------------------------------------------------------------
 // setInfo()
 //-----------------------------------------------------------------------------
diff --git a/indra/llappearance/llviewervisualparam.h b/indra/llappearance/llviewervisualparam.h
index 4140772a272b6f6261cb79a6cd4b764cb293692f..02b98204a211ca4f075ca1183ac74412bf14afc5 100644
--- a/indra/llappearance/llviewervisualparam.h
+++ b/indra/llappearance/llviewervisualparam.h
@@ -106,7 +106,7 @@ class LLViewerVisualParam : public LLVisualParam
 	BOOL				getCrossWearable() const 	{ return getInfo()->mCrossWearable; }
 
 protected:
-	LLViewerVisualParam(const LLViewerVisualParam& pOther);
+	LLViewerVisualParam(const LLViewerVisualParam& pOther) = default;
 } LL_ALIGN_POSTFIX(16);
 
 #endif // LL_LLViewerVisualParam_H
diff --git a/indra/llappearance/llwearabletype.cpp b/indra/llappearance/llwearabletype.cpp
index 1f5054fa65074b2d0b67df6c399d005759ada68a..9d35fcb8e6682ed9925e3061fefd61c0d4ff909f 100644
--- a/indra/llappearance/llwearabletype.cpp
+++ b/indra/llappearance/llwearabletype.cpp
@@ -66,10 +66,6 @@ LLWearableType::LLWearableType(LLTranslationBridge::ptr_t &trans)
 {
 }
 
-LLWearableType::~LLWearableType()
-{
-}
-
 void LLWearableType::initSingleton()
 {
 }
diff --git a/indra/llappearance/llwearabletype.h b/indra/llappearance/llwearabletype.h
index bd4416667005d94b79c8eeea7b58479ec94b1cce..e9aa4f943fe4f2bbc668e69062eee8083c2a9c70 100644
--- a/indra/llappearance/llwearabletype.h
+++ b/indra/llappearance/llwearabletype.h
@@ -36,7 +36,7 @@
 class LLWearableType final : public LLParamSingleton<LLWearableType>
 {
 	LLSINGLETON(LLWearableType, LLTranslationBridge::ptr_t &trans);
-	~LLWearableType();
+	~LLWearableType() = default;
 	void initSingleton() override;
 public: 
 	enum EType
@@ -109,7 +109,7 @@ class LLWearableType final : public LLParamSingleton<LLWearableType>
     {
     public:
         LLWearableDictionary(LLTranslationBridge::ptr_t& trans);
-        ~LLWearableDictionary() {}
+        ~LLWearableDictionary() = default;
     };
 
     LLWearableDictionary mDictionary;
diff --git a/indra/llaudio/llaudiodecodemgr.cpp b/indra/llaudio/llaudiodecodemgr.cpp
index a104d19b318c96f6de4f06775136f33cb055e1f2..d2d13a70e40a4a5b36158ba2e436ac9d091313cf 100644
--- a/indra/llaudio/llaudiodecodemgr.cpp
+++ b/indra/llaudio/llaudiodecodemgr.cpp
@@ -68,7 +68,7 @@ class LLVorbisDecodeState final : public LLRefCount
 	{
 	public:
 		WriteResponder(LLVorbisDecodeState* decoder) : mDecoder(decoder) {}
-		~WriteResponder() {}
+		~WriteResponder() = default;
 		void completed(S32 bytes)
 		{
 			mDecoder->ioComplete(bytes);
@@ -542,8 +542,8 @@ class LLAudioDecodeMgr::Impl
 {
 	friend class LLAudioDecodeMgr;
 public:
-	Impl() {};
-	~Impl() {};
+	Impl() = default;
+	~Impl() = default;
 
 	void processQueue(const F32 num_secs = 0.005);
 
diff --git a/indra/llcommon/llallocator_heap_profile.h b/indra/llcommon/llallocator_heap_profile.h
index 69300b829b35746f1ac7a678f42c36fec1e4e4b1..e1edafc04a52dd04b1957e2056d34878127317cd 100644
--- a/indra/llcommon/llallocator_heap_profile.h
+++ b/indra/llcommon/llallocator_heap_profile.h
@@ -55,9 +55,7 @@ class LLAllocatorHeapProfile
 
     typedef std::vector<line> lines_t;
 
-    LLAllocatorHeapProfile()
-    {
-    }
+    LLAllocatorHeapProfile() = default;
 
 	void parse(std::string const & prof_text);
 
diff --git a/indra/llcommon/llcallstack.cpp b/indra/llcommon/llcallstack.cpp
index 00b07f2b5e7234373cf70d99197583cde3451316..c6d830b01d8c7fd295d7b468641ae25417fe2e75 100644
--- a/indra/llcommon/llcallstack.cpp
+++ b/indra/llcommon/llcallstack.cpp
@@ -115,10 +115,6 @@ std::ostream& operator<<(std::ostream& s, const LLCallStack& call_stack)
     return s;
 }
 
-LLContextStrings::LLContextStrings()
-{
-}
-
 // static
 LLContextStrings* LLContextStrings::getThreadLocalInstance()
 {
diff --git a/indra/llcommon/llcallstack.h b/indra/llcommon/llcallstack.h
index 1e20e9d3050936d08040a177784251fe1f81d64b..31d99d03b0f84b747a0b391f4612e807b4c63e89 100644
--- a/indra/llcommon/llcallstack.h
+++ b/indra/llcommon/llcallstack.h
@@ -46,7 +46,7 @@ LL_COMMON_API std::ostream& operator<<(std::ostream& s, const LLCallStack& call_
 class LLContextStrings
 {
 public:
-    LLContextStrings();
+    LLContextStrings() = default;
     static void addContextString(const std::string& str);
     static void removeContextString(const std::string& str);
     static void output(std::ostream& os);
diff --git a/indra/llcommon/llcoros.cpp b/indra/llcommon/llcoros.cpp
index 6c3fc7a95e32a6cc7af219ca0b0f8c161a7247fe..4104367c5907341a835e3a24eddaf542f25a674f 100644
--- a/indra/llcommon/llcoros.cpp
+++ b/indra/llcommon/llcoros.cpp
@@ -133,10 +133,6 @@ LLCoros::LLCoros():
 {
 }
 
-LLCoros::~LLCoros()
-{
-}
-
 void LLCoros::cleanupSingleton()
 {
     // Some of the coroutines (like voice) will depend onto
diff --git a/indra/llcommon/llcoros.h b/indra/llcommon/llcoros.h
index 22a05edafc5e4677d798f58965c2a40ece0cd492..8459ec6270150252b16f2e96d9562d090eeed422 100644
--- a/indra/llcommon/llcoros.h
+++ b/indra/llcommon/llcoros.h
@@ -88,9 +88,9 @@ namespace boost {
 class LL_COMMON_API LLCoros final : public LLSingleton<LLCoros>
 {
     LLSINGLETON(LLCoros);
-    ~LLCoros();
+    ~LLCoros() = default;
 
-    void cleanupSingleton();
+    void cleanupSingleton() override;
 public:
     /// The viewer's use of the term "coroutine" became deeply embedded before
     /// the industry term "fiber" emerged to distinguish userland threads from
diff --git a/indra/llcommon/lldependencies.h b/indra/llcommon/lldependencies.h
index 6b6a9500e0a8ff932a3c681769c410642ef8ac21..4e25c92b70642d9f520ed9eca9d76dd83947ce77 100644
--- a/indra/llcommon/lldependencies.h
+++ b/indra/llcommon/lldependencies.h
@@ -171,7 +171,7 @@ std::ostream& LLDependencies_describe(std::ostream& out, const std::string& key)
  */
 struct LLDependenciesEmpty
 {
-    LLDependenciesEmpty() {}
+    LLDependenciesEmpty() = default;
     /**
      * Give it a constructor accepting void* so caller can pass placeholder
      * values such as NULL or 0 rather than having to write
@@ -220,7 +220,7 @@ class LLDependencies: public LLDependenciesBase
     typedef boost::function<const typename DepNode::dep_set&(const DepNode&)> dep_selector;
 
 public:
-    LLDependencies() {}
+    LLDependencies() = default;
 
     typedef KEY key_type;
     typedef NODE node_type;
diff --git a/indra/llcommon/lldoubledispatch.h b/indra/llcommon/lldoubledispatch.h
index 081f9ac38d2b608bb945379a1d50bee7a24d3ce9..6860d59e7203a63845e40e68e5f66fccf44cd4c9 100644
--- a/indra/llcommon/lldoubledispatch.h
+++ b/indra/llcommon/lldoubledispatch.h
@@ -119,7 +119,7 @@ class LLDoubleDispatch
     typedef LLDoubleDispatch<ReturnType, ParamBaseType> self_type;
 
 public:
-    LLDoubleDispatch() {}
+    LLDoubleDispatch() = default;
 
     /**
      * Call the first matching entry.  If there's no registered Functor
diff --git a/indra/llcommon/lleventcoro.h b/indra/llcommon/lleventcoro.h
index c0fe8b094f004eb03b3d357e01990fad3ddf3629..8481a014d3b1bfd716bd131eb304adecf8b36668 100644
--- a/indra/llcommon/lleventcoro.h
+++ b/indra/llcommon/lleventcoro.h
@@ -59,7 +59,7 @@ class LLEventPumpOrPumpName
         mPump(LLEventPumps::instance().obtain(pumpname))
     {}
     /// Unspecified: "I choose not to identify an LLEventPump."
-    LLEventPumpOrPumpName() {}
+    LLEventPumpOrPumpName() = default;
     operator LLEventPump& () const { return *mPump; }
     LLEventPump& getPump() const { return *mPump; }
     operator bool() const { return bool(mPump); }
diff --git a/indra/llcommon/lleventfilter.cpp b/indra/llcommon/lleventfilter.cpp
index 4cded7f88e0462aa2591b98239b6a7d3c4a5bee3..7f44d5c2d5c45b9a82a399a835e88a38779b4252 100644
--- a/indra/llcommon/lleventfilter.cpp
+++ b/indra/llcommon/lleventfilter.cpp
@@ -168,8 +168,6 @@ bool LLEventTimeoutBase::running() const
 /*****************************************************************************
 *   LLEventTimeout
 *****************************************************************************/
-LLEventTimeout::LLEventTimeout() {}
-
 LLEventTimeout::LLEventTimeout(LLEventPump& source):
     LLEventTimeoutBase(source)
 {
diff --git a/indra/llcommon/lleventfilter.h b/indra/llcommon/lleventfilter.h
index 48c2570732090a0cbb6b2305259dd9214c2c1f47..5c9bd3698f070f76e0f76ca18858094a087f0d45 100644
--- a/indra/llcommon/lleventfilter.h
+++ b/indra/llcommon/lleventfilter.h
@@ -211,7 +211,7 @@ class LL_COMMON_API LLEventTimeoutBase: public LLEventFilter
 class LL_COMMON_API LLEventTimeout: public LLEventTimeoutBase
 {
 public:
-    LLEventTimeout();
+    LLEventTimeout() = default;
     LLEventTimeout(LLEventPump& source);
 
     /// using LLEventTimeout as namespace for free functions
diff --git a/indra/llcommon/llevents.h b/indra/llcommon/llevents.h
index de1acdfb20cdd82ee945f07f997687bbfba579ca..6968ef52ce35f984827d8dfdbdf6803f72c1b0e0 100644
--- a/indra/llcommon/llevents.h
+++ b/indra/llcommon/llevents.h
@@ -183,7 +183,7 @@ class LL_COMMON_API LLListenerOrPumpName
     LLListenerOrPumpName(const T& listener): mListener(listener) {}
 
     /// for omitted method parameter: uninitialized mListener
-    LLListenerOrPumpName() {}
+    LLListenerOrPumpName() = default;
 
     /// test for validity
     operator bool() const { return bool(mListener); }
@@ -695,7 +695,7 @@ class LL_COMMON_API LLReqID
         mReqid(request["reqid"])
     {}
     /// If you don't yet have the request, use setFrom() later.
-    LLReqID() {}
+    LLReqID() = default;
 
     /// Extract and store the ["reqid"] value from an incoming request.
     void setFrom(const LLSD& request)
diff --git a/indra/llcommon/llhandle.h b/indra/llcommon/llhandle.h
index 78f2a2441f24c93dde43367d17389bc2bb3534e8..eec5f47dce4618ff742e600d167b017d15d1c3cf 100644
--- a/indra/llcommon/llhandle.h
+++ b/indra/llcommon/llhandle.h
@@ -154,7 +154,7 @@ class LLRootHandle : public LLHandle<T>
 	typedef LLHandle<T> base_t;
 
 	LLRootHandle(T* object) { bind(object); }
-	LLRootHandle() {};
+	LLRootHandle() = default;
 	~LLRootHandle() { unbind(); }
 
 	// this is redundant, since an LLRootHandle *is* an LLHandle
@@ -231,7 +231,7 @@ class LLCheckedHandleBase
     };
 
 protected:
-    LLCheckedHandleBase() { }
+    LLCheckedHandleBase() = default;
 
 };
 
diff --git a/indra/llcommon/llinitparam.cpp b/indra/llcommon/llinitparam.cpp
index 2ef65d0f8bab234ba48cc5aeb9fea4b016b28e1f..00987a4c0e7d3568b5937d6b49921cd56afe8d86 100644
--- a/indra/llcommon/llinitparam.cpp
+++ b/indra/llcommon/llinitparam.cpp
@@ -93,9 +93,6 @@ namespace LLInitParam
 	//
 	// Parser
 	//
-	Parser::~Parser()
-	{}
-
 	void Parser::parserWarning(const std::string& message)
 	{
 		if (mParseSilently) return;
diff --git a/indra/llcommon/llinitparam.h b/indra/llcommon/llinitparam.h
index fe3b76fdf6b59349937ecab0983a24a0785e4e2f..24338b5cb6dede8b26c2f1c9391847141e38402d 100644
--- a/indra/llcommon/llinitparam.h
+++ b/indra/llcommon/llinitparam.h
@@ -571,7 +571,7 @@ namespace LLInitParam
 			mParserInspectFuncs(&inspect_map)
 		{}
 
-		virtual ~Parser();
+		virtual ~Parser() = default;
 
 		template <typename T> bool readValue(T& param, typename boost::disable_if<boost::is_enum<T> >::type* dummy = 0)
 		{
@@ -2881,8 +2881,7 @@ namespace LLInitParam
 		typedef LLSD			value_t;
 		typedef LLSD			default_value_t;
 
-		ParamValue()
-		{}
+		ParamValue() = default;
 
 		ParamValue(const default_value_t& other)
 		:	mValue(other)
diff --git a/indra/llcommon/llkeybind.h b/indra/llcommon/llkeybind.h
index 012b3df5477f17e2ec78fa7d63b2a2a6f5c8983e..597c27b8cc35baac5613da501842474991e8d2ae 100644
--- a/indra/llcommon/llkeybind.h
+++ b/indra/llcommon/llkeybind.h
@@ -60,7 +60,7 @@ class LL_COMMON_API LLKeyData
 class LLKeyBind
 {
 public:
-    LLKeyBind() {}
+    LLKeyBind() = default;
     LLKeyBind(const LLSD &key_bind);
 
     bool operator==(const LLKeyBind& rhs);
diff --git a/indra/llcommon/llmainthreadtask.h b/indra/llcommon/llmainthreadtask.h
index 72dc79f24d26d7faf8d29f4c0af2c6512b213aa3..f04843991a33d0658f6858e6336f63fb64eb2525 100644
--- a/indra/llcommon/llmainthreadtask.h
+++ b/indra/llcommon/llmainthreadtask.h
@@ -43,11 +43,10 @@
  */
 class LLMainThreadTask
 {
-private:
+public:
     // Don't instantiate this class -- use dispatch() instead.
-    LLMainThreadTask() {}
+    LLMainThreadTask() = delete;
 
-public:
     /// dispatch() is the only way to invoke this functionality.
     template <typename CALLABLE>
     static auto dispatch(CALLABLE&& callable) -> decltype(callable())
diff --git a/indra/llcommon/llpredicate.h b/indra/llcommon/llpredicate.h
index 5f5fc65595388bb14cd771a6ce1799d896fadb75..154864dc19179e2e974f7b85ec8c2c9119a1919c 100644
--- a/indra/llcommon/llpredicate.h
+++ b/indra/llcommon/llpredicate.h
@@ -136,8 +136,7 @@ namespace LLPredicate
 		:	mRule(other)
 		{}
 
-		Rule()
-		{}
+		Rule() = default;
 
 		void require(ENUM e, bool match)
 		{
diff --git a/indra/llcommon/llptrto.cpp b/indra/llcommon/llptrto.cpp
index b270291bd6251592698ef6b122bc04c9f92cf767..f69950a5075905f7d54b63288e9b1b7695b56db1 100644
--- a/indra/llcommon/llptrto.cpp
+++ b/indra/llcommon/llptrto.cpp
@@ -42,35 +42,35 @@
 class RCFoo: public LLRefCount
 {
 public:
-    RCFoo() {}
+    RCFoo() = default;
 };
 
 // a refcounted subclass
 class RCSubFoo: public RCFoo
 {
 public:
-    RCSubFoo() {}
+    RCSubFoo() = default;
 };
 
 // a refcounted class using the other refcount base class
 class TSRCFoo: public LLThreadSafeRefCount
 {
 public:
-    TSRCFoo() {}
+    TSRCFoo() = default;
 };
 
 // a non-refcounted class
 class Bar
 {
 public:
-    Bar() {}
+    Bar() = default;
 };
 
 // a non-refcounted subclass
 class SubBar: public Bar
 {
 public:
-    SubBar() {}
+    SubBar() = default;
 };
 
 int main(int argc, char *argv[])
diff --git a/indra/llcommon/llsdparam.h b/indra/llcommon/llsdparam.h
index 93910b70ae98957246faaa30c4579f6666eb91d6..89528365bd9e62745378ec2bd0beff9e1ee0a378 100644
--- a/indra/llcommon/llsdparam.h
+++ b/indra/llcommon/llsdparam.h
@@ -115,7 +115,7 @@ template<typename T>
 class LLSDParamAdapter : public T
 {
 public:
-	LLSDParamAdapter() {}
+	LLSDParamAdapter() = default;
 	LLSDParamAdapter(const LLSD& sd)
 	{
 		LL_RECORD_BLOCK_TIME(FTM_SD_PARAM_ADAPTOR);
diff --git a/indra/llcommon/llthreadlocalstorage.h b/indra/llcommon/llthreadlocalstorage.h
index 3b5786023f45fe9b8b36423da9fbfbf36869bac0..1c0cdeded3e9e28fc0e2f2f00810c6f1fd5b03d1 100644
--- a/indra/llcommon/llthreadlocalstorage.h
+++ b/indra/llcommon/llthreadlocalstorage.h
@@ -77,8 +77,7 @@ class LLThreadLocalPointer : public LLThreadLocalPointerBase
 {
 public:
 
-	LLThreadLocalPointer()
-	{}
+	LLThreadLocalPointer() = default;
 
 	explicit LLThreadLocalPointer(T* value)
 	{
diff --git a/indra/llcommon/lltreeiterators.h b/indra/llcommon/lltreeiterators.h
index ba861ae70bd466923d1321404d9179ae92ad7303..3930940134a4dbc2d4a8e2a0f7ece87d89681d5f 100644
--- a/indra/llcommon/lltreeiterators.h
+++ b/indra/llcommon/lltreeiterators.h
@@ -226,7 +226,7 @@ class LLTreeDownIter: public LLBaseIter<LLTreeDownIter<NODE>, NODE>
             mParents.push_back(n);
     }
     /// Instantiate an LLTreeDownIter representing "here", the end of the loop
-    LLTreeDownIter() {}
+    LLTreeDownIter() = default;
 
 private:
     /// leverage boost::iterator_facade
@@ -591,7 +591,7 @@ class LLTreeBFSIter: public LLBaseIter<LLTreeBFSIter<NODE, CHILDITER>, NODE>
             mPending.push_back(node);
     }
     /// Instantiate an LLTreeBFSIter to mark the end of the walk
-    LLTreeBFSIter() {}
+    LLTreeBFSIter() = default;
 
 private:
     /// leverage boost::iterator_facade
diff --git a/indra/llcommon/lluri.cpp b/indra/llcommon/lluri.cpp
index 1da50873cc64e61c5afbc721fa7e9435a452e8fc..3c3bf855f8e48170e9abebeaaf6d903fbd0fd471 100644
--- a/indra/llcommon/lluri.cpp
+++ b/indra/llcommon/lluri.cpp
@@ -300,10 +300,6 @@ std::string LLURI::escapePathAndData(const std::string &str)
     return result;
 }
 
-LLURI::LLURI()
-{
-}
-
 LLURI::LLURI(const std::string& escaped_str)
 {
 	std::string::size_type delim_pos;
diff --git a/indra/llcommon/lluri.h b/indra/llcommon/lluri.h
index f3542c418374de131b4cc422ddaf4c0d2b54125f..e78be311ea900d41894ffa931cf8cadf03f5b186 100644
--- a/indra/llcommon/lluri.h
+++ b/indra/llcommon/lluri.h
@@ -44,7 +44,7 @@ class LLApp;
 class LL_COMMON_API LLURI
 {
 public:
-  LLURI();
+  LLURI() = default;
   LLURI(const std::string& escaped_str);
   LLURI(const std::string& scheme,
 		const std::string& userName,
diff --git a/indra/llmath/llcalcparser.h b/indra/llmath/llcalcparser.h
index bc1b2b150dab2d5d5b5edfbd57b4823952be91b0..608010508ce7292b0499757b772a373aa392c861 100644
--- a/indra/llmath/llcalcparser.h
+++ b/indra/llmath/llcalcparser.h
@@ -109,9 +109,7 @@ struct grammar
 				FPT
 			>
 	{
-		constant_()
-		{
-		}
+		constant_() = default;
 	} constant;
  
 	// symbol table for unary functions like "abs"
diff --git a/indra/llui/llaccordionctrltab.cpp b/indra/llui/llaccordionctrltab.cpp
index 1d0fced6d18c310f8daa334459e28f4b11d861b2..c2c7abeb28f9a291b28f89a1c8fc7fc2a931eefe 100644
--- a/indra/llui/llaccordionctrltab.cpp
+++ b/indra/llui/llaccordionctrltab.cpp
@@ -55,7 +55,7 @@ class LLAccordionCtrlTab::LLAccordionCtrlTabHeader final : public LLUICtrl
 
 	struct Params : public LLInitParam::Block<Params, LLAccordionCtrlTab::Params>
 	{
-		Params();
+		Params() = default;
 	};
 
 	LLAccordionCtrlTabHeader(const LLAccordionCtrlTabHeader::Params& p);
@@ -112,10 +112,6 @@ class LLAccordionCtrlTab::LLAccordionCtrlTabHeader final : public LLUICtrl
 	LLFrameTimer mAutoOpenTimer;
 };
 
-LLAccordionCtrlTab::LLAccordionCtrlTabHeader::Params::Params()
-{
-}
-
 LLAccordionCtrlTab::LLAccordionCtrlTabHeader::LLAccordionCtrlTabHeader(
 	const LLAccordionCtrlTabHeader::Params& p)
 : LLUICtrl(p)
@@ -376,11 +372,6 @@ LLAccordionCtrlTab::LLAccordionCtrlTab(const LLAccordionCtrlTab::Params&p)
 	reshape(100, 200,FALSE);
 }
 
-LLAccordionCtrlTab::~LLAccordionCtrlTab()
-{
-}
-
-
 void LLAccordionCtrlTab::setDisplayChildren(bool display)
 {
 	mDisplayChildren = display;
diff --git a/indra/llui/llaccordionctrltab.h b/indra/llui/llaccordionctrltab.h
index 2c72e8c036d166e8b541ffd6c447f6f9a7aafade..aa5741a25a40bbc5d06c37e3a4405ca1fcff08eb 100644
--- a/indra/llui/llaccordionctrltab.h
+++ b/indra/llui/llaccordionctrltab.h
@@ -95,7 +95,7 @@ class LLAccordionCtrlTab : public LLUICtrl
 
 	typedef LLDefaultChildRegistry child_registry_t;
 
-	virtual ~LLAccordionCtrlTab();
+	virtual ~LLAccordionCtrlTab() = default;
 	
 	// Registers callback for expand/collapse events.
 	boost::signals2::connection setDropDownStateChangedCallback(commit_callback_t cb);
diff --git a/indra/llui/llbadge.cpp b/indra/llui/llbadge.cpp
index 4a363abf9b7fd8de38c25669bf46b14d6cbd4507..62a167f2c4db428968fa43f0cfd046431b9c295d 100644
--- a/indra/llui/llbadge.cpp
+++ b/indra/llui/llbadge.cpp
@@ -151,10 +151,6 @@ LLBadge::LLBadge(const LLBadge::Params& p)
 	}
 }
 
-LLBadge::~LLBadge()
-{
-}
-
 bool LLBadge::addToView(LLView * view)
 {
 	bool child_added = view->addChild(this);
diff --git a/indra/llui/llbadge.h b/indra/llui/llbadge.h
index 14f9749edc4e1e71fcde8dcbd7fe666497107400..cd89c5f74084d52ac0f45357ff299bf365ae9574 100644
--- a/indra/llui/llbadge.h
+++ b/indra/llui/llbadge.h
@@ -128,7 +128,7 @@ class LLBadge
 
 public:
 
-	~LLBadge();
+	~LLBadge() = default;
 
 	bool				addToView(LLView * view);
 
diff --git a/indra/llui/llcombobox.h b/indra/llui/llcombobox.h
index f25fbab7a149bbdd169491aac6ffc7015143f327..67a5a8af5809e7ca98a3895ca03a73a65d959b0e 100644
--- a/indra/llui/llcombobox.h
+++ b/indra/llui/llcombobox.h
@@ -102,8 +102,8 @@ class LLComboBox
 	void	initFromParams(const Params&);
 	void	prearrangeList(std::string filter = "");
 
-    virtual std::string _getSearchText() const;
-    virtual void onSetHighlight() const;
+    std::string _getSearchText() const override;
+    void onSetHighlight() const override;
 
 public:
 	// LLView interface
@@ -262,7 +262,7 @@ class LLIconsComboBox
 		Params();
 	};
 
-	/*virtual*/ const std::string getSelectedItemLabel(S32 column = 0) const;
+	/*virtual*/ const std::string getSelectedItemLabel(S32 column = 0) const override;
 
 private:
 	enum EColumnIndex
@@ -273,7 +273,7 @@ class LLIconsComboBox
 
 	friend class LLUICtrlFactory;
 	LLIconsComboBox(const Params&);
-	virtual ~LLIconsComboBox() {};
+	virtual ~LLIconsComboBox() = default;
 
 	S32			mIconColumnIndex;
 	S32			mLabelColumnIndex;
diff --git a/indra/llui/llcommandmanager.cpp b/indra/llui/llcommandmanager.cpp
index dd3c157c4be2cde5097fbf72f676de4b783fe446..245589f2732596783b184b0f36a5fa49630015c6 100644
--- a/indra/llui/llcommandmanager.cpp
+++ b/indra/llui/llcommandmanager.cpp
@@ -89,11 +89,6 @@ LLCommand::LLCommand(const LLCommand::Params& p)
 //
 // LLCommandManager class
 //
-
-LLCommandManager::LLCommandManager()
-{
-}
-
 LLCommandManager::~LLCommandManager()
 {
 	for (CommandVector::iterator cmdIt = mCommands.begin(); cmdIt != mCommands.end(); ++cmdIt)
diff --git a/indra/llui/llcommandmanager.h b/indra/llui/llcommandmanager.h
index 1ea127b2462c9e3906ee6cba7101ca63b96f7f58..a4e6f0f7cd71e99c04d4a747e1c2e0ec8c5099d5 100644
--- a/indra/llui/llcommandmanager.h
+++ b/indra/llui/llcommandmanager.h
@@ -174,7 +174,7 @@ class LLCommand
 class LLCommandManager final
 :	public LLSingleton<LLCommandManager>
 {
-	LLSINGLETON(LLCommandManager);
+	LLSINGLETON_EMPTY_CTOR(LLCommandManager);
 	~LLCommandManager();
 
 public:
diff --git a/indra/llui/llconsole.h b/indra/llui/llconsole.h
index 4f01a096fde16dd53f0203b262c833a5f3217362..11cb9b45e87b5d23dcac5035ced3c59d0ce3b8a0 100644
--- a/indra/llui/llconsole.h
+++ b/indra/llui/llconsole.h
@@ -127,7 +127,7 @@ class LLConsole : public LLFixedBuffer, public LLUICtrl, public LLInstanceTracke
 	typedef std::deque<Paragraph> paragraph_t;
 	paragraph_t mParagraphs;
 
-	~LLConsole(){};
+	~LLConsole()= default;
 
 	// each line lasts this long after being added
 	void			setLinePersistTime(F32 seconds);
diff --git a/indra/llui/lldockablefloater.cpp b/indra/llui/lldockablefloater.cpp
index c937d190c62e4dfa1602d149b9e8eee488c9bb8a..12202fd5e31b988c60f785b080d1dcae62426099 100644
--- a/indra/llui/lldockablefloater.cpp
+++ b/indra/llui/lldockablefloater.cpp
@@ -70,10 +70,6 @@ LLDockableFloater::LLDockableFloater(LLDockControl* dockControl, bool uniqueDock
 	init(this);
 }
 
-LLDockableFloater::~LLDockableFloater()
-{
-}
-
 BOOL LLDockableFloater::postBuild()
 {
 	// Remember we should force docking when the floater is opened for the first time
diff --git a/indra/llui/lldockablefloater.h b/indra/llui/lldockablefloater.h
index 1e8acac71b33c158d92794b67d79cdf0d5250ece..f35c8591b1dc101eb9e1f44a6334aff100d69cf1 100644
--- a/indra/llui/lldockablefloater.h
+++ b/indra/llui/lldockablefloater.h
@@ -70,7 +70,7 @@ class LLDockableFloater : public LLFloater
 			bool useTongue, const LLSD& key,
 			const Params& params = getDefaultParams());
 
-	virtual ~LLDockableFloater();
+	virtual ~LLDockableFloater() = default;
 
 	static LLHandle<LLFloater> getInstanceHandle() { return sInstanceHandle; }
 
diff --git a/indra/llui/lldockcontrol.cpp b/indra/llui/lldockcontrol.cpp
index e5ed1ad3b65622d47ba0235df0edc48df26a0868..ef7741e29f6ac4a948d6a0fb7f783d9457ac30f6 100644
--- a/indra/llui/lldockcontrol.cpp
+++ b/indra/llui/lldockcontrol.cpp
@@ -76,10 +76,6 @@ LLDockControl::LLDockControl(LLView* dockWidget, LLFloater* dockableFloater,
 	}
 }
 
-LLDockControl::~LLDockControl()
-{
-}
-
 void LLDockControl::setDock(LLView* dockWidget)
 {
 	if (dockWidget != NULL)
diff --git a/indra/llui/lldockcontrol.h b/indra/llui/lldockcontrol.h
index 140e82fbdf8990bdbf1aebf0dd9c8dfc6d4f5a30..21f10c3c7297cd9aa0dc7329f50be785ef741a9d 100644
--- a/indra/llui/lldockcontrol.h
+++ b/indra/llui/lldockcontrol.h
@@ -54,7 +54,7 @@ class LLDockControl
 	LOG_CLASS(LLDockControl);
 	LLDockControl(LLView* dockWidget, LLFloater* dockableFloater,
 			const LLUIImagePtr& dockTongue, DocAt dockAt, get_allowed_rect_callback_t get_rect_callback = NULL);
-	virtual ~LLDockControl();
+	virtual ~LLDockControl() = default;
 
 public:
 	void on();
diff --git a/indra/llui/llflashtimer.h b/indra/llui/llflashtimer.h
index db8d49f0096be7397292c25e7a593573bc7adc48..41e00b7c9d09812f62b25d3c7b00fd8a204cd600 100644
--- a/indra/llui/llflashtimer.h
+++ b/indra/llui/llflashtimer.h
@@ -44,7 +44,7 @@ class LLFlashTimer : public LLEventTimer
 	 * @param cb - callback to be called each tick
 	 */
 	LLFlashTimer(callback_t cb = NULL, S32 count = 0, F32 period = 0.0);
-	~LLFlashTimer() {};
+	~LLFlashTimer() = default;
 
 	/*virtual*/ BOOL tick();
 
diff --git a/indra/llui/llflatlistview.h b/indra/llui/llflatlistview.h
index f9c1b56b5340b5f37e14c37e35668ad9a48e2d72..d647e22fb1d2fb576381bfc8b8b0261029d20c5b 100644
--- a/indra/llui/llflatlistview.h
+++ b/indra/llui/llflatlistview.h
@@ -63,8 +63,8 @@ class LLFlatListView : public LLScrollContainer, public LLEditMenuHandler
 	class ItemComparator
 	{
 	public:
-		ItemComparator() {};
-		virtual ~ItemComparator() {};
+		ItemComparator() = default;
+		virtual ~ItemComparator() = default;
 
 		/** Returns true if item1 < item2, false otherwise */
 		virtual bool compare(const LLPanel* item1, const LLPanel* item2) const = 0;
@@ -77,7 +77,7 @@ class LLFlatListView : public LLScrollContainer, public LLEditMenuHandler
 	{
 	public:
 		ItemReverseComparator(const ItemComparator& comparator) : mComparator(comparator) {};
-		virtual ~ItemReverseComparator() {};
+		virtual ~ItemReverseComparator() = default;
 
 		virtual bool compare(const LLPanel* item1, const LLPanel* item2) const
 		{
diff --git a/indra/llui/llfolderview.cpp b/indra/llui/llfolderview.cpp
index a35fee51e03370919956b97f2c5f54200e72f582..81531ea1837d03fedb3025c105da2cdc080ff424 100644
--- a/indra/llui/llfolderview.cpp
+++ b/indra/llui/llfolderview.cpp
@@ -86,7 +86,7 @@ class LLCloseAllFoldersFunctor : public LLFolderViewFunctor
 {
 public:
 	LLCloseAllFoldersFunctor(BOOL close) { mOpen = !close; }
-	virtual ~LLCloseAllFoldersFunctor() {}
+	virtual ~LLCloseAllFoldersFunctor() = default;
 	virtual void doFolder(LLFolderViewFolder* folder);
 	virtual void doItem(LLFolderViewItem* item);
 
diff --git a/indra/llui/llfolderview.h b/indra/llui/llfolderview.h
index c331a005b4fa604a66dc878be34ae09944e1ecd6..6e9a681de73c996f0297cbff65e7bf602c192f79 100644
--- a/indra/llui/llfolderview.h
+++ b/indra/llui/llfolderview.h
@@ -66,7 +66,7 @@ class LLTextBox;
 class LLFolderViewScrollContainer : public LLScrollContainer
 {
 public:
-	/*virtual*/ ~LLFolderViewScrollContainer() {};
+	/*virtual*/ ~LLFolderViewScrollContainer() = default;
 	/*virtual*/ const LLRect getScrolledViewRect() const;
 
 protected:
@@ -350,7 +350,7 @@ class LLFolderView : public LLFolderViewFolder, public LLEditMenuHandler
 class LLFolderViewFunctor
 {
 public:
-	virtual ~LLFolderViewFunctor() {}
+	virtual ~LLFolderViewFunctor() = default;
 	virtual void doFolder(LLFolderViewFolder* folder) = 0;
 	virtual void doItem(LLFolderViewItem* item) = 0;
 };
@@ -370,7 +370,7 @@ class LLSelectFirstFilteredItem : public LLFolderViewFunctor
 {
 public:
 	LLSelectFirstFilteredItem() : mItemSelected(FALSE), mFolderSelected(FALSE) {}
-	virtual ~LLSelectFirstFilteredItem() {}
+	virtual ~LLSelectFirstFilteredItem() = default;
 	virtual void doFolder(LLFolderViewFolder* folder);
 	virtual void doItem(LLFolderViewItem* item);
 	BOOL wasItemSelected() { return mItemSelected || mFolderSelected; }
@@ -382,8 +382,8 @@ class LLSelectFirstFilteredItem : public LLFolderViewFunctor
 class LLOpenFilteredFolders : public LLFolderViewFunctor
 {
 public:
-	LLOpenFilteredFolders()  {}
-	virtual ~LLOpenFilteredFolders() {}
+	LLOpenFilteredFolders()  = default;
+	virtual ~LLOpenFilteredFolders() = default;
 	virtual void doFolder(LLFolderViewFolder* folder);
 	virtual void doItem(LLFolderViewItem* item);
 };
@@ -392,7 +392,7 @@ class LLSaveFolderState : public LLFolderViewFunctor
 {
 public:
 	LLSaveFolderState() : mApply(FALSE) {}
-	virtual ~LLSaveFolderState() {}
+	virtual ~LLSaveFolderState() = default;
 	virtual void doFolder(LLFolderViewFolder* folder);
 	virtual void doItem(LLFolderViewItem* item) {}
 	void setApply(BOOL apply);
@@ -405,8 +405,8 @@ class LLSaveFolderState : public LLFolderViewFunctor
 class LLOpenFoldersWithSelection : public LLFolderViewFunctor
 {
 public:
-	LLOpenFoldersWithSelection() {}
-	virtual ~LLOpenFoldersWithSelection() {}
+	LLOpenFoldersWithSelection() = default;
+	virtual ~LLOpenFoldersWithSelection() = default;
 	virtual void doFolder(LLFolderViewFolder* folder);
 	virtual void doItem(LLFolderViewItem* item);
 };
@@ -415,7 +415,7 @@ class LLAllDescendentsPassedFilter : public LLFolderViewFunctor
 {
 public:
 	LLAllDescendentsPassedFilter() : mAllDescendentsPassedFilter(true) {}
-	/*virtual*/ ~LLAllDescendentsPassedFilter() {}
+	/*virtual*/ ~LLAllDescendentsPassedFilter() = default;
 	/*virtual*/ void doFolder(LLFolderViewFolder* folder);
 	/*virtual*/ void doItem(LLFolderViewItem* item);
 	bool allDescendentsPassedFilter() const { return mAllDescendentsPassedFilter; }
diff --git a/indra/llui/lllayoutstack.cpp b/indra/llui/lllayoutstack.cpp
index 86e933107ac691a9372ccc0066bd1e6f23e29833..c1d74b7bc3e3e33038dd50678a4f06654936a33a 100644
--- a/indra/llui/lllayoutstack.cpp
+++ b/indra/llui/lllayoutstack.cpp
@@ -352,7 +352,7 @@ class LLImagePanel : public LLPanel
 		Params() : horizontal("horizontal", false) {}
 	};
 	LLImagePanel(const Params& p) : LLPanel(p), mHorizontal(p.horizontal) {}
-	virtual ~LLImagePanel() {}
+	virtual ~LLImagePanel() = default;
 
 	void draw()
 	{
diff --git a/indra/llui/llloadingindicator.h b/indra/llui/llloadingindicator.h
index ffcb329f42d9db879fe99ebba19f3f154280e6d3..bf35bf086fefe05f620b442f1e83356c179ecc4c 100644
--- a/indra/llui/llloadingindicator.h
+++ b/indra/llui/llloadingindicator.h
@@ -71,7 +71,7 @@ class LLLoadingIndicator
 		{}
 	};
 
-	virtual ~LLLoadingIndicator() {}
+	virtual ~LLLoadingIndicator() = default;
 
 	// llview overrides
 	virtual void draw();
diff --git a/indra/llui/lllocalcliprect.cpp b/indra/llui/lllocalcliprect.cpp
index f3a526faeb33ca0aee3f64bdb2ae7a656795d640..8650ae710c057a5275239af598a8e00b85e4b41e 100644
--- a/indra/llui/lllocalcliprect.cpp
+++ b/indra/llui/lllocalcliprect.cpp
@@ -105,6 +105,3 @@ LLLocalClipRect::LLLocalClipRect(const LLRect& rect, BOOL enabled /* = TRUE */)
 					rect.mRight + LLFontGL::sCurOrigin.mX, 
 					rect.mBottom + LLFontGL::sCurOrigin.mY), enabled)
 {}
-
-LLLocalClipRect::~LLLocalClipRect()
-{}
diff --git a/indra/llui/lllocalcliprect.h b/indra/llui/lllocalcliprect.h
index eeeaf2adb6053725abe1190cb4ff0ccb851c4d90..60c5fb810c8e956df9a8055951680dd62faf675c 100644
--- a/indra/llui/lllocalcliprect.h
+++ b/indra/llui/lllocalcliprect.h
@@ -57,7 +57,7 @@ class LLLocalClipRect : public LLScreenClipRect
 {
 public:
 	LLLocalClipRect(const LLRect& rect, BOOL enabled = TRUE);
-	~LLLocalClipRect();
+	~LLLocalClipRect() = default;
 };
 
 #endif
diff --git a/indra/llui/llmenugl.cpp b/indra/llui/llmenugl.cpp
index 723899e4af16d9a781a3b9ba02df1c98fe2aac8e..fdd0f8096c2b8e95e2d45939286c38c6d24092e1 100644
--- a/indra/llui/llmenugl.cpp
+++ b/indra/llui/llmenugl.cpp
@@ -577,10 +577,6 @@ void LLMenuItemGL::onVisibilityChange(BOOL new_visibility)
 //
 // This class represents a separator.
 //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-LLMenuItemSeparatorGL::Params::Params()
-{
-}
-
 LLMenuItemSeparatorGL::LLMenuItemSeparatorGL(const LLMenuItemSeparatorGL::Params& p) :
 	LLMenuItemGL( p )
 {
@@ -3917,10 +3913,6 @@ LLTearOffMenu::LLTearOffMenu(LLMenuGL* menup) :
 	mCloseSignal.connect(boost::bind(&LLTearOffMenu::closeTearOff, this));
 }
 
-LLTearOffMenu::~LLTearOffMenu()
-{
-}
-
 void LLTearOffMenu::draw()
 {
 	mMenu->setBackgroundVisible(isBackgroundOpaque());
diff --git a/indra/llui/llmenugl.h b/indra/llui/llmenugl.h
index c76a387aaa47fa9e069c9f5a7a4068e3af301f66..6c63f2b29ccac82a35e56b13c69124ad246ae0d9 100644
--- a/indra/llui/llmenugl.h
+++ b/indra/llui/llmenugl.h
@@ -234,7 +234,7 @@ class LLMenuItemSeparatorGL : public LLMenuItemGL
 public:
 	struct Params : public LLInitParam::Block<Params, LLMenuItemGL::Params>
 	{
-		Params();
+		Params() = default;
 	};
 	LLMenuItemSeparatorGL(const LLMenuItemSeparatorGL::Params& p = LLMenuItemSeparatorGL::Params());
 
@@ -704,7 +704,7 @@ class LLContextMenu
 	friend class LLUICtrlFactory;
 
 public:
-	virtual ~LLContextMenu() {}
+	virtual ~LLContextMenu() = default;
 
 	// LLView Functionality
 	// can't set visibility directly, must call show or hide
@@ -821,7 +821,7 @@ class LLMenuHolderGL : public LLPanel
 	struct Params : public LLInitParam::Block<Params, LLPanel::Params>
 	{};
 	LLMenuHolderGL(const Params& p);
-	virtual ~LLMenuHolderGL() {}
+	virtual ~LLMenuHolderGL() = default;
 
 	virtual BOOL hideMenus();
 	void reshape(S32 width, S32 height, BOOL called_from_parent = TRUE);
@@ -863,7 +863,7 @@ class LLTearOffMenu : public LLFloater
 {
 public:
 	static LLTearOffMenu* create(LLMenuGL* menup);
-	virtual ~LLTearOffMenu();
+	virtual ~LLTearOffMenu() = default;
 
 	virtual void draw(void);
 	virtual void onFocusReceived();
@@ -912,9 +912,9 @@ class LLEditMenuHandlerMgr
 		static LLEditMenuHandlerMgr instance;
 		return instance;
 	}
-	virtual ~LLEditMenuHandlerMgr() {}
+	virtual ~LLEditMenuHandlerMgr() = default;
 private:
-	LLEditMenuHandlerMgr() {};
+	LLEditMenuHandlerMgr() = default;
 };
 
 
diff --git a/indra/llui/llmultifloater.h b/indra/llui/llmultifloater.h
index c106a6252746f6756a5a845283f839f1b0993f69..62d025298000c5d51b28af31c7984240ba6d6e56 100644
--- a/indra/llui/llmultifloater.h
+++ b/indra/llui/llmultifloater.h
@@ -39,7 +39,7 @@ class LLMultiFloater : public LLFloater
 {
 public:
 	LLMultiFloater(const LLSD& key, const Params& params = getDefaultParams());
-	virtual ~LLMultiFloater() {};
+	virtual ~LLMultiFloater() = default;
 	
 	void buildTabContainer();
 	
diff --git a/indra/llui/llnotifications.h b/indra/llui/llnotifications.h
index 70cc7c57e173e411d5769f3a784744ab02926457..2337da531a396730383b5126c1c9c257774818a2 100644
--- a/indra/llui/llnotifications.h
+++ b/indra/llui/llnotifications.h
@@ -118,8 +118,8 @@ struct NotificationPriorityValues : public LLInitParam::TypeValuesHelper<ENotifi
 class LLNotificationResponderInterface
 {
 public:
-	LLNotificationResponderInterface(){};
-	virtual ~LLNotificationResponderInterface(){};
+	LLNotificationResponderInterface()= default;
+	virtual ~LLNotificationResponderInterface()= default;
 
 	virtual void handleRespond(const LLSD& notification, const LLSD& response) = 0;
 
@@ -145,7 +145,7 @@ class LLNotificationContext : public LLInstanceTracker<LLNotificationContext, LL
 	{
 	}
 
-	virtual ~LLNotificationContext() {}
+	virtual ~LLNotificationContext() = default;
 
 	LLSD asLLSD() const
 	{
@@ -646,7 +646,7 @@ friend class LLNotifications;
 
 	bool matchesTag(std::string_view tag);
 
-	virtual ~LLNotification() {}
+	virtual ~LLNotification() = default;
 };
 
 std::ostream& operator<<(std::ostream& s, const LLNotification& notification);
@@ -839,7 +839,7 @@ class LLNotificationChannel :
 	LLNotificationChannel(const Params& p = Params());
 	LLNotificationChannel(const std::string& name, const std::string& parent, LLNotificationFilter filter);
 
-	virtual ~LLNotificationChannel() {}
+	virtual ~LLNotificationChannel() = default;
 	typedef LLNotificationSet::iterator Iterator;
     
 	std::string getName() const { return mName; }
@@ -885,7 +885,7 @@ class LLNotifications final :
 {
 	LLSINGLETON(LLNotifications);
 	LOG_CLASS(LLNotifications);
-	virtual ~LLNotifications() {}
+	virtual ~LLNotifications() = default;
 
 public:
 
diff --git a/indra/llui/llnotificationslistener.cpp b/indra/llui/llnotificationslistener.cpp
index 69bcc25e6626345be4491ec626f6e5d40c778089..4671ba5609cd758676104e6ea277fff87cd79597 100644
--- a/indra/llui/llnotificationslistener.cpp
+++ b/indra/llui/llnotificationslistener.cpp
@@ -81,10 +81,6 @@ LLNotificationsListener::LLNotificationsListener(LLNotifications & notifications
 
 // This is here in the .cpp file so we don't need the definition of class
 // Forwarder in the header file.
-LLNotificationsListener::~LLNotificationsListener()
-{
-}
-
 void LLNotificationsListener::requestAdd(const LLSD& event_data) const
 {
 	if(event_data.has("reply"))
diff --git a/indra/llui/llnotificationslistener.h b/indra/llui/llnotificationslistener.h
index 4bab3776264d2143412b2a6eb88b4de6fee6d716..3bd43d01c37c06dd61da96fe1936906e86f2ddbc 100644
--- a/indra/llui/llnotificationslistener.h
+++ b/indra/llui/llnotificationslistener.h
@@ -41,7 +41,7 @@ class LLNotificationsListener : public LLEventAPI
 {
 public:
     LLNotificationsListener(LLNotifications & notifications);
-    ~LLNotificationsListener();
+    ~LLNotificationsListener() = default;
 
 private:
     void requestAdd(LLSD const & event_data) const;
diff --git a/indra/llui/llradiogroup.cpp b/indra/llui/llradiogroup.cpp
index 2c7e7ab13d8d2c88e531e0a45ae6a563f313aa15..0835c8da322c74444662dbf38825e98d7cc04b2d 100644
--- a/indra/llui/llradiogroup.cpp
+++ b/indra/llui/llradiogroup.cpp
@@ -50,7 +50,7 @@ class LLRadioCtrl : public LLCheckBoxCtrl
 {
 public:
 	typedef LLRadioGroup::ItemParams Params;
-	/*virtual*/ ~LLRadioCtrl();
+	/*virtual*/ ~LLRadioCtrl() = default;
 	/*virtual*/ void setValue(const LLSD& value);
 
 	/*virtual*/ BOOL postBuild();
@@ -113,11 +113,6 @@ void LLRadioGroup::initFromParams(const Params& p)
 	LLUICtrl::initFromParams(p);
 }
 
-
-LLRadioGroup::~LLRadioGroup()
-{
-}
-
 // virtual
 BOOL LLRadioGroup::postBuild()
 {
@@ -493,10 +488,6 @@ BOOL LLRadioCtrl::handleMouseDown(S32 x, S32 y, MASK mask)
     return LLCheckBoxCtrl::handleMouseDown(x, y, mask);
 }
 
-LLRadioCtrl::~LLRadioCtrl()
-{
-}
-
 void LLRadioCtrl::setValue(const LLSD& value)
 {
 	LLCheckBoxCtrl::setValue(value);
diff --git a/indra/llui/llradiogroup.h b/indra/llui/llradiogroup.h
index dcb2f43bfecfeec281a646f69c551db04d0ab762..1042f4ae13acd1c6ba4dd52ff0b518641233464d 100644
--- a/indra/llui/llradiogroup.h
+++ b/indra/llui/llradiogroup.h
@@ -62,7 +62,7 @@ class LLRadioGroup
 
 	/*virtual*/ void initFromParams(const Params&);
 
-	virtual ~LLRadioGroup();
+	virtual ~LLRadioGroup() = default;
 	
 	virtual BOOL postBuild();
 	
diff --git a/indra/llui/llscrolllistcell.cpp b/indra/llui/llscrolllistcell.cpp
index 13839da400e504f3e369d034cf916e9d6c163eec..11d4be3c198ea1f8febc4647a41f25f5598f1161 100644
--- a/indra/llui/llscrolllistcell.cpp
+++ b/indra/llui/llscrolllistcell.cpp
@@ -89,10 +89,6 @@ LLScrollListIcon::LLScrollListIcon(const LLScrollListCell::Params& p)
 	mAlignment(p.font_halign)
 {}
 
-LLScrollListIcon::~LLScrollListIcon()
-{
-}
-
 /*virtual*/
 S32		LLScrollListIcon::getHeight() const
 { return mIcon ? mIcon->getHeight() : 0; }
@@ -452,10 +448,6 @@ LLScrollListIconText::LLScrollListIconText(const LLScrollListCell::Params& p)
     mTextWidth = getWidth() - mPad /*padding*/ - mFont->getLineHeight();
 }
 
-LLScrollListIconText::~LLScrollListIconText()
-{
-}
-
 const LLSD LLScrollListIconText::getValue() const
 {
     if (mIcon.isNull())
diff --git a/indra/llui/llscrolllistcell.h b/indra/llui/llscrolllistcell.h
index 19576fb247adf131a06e44c6e34cb06dbf74f368..ac94818afb4c38bfe1faccd02416e177edc887bc 100644
--- a/indra/llui/llscrolllistcell.h
+++ b/indra/llui/llscrolllistcell.h
@@ -91,7 +91,7 @@ class LLScrollListCell
 	static LLScrollListCell* create(const Params&);
 
 	LLScrollListCell(const LLScrollListCell::Params&);
-	virtual ~LLScrollListCell() {};
+	virtual ~LLScrollListCell() = default;
 
 	virtual void			draw(const LLColor4& color, const LLColor4& highlight_color) const {};		// truncate to given width, if possible
 	virtual S32				getWidth() const {return mWidth;}
@@ -121,7 +121,7 @@ class LLScrollListSpacer : public LLScrollListCell
 {
 public:
 	LLScrollListSpacer(const LLScrollListCell::Params& p) : LLScrollListCell(p) {}
-	/*virtual*/ ~LLScrollListSpacer() {};
+	/*virtual*/ ~LLScrollListSpacer() = default;
 	/*virtual*/ void			draw(const LLColor4& color, const LLColor4& highlight_color) const {}
 };
 
@@ -178,7 +178,7 @@ class LLScrollListIcon : public LLScrollListCell
 {
 public:
 	LLScrollListIcon(const LLScrollListCell::Params& p);
-	/*virtual*/ ~LLScrollListIcon();
+	/*virtual*/ ~LLScrollListIcon() = default;
 	/*virtual*/ void	draw(const LLColor4& color, const LLColor4& highlight_color) const;
 	/*virtual*/ S32		getWidth() const;
 	/*virtual*/ S32		getHeight() const;
@@ -234,7 +234,7 @@ class LLScrollListIconText : public LLScrollListText
 {
 public:
     LLScrollListIconText(const LLScrollListCell::Params& p);
-    /*virtual*/ ~LLScrollListIconText();
+    /*virtual*/ ~LLScrollListIconText() = default;
     /*virtual*/ void	draw(const LLColor4& color, const LLColor4& highlight_color) const;
     /*virtual*/ const LLSD		getValue() const;
     /*virtual*/ void	setValue(const LLSD& value);
diff --git a/indra/llui/llscrolllistcolumn.cpp b/indra/llui/llscrolllistcolumn.cpp
index 70b15ebfc39ae47e1e565130c128b875eb16a097..bddf1b074b469cee90f68be91d9eb08deaed3b02 100644
--- a/indra/llui/llscrolllistcolumn.cpp
+++ b/indra/llui/llscrolllistcolumn.cpp
@@ -68,9 +68,6 @@ LLScrollColumnHeader::LLScrollColumnHeader(const LLScrollColumnHeader::Params& p
 	addChild(mResizeBar);
 }
 
-LLScrollColumnHeader::~LLScrollColumnHeader()
-{}
-
 void LLScrollColumnHeader::draw()
 {
 	const std::string& sort_column = mColumn->mParentCtrl->getSortColumnName();
diff --git a/indra/llui/llscrolllistcolumn.h b/indra/llui/llscrolllistcolumn.h
index b4d4a6d05e7b8168702dfc96356d01669816ebbb..cc29db0b70262f029a27edb346d349541c0e1c70 100644
--- a/indra/llui/llscrolllistcolumn.h
+++ b/indra/llui/llscrolllistcolumn.h
@@ -47,7 +47,7 @@ class LLScrollColumnHeader : public LLButton
 		Params();
 	};
 	LLScrollColumnHeader(const Params&);
-	~LLScrollColumnHeader();
+	~LLScrollColumnHeader() = default;
 
 	/*virtual*/ void draw();
 	/*virtual*/ BOOL handleDoubleClick(S32 x, S32 y, MASK mask);
diff --git a/indra/llui/llsearcheditor.h b/indra/llui/llsearcheditor.h
index c0f3c1d60cbb3edc9c0758a672cade3c8f3c35f8..8096ebf2bcba330c3f2a7b1413f9ea35e33c6794 100644
--- a/indra/llui/llsearcheditor.h
+++ b/indra/llui/llsearcheditor.h
@@ -74,7 +74,7 @@ class LLSearchEditor : public LLUICtrl
 	friend class LLUICtrlFactory;
 
 public:
-	virtual ~LLSearchEditor() {}
+	virtual ~LLSearchEditor() = default;
 
 	/*virtual*/ void	draw();
 
diff --git a/indra/llui/llspinctrl.h b/indra/llui/llspinctrl.h
index cab99c35bd8ff5f779632488ad116bec9c1d8f8e..a61b35c88e7b365ed71d1c0cffa1f3e55e3de663 100644
--- a/indra/llui/llspinctrl.h
+++ b/indra/llui/llspinctrl.h
@@ -59,7 +59,7 @@ class LLSpinCtrl
 	LLSpinCtrl(const Params&);
 	friend class LLUICtrlFactory;
 public:
-	virtual ~LLSpinCtrl() {} // Children all cleaned up by default view destructor.
+	virtual ~LLSpinCtrl() = default; // Children all cleaned up by default view destructor.
 
 	virtual void    forceSetValue(const LLSD& value ) ;
 	virtual void	setValue(const LLSD& value );
diff --git a/indra/llui/lltextbase.cpp b/indra/llui/lltextbase.cpp
index 30786e56f257993cd74f992463fbc831932eb06a..f14192b405b7bcadc5986c41086c060bedcf896d 100644
--- a/indra/llui/lltextbase.cpp
+++ b/indra/llui/lltextbase.cpp
@@ -3389,10 +3389,6 @@ boost::signals2::connection LLTextBase::setIsObjectBlockedCallback(const is_bloc
 //
 // LLTextSegment
 //
-
-LLTextSegment::~LLTextSegment()
-{}
-
 bool LLTextSegment::getDimensionsF32(S32 first_char, S32 num_chars, F32& width, S32& height) const { width = 0; height = 0; return false; }
 bool LLTextSegment::getDimensions(S32 first_char, S32 num_chars, S32& width, S32& height) const
 {
@@ -3911,9 +3907,6 @@ LLLineBreakTextSegment::LLLineBreakTextSegment(LLStyleConstSP style,S32 pos):LLT
 {
 	mFontHeight = style->getFont()->getLineHeight();
 }
-LLLineBreakTextSegment::~LLLineBreakTextSegment()
-{
-}
 bool LLLineBreakTextSegment::getDimensionsF32(S32 first_char, S32 num_chars, F32& width, S32& height) const
 {
 	width = 0;
@@ -3937,10 +3930,6 @@ LLImageTextSegment::LLImageTextSegment(LLStyleConstSP style,S32 pos,class LLText
 {
 }
 
-LLImageTextSegment::~LLImageTextSegment()
-{
-}
-
 static const S32 IMAGE_HPAD = 3;
 
 bool LLImageTextSegment::getDimensionsF32(S32 first_char, S32 num_chars, F32& width, S32& height) const
diff --git a/indra/llui/lltextbase.h b/indra/llui/lltextbase.h
index 3ef7b6ce51f4bbb2c0f977e16416c18ee592a615..7d9ea43edb217607ef6a2fae0ceffba457cc640b 100644
--- a/indra/llui/lltextbase.h
+++ b/indra/llui/lltextbase.h
@@ -63,7 +63,7 @@ class LLTextSegment
 	:	mStart(start), 
 		mEnd(end)
 	{}
-	virtual ~LLTextSegment();
+	virtual ~LLTextSegment() = default;
 	bool						getDimensions(S32 first_char, S32 num_chars, S32& width, S32& height) const;
 
 	virtual bool				getDimensionsF32(S32 first_char, S32 num_chars, F32& width, S32& height) const;
@@ -240,7 +240,7 @@ class LLLineBreakTextSegment : public LLTextSegment
 
 	LLLineBreakTextSegment(LLStyleConstSP style,S32 pos);
 	LLLineBreakTextSegment(S32 pos);
-	~LLLineBreakTextSegment();
+	~LLLineBreakTextSegment() = default;
 	/*virtual*/ bool		getDimensionsF32(S32 first_char, S32 num_chars, F32& width, S32& height) const;
 	S32			getNumChars(S32 num_pixels, S32 segment_offset, S32 line_offset, S32 max_chars, S32 line_ind) const;
 	F32			draw(S32 start, S32 end, S32 selection_start, S32 selection_end, const LLRectf& draw_rect);
@@ -253,7 +253,7 @@ class LLImageTextSegment : public LLTextSegment
 {
 public:
 	LLImageTextSegment(LLStyleConstSP style,S32 pos,class LLTextBase& editor);
-	~LLImageTextSegment();
+	~LLImageTextSegment() = default;
 	/*virtual*/ bool		getDimensionsF32(S32 first_char, S32 num_chars, F32& width, S32& height) const;
 	S32			getNumChars(S32 num_pixels, S32 segment_offset, S32 char_offset, S32 max_chars, S32 line_ind) const;
 	F32			draw(S32 start, S32 end, S32 selection_start, S32 selection_end, const LLRectf& draw_rect);
@@ -560,7 +560,7 @@ class LLTextBase
 				mSegments.push_back(segment);
 			}
 		}
-		virtual			~TextCmd() {}
+		virtual			~TextCmd() = default;
 		virtual BOOL	execute(LLTextBase* editor, S32* delta) = 0;
 		virtual S32		undo(LLTextBase* editor) = 0;
 		virtual S32		redo(LLTextBase* editor) = 0;
diff --git a/indra/llui/lltextbox.cpp b/indra/llui/lltextbox.cpp
index d88eb05dd02f248e2497231ba3061fb612be16eb..cfe3f53b7d99ec7c13bf81724ca33a181482806f 100644
--- a/indra/llui/lltextbox.cpp
+++ b/indra/llui/lltextbox.cpp
@@ -49,9 +49,6 @@ LLTextBox::LLTextBox(const LLTextBox::Params& p)
 	mSkipTripleClick = true;
 }
 
-LLTextBox::~LLTextBox()
-{}
-
 BOOL LLTextBox::handleMouseDown(S32 x, S32 y, MASK mask)
 {
 	BOOL	handled = LLTextBase::handleMouseDown(x, y, mask);
diff --git a/indra/llui/lltextbox.h b/indra/llui/lltextbox.h
index c0da52e8b57543697acdb7b804a5ecdcae85fc5f..7a9f47eddca8a24bdd58b697cf4ca5f6018e76d5 100644
--- a/indra/llui/lltextbox.h
+++ b/indra/llui/lltextbox.h
@@ -46,7 +46,7 @@ class LLTextBox :
 	friend class LLUICtrlFactory;
 
 public:
-	virtual ~LLTextBox();
+	virtual ~LLTextBox() = default;
 
 	/*virtual*/ BOOL handleMouseDown(S32 x, S32 y, MASK mask);
 	/*virtual*/ BOOL handleMouseUp(S32 x, S32 y, MASK mask);
diff --git a/indra/llui/lltexteditor.cpp b/indra/llui/lltexteditor.cpp
index c03a646b223dc86d2d13efc59de4a40e8680a10f..b0478f9b0241510adc9f33bf667252173eee7de0 100644
--- a/indra/llui/lltexteditor.cpp
+++ b/indra/llui/lltexteditor.cpp
@@ -87,7 +87,7 @@ class LLTextEditor::TextCmdInsert : public LLTextBase::TextCmd
 		: TextCmd(pos, group_with_next, segment), mWString(ws)
 	{
 	}
-	virtual ~TextCmdInsert() {}
+	virtual ~TextCmdInsert() = default;
 	virtual BOOL execute( LLTextBase* editor, S32* delta )
 	{
 		*delta = insert(editor, getPosition(), mWString );
diff --git a/indra/llui/lltoolbar.h b/indra/llui/lltoolbar.h
index 45c783e724c0c7615174f4582af72530d181ff3b..ab72c2ca92ae269b59d3d566fea5a08dac1658e6 100644
--- a/indra/llui/lltoolbar.h
+++ b/indra/llui/lltoolbar.h
@@ -186,7 +186,7 @@ class LLToolBar final
 	public:
 		typedef boost::function<void(LLToolBarEnums::EToolBarLocation tb, const LLRect& rect)> reshape_callback_t;
 
-		virtual ~LLCenterLayoutPanel() {}
+		virtual ~LLCenterLayoutPanel() = default;
 		/*virtual*/ void handleReshape(const LLRect& rect, bool by_user) override;
 
 		void setLocationId(LLToolBarEnums::EToolBarLocation id) { mLocationId = id; }
diff --git a/indra/llui/lluictrlfactory.h b/indra/llui/lluictrlfactory.h
index 59003498a06a2067ed764ba56868f2104f069d12..1c0e6ec1c24f4e1a090295e6f647af112b5c6e44 100644
--- a/indra/llui/lluictrlfactory.h
+++ b/indra/llui/lluictrlfactory.h
@@ -55,7 +55,7 @@ class LLChildRegistry : public LLRegistrySingleton<std::string, LLWidgetCreatorF
 	};
 
 protected:
-	LLChildRegistry() {}
+	LLChildRegistry() = default;
 };
 
 class LLDefaultChildRegistry final : public LLChildRegistry<LLDefaultChildRegistry>
@@ -311,7 +311,7 @@ LLUICtrlFactory::ParamDefaults<PARAM_BLOCK, DUMMY>::ParamDefaults()
 }
 
 template <int DUMMY>
-LLUICtrlFactory::ParamDefaults<LLInitParam::BaseBlock, DUMMY>::ParamDefaults() {}
+LLUICtrlFactory::ParamDefaults<LLInitParam::BaseBlock, DUMMY>::ParamDefaults() = default;
 
 // this is here to make gcc happy with reference to LLUICtrlFactory
 template<typename DERIVED>
diff --git a/indra/llui/llundo.h b/indra/llui/llundo.h
index a6da55012675f0efddc985a53d67fa47a1d909d8..605946d4cb3dd15083dbdaf6ac634ac2e88a2902 100644
--- a/indra/llui/llundo.h
+++ b/indra/llui/llundo.h
@@ -40,7 +40,7 @@ class LLUndoBuffer
 		virtual void cleanup() {};
 	protected:
 		LLUndoAction(): mClusterID(0) {};
-		virtual ~LLUndoAction(){};
+		virtual ~LLUndoAction()= default;
 	private:
 		S32		mClusterID;
 	};
diff --git a/indra/llui/llurlentry.cpp b/indra/llui/llurlentry.cpp
index 508c5317763a0634641ea8bbe26aedd8b67a63e6..a509bb3b8a37bd6987f677d94fbd6a208a17eeec 100644
--- a/indra/llui/llurlentry.cpp
+++ b/indra/llui/llurlentry.cpp
@@ -46,15 +46,6 @@
 // Utility functions
 std::string localize_slapp_label(const std::string& url, const std::string& full_name);
 
-
-LLUrlEntryBase::LLUrlEntryBase()
-{
-}
-
-LLUrlEntryBase::~LLUrlEntryBase()
-{
-}
-
 std::string LLUrlEntryBase::getUrl(const std::string &string) const
 {
 	return escapeUrl(string);
@@ -749,9 +740,6 @@ std::string LLUrlEntryAgent::getIcon(const std::string &url)
 // secondlife:///app/agent/0e346d8b-4433-4d66-a6b0-fd37083abc4c/(completename|displayname|username)
 // x-grid-location-info://lincoln.lindenlab.com/app/agent/0e346d8b-4433-4d66-a6b0-fd37083abc4c/(completename|displayname|username)
 //
-LLUrlEntryAgentName::LLUrlEntryAgentName()
-{}
-
 void LLUrlEntryAgentName::onAvatarNameCache(const LLUUID& id,
 										const LLAvatarName& av_name)
 {
diff --git a/indra/llui/llurlentry.h b/indra/llui/llurlentry.h
index 12ee0e575623e9ec19e3999dbf680069a2d141ff..84093e8e7e3823d56de0c4f31e06d0e841ced2ec 100644
--- a/indra/llui/llurlentry.h
+++ b/indra/llui/llurlentry.h
@@ -66,8 +66,8 @@ typedef LLUrlLabelSignal::slot_type LLUrlLabelCallback;
 class LLUrlEntryBase
 {
 public:
-	LLUrlEntryBase();
-	virtual ~LLUrlEntryBase();
+	LLUrlEntryBase() = default;
+	virtual ~LLUrlEntryBase() = default;
 	
 	/// Return the regex pattern that matches this Url 
 	boost::regex getPattern() const { return mPattern; }
@@ -243,7 +243,7 @@ class LLUrlEntryAgent : public LLUrlEntryBase
 class LLUrlEntryAgentName : public LLUrlEntryBase, public boost::signals2::trackable
 {
 public:
-	LLUrlEntryAgentName();
+	LLUrlEntryAgentName() = default;
 	~LLUrlEntryAgentName()
 	{
 		for (avatar_name_cache_connection_map_t::iterator it = mAvatarNameCacheConnections.begin(); it != mAvatarNameCacheConnections.end(); ++it)
diff --git a/indra/llui/llview.cpp b/indra/llui/llview.cpp
index 3d17955327b93f740aaf2725111fba82529e669d..a578e71fa07cb70f596fb6bd66b45f1af5b13c20 100644
--- a/indra/llui/llview.cpp
+++ b/indra/llui/llview.cpp
@@ -1940,7 +1940,7 @@ class CompareByTabOrder
 		:	mTabOrder(order),
 		mDefaultTabGroup(default_tab_group)
 	{}
-	virtual ~CompareByTabOrder() {}
+	virtual ~CompareByTabOrder() = default;
 
 	// This method compares two LLViews by the tab order specified in the comparator object.  The
 	// code for this is a little convoluted because each argument can have four states:
diff --git a/indra/llui/llviewmodel.h b/indra/llui/llviewmodel.h
index 7d843c6f50c52fca54a8a7a8321024cc51709fb0..579fe34c288624fe678fcb1eda960441d46c9346 100644
--- a/indra/llui/llviewmodel.h
+++ b/indra/llui/llviewmodel.h
@@ -130,7 +130,7 @@ class LLTextViewModel: public LLViewModel
 class LLListViewModel: public LLViewModel
 {
 public:
-    LLListViewModel() {}
+    LLListViewModel() = default;
     LLListViewModel(const LLSD& values);
 
     virtual void addColumn(const LLSD& column, EAddPosition pos = ADD_BOTTOM);
diff --git a/indra/llui/llviewquery.h b/indra/llui/llviewquery.h
index e93cac6bd8c269a4cee146b9ab16a3d99b08dcc2..e7ad07886b4d0b7dd0b3518d41c963c2243def60 100644
--- a/indra/llui/llviewquery.h
+++ b/indra/llui/llviewquery.h
@@ -41,14 +41,14 @@ typedef std::pair<BOOL, BOOL>		filterResult_t;
 class LLQueryFilter
 {
 public:
-	virtual ~LLQueryFilter() {};
+	virtual ~LLQueryFilter() = default;
 	virtual filterResult_t operator() (const LLView* const view, const viewList_t & children) const = 0;
 };
 
 class LLQuerySorter
 {
 public:
-	virtual ~LLQuerySorter() {};
+	virtual ~LLQuerySorter() = default;
 	virtual void sort(LLView * parent, viewList_t &children) const;
 };
 
@@ -107,7 +107,7 @@ class LLViewQuery
 	typedef filterList_t::const_iterator		filterList_const_iter_t;
 
 	LLViewQuery() : mPreFilters(), mPostFilters(), mSorterp() {}
-	virtual ~LLViewQuery() {}
+	virtual ~LLViewQuery() = default;
 
 	void addPreFilter(const LLQueryFilter* prefilter) { mPreFilters.push_back(prefilter); }
 	void addPostFilter(const LLQueryFilter* postfilter) { mPostFilters.push_back(postfilter); }
diff --git a/indra/llui/llvirtualtrackball.cpp b/indra/llui/llvirtualtrackball.cpp
index 6e0aef740d5a06d40f7018e34e43c720c4043256..b484b6fdb4c06b28a3abc7b82772e96af9560b67 100644
--- a/indra/llui/llvirtualtrackball.cpp
+++ b/indra/llui/llvirtualtrackball.cpp
@@ -161,10 +161,6 @@ LLVirtualTrackball::LLVirtualTrackball(const LLVirtualTrackball::Params& p)
     addChild(mTouchArea);
 }
 
-LLVirtualTrackball::~LLVirtualTrackball()
-{
-}
-
 BOOL LLVirtualTrackball::postBuild()
 {
     return TRUE;
diff --git a/indra/llui/llvirtualtrackball.h b/indra/llui/llvirtualtrackball.h
index c7a893877b9c032cc113f58b42f912613b824141..9327ed9579981961b0f49ccc9c1c66bef1bee0d0 100644
--- a/indra/llui/llvirtualtrackball.h
+++ b/indra/llui/llvirtualtrackball.h
@@ -78,7 +78,7 @@ class LLVirtualTrackball
     };
 
 
-    virtual ~LLVirtualTrackball();
+    virtual ~LLVirtualTrackball() = default;
     /*virtual*/ BOOL postBuild();
 
     virtual BOOL    handleHover(S32 x, S32 y, MASK mask);
diff --git a/indra/llui/llxuiparser.cpp b/indra/llui/llxuiparser.cpp
index 8ae13f76ee9a9337f9145376c74da1df447422c2..9c8105037468c41f5f5e996b39c2673e0cac7de2 100644
--- a/indra/llui/llxuiparser.cpp
+++ b/indra/llui/llxuiparser.cpp
@@ -333,8 +333,6 @@ LLXSDWriter::LLXSDWriter()
 	registerInspectFunc<LLSD>(boost::bind(&LLXSDWriter::writeAttribute, this, "xs:string", _1, _2, _3, _4));
 }
 
-LLXSDWriter::~LLXSDWriter() {}
-
 void LLXSDWriter::writeXSD(const std::string& type_name, LLXMLNodePtr node, const LLInitParam::BaseBlock& block, const std::string& xml_namespace)
 {
 	Schema schema(xml_namespace);
@@ -1377,11 +1375,6 @@ LLSimpleXUIParser::LLSimpleXUIParser(LLSimpleXUIParser::element_start_callback_t
 	}
 }
 
-LLSimpleXUIParser::~LLSimpleXUIParser()
-{
-}
-
-
 bool LLSimpleXUIParser::readXUI(const std::string& filename, LLInitParam::BaseBlock& block, bool silent)
 {
 	LL_RECORD_BLOCK_TIME(FTM_PARSE_XUI);
diff --git a/indra/llui/llxuiparser.h b/indra/llui/llxuiparser.h
index 16db98cd1c8aacff036337dde0e564fa5e64de5c..dd302b74aa7e88251ab5d29248c9d247783790cc 100644
--- a/indra/llui/llxuiparser.h
+++ b/indra/llui/llxuiparser.h
@@ -66,7 +66,7 @@ class LLXSDWriter : public LLInitParam::Parser
 	/*virtual*/ std::string getCurrentElementName() { return LLStringUtil::null; }
 	/*virtual*/ std::string getCurrentFileName() { return LLStringUtil::null; }
 	LLXSDWriter();
-	~LLXSDWriter();
+	~LLXSDWriter() = default;
 
 protected:
 	void writeAttribute(const std::string& type, const Parser::name_stack_t&, S32 min_count, S32 max_count, const std::vector<std::string>* possible_values);
@@ -202,7 +202,7 @@ LOG_CLASS(LLSimpleXUIParser);
 	typedef LLInitParam::BaseBlock* (*element_start_callback_t)(LLSimpleXUIParser&, const char* block_name);
 
 	LLSimpleXUIParser(element_start_callback_t element_cb = NULL);
-	virtual ~LLSimpleXUIParser();
+	virtual ~LLSimpleXUIParser() = default;
 
 	/*virtual*/ std::string getCurrentElementName();
 	/*virtual*/ std::string getCurrentFileName() { return mCurFileName; }
diff --git a/indra/llui/llxyvector.cpp b/indra/llui/llxyvector.cpp
index d7ba243e1d37c11d05195e67d417fb449d3bde5b..acaba580ec5dec956ad4bdd419d05ae636b744e6 100644
--- a/indra/llui/llxyvector.cpp
+++ b/indra/llui/llxyvector.cpp
@@ -138,10 +138,6 @@ LLXYVector::LLXYVector(const LLXYVector::Params& p)
     addChild(mTouchArea);
 }
 
-LLXYVector::~LLXYVector()
-{
-}
-
 BOOL LLXYVector::postBuild()
 {
     mLogScaleX = (2 * log(mMaxValueX)) / mTouchArea->getRect().getWidth();
diff --git a/indra/llui/llxyvector.h b/indra/llui/llxyvector.h
index bb3822dd260800271206c4315ee80e614a0cd424..238575197c65ae33261d653796b3da81db21ea0a 100644
--- a/indra/llui/llxyvector.h
+++ b/indra/llui/llxyvector.h
@@ -65,7 +65,7 @@ class LLXYVector
     };
 
 
-    virtual ~LLXYVector();
+    virtual ~LLXYVector() = default;
     /*virtual*/ BOOL postBuild();
 
     virtual BOOL	handleHover(S32 x, S32 y, MASK mask);
diff --git a/indra/newview/llavatarlist.h b/indra/newview/llavatarlist.h
index dcf3140d99d1d7b270ac31009b966b1dc96c874a..694db204f3aec2a484289d7e2528416ed7d3ec52 100644
--- a/indra/newview/llavatarlist.h
+++ b/indra/newview/llavatarlist.h
@@ -108,7 +108,7 @@ class LLAvatarList final : public LLFlatListViewEx
 
 	boost::signals2::connection setItemDoubleClickCallback(const mouse_signal_t::slot_type& cb);
 
-	virtual S32 notifyParent(const LLSD& info);
+    S32 notifyParent(const LLSD& info) override;
 
 	void handleDisplayNamesOptionChanged();