Run clang-tidy modernize-use-equals-{delete,default} on //base

See the bugs and cxx post for justification and details:
https://groups.google.com/a/chromium.org/forum/#!topic/cxx/RkOHzIK6Tq8

This change was done using clang-tidy as described here:
https://chromium.googlesource.com/chromium/src/+/lkcr/docs/clang_tidy.md

In some cases the the tool leaves behind a string of commas where it
replaced a member initializer list
(https://bugs.llvm.org/show_bug.cgi?id=35051). They were cleaned up with:
  git diff --name-only | \
    xargs sed -E -i 's/(^\s*|\)\s*):[ ,]*= default/\1 = default/'

BUG=778959,778957

Change-Id: I95a3f3dae4796e4a7beb77793a6101f433a2c649
Reviewed-on: https://chromium-review.googlesource.com/789718
Reviewed-by: Daniel Cheng <dcheng@chromium.org>
Commit-Queue: Chris Watkins <watk@chromium.org>
Cr-Commit-Position: refs/heads/master@{#520033}

CrOS-Libchrome-Original-Commit: bb7211cd3762a8545d29b0d5bfebcb94ec4db081
diff --git a/base/bind_unittest.cc b/base/bind_unittest.cc
index ef948c1..7deba47 100644
--- a/base/bind_unittest.cc
+++ b/base/bind_unittest.cc
@@ -31,7 +31,7 @@
 
 class NoRef {
  public:
-  NoRef() {}
+  NoRef() = default;
 
   MOCK_METHOD0(VoidMethod0, void());
   MOCK_CONST_METHOD0(VoidConstMethod0, void());
@@ -49,7 +49,7 @@
 
 class HasRef : public NoRef {
  public:
-  HasRef() {}
+  HasRef() = default;
 
   MOCK_CONST_METHOD0(AddRef, void());
   MOCK_CONST_METHOD0(Release, bool());
@@ -61,7 +61,7 @@
 
 class HasRefPrivateDtor : public HasRef {
  private:
-  ~HasRefPrivateDtor() {}
+  ~HasRefPrivateDtor() = default;
 };
 
 static const int kParentValue = 1;
@@ -196,11 +196,8 @@
  public:
   CopyCounter(int* copies, int* assigns)
       : counter_(copies, assigns, nullptr, nullptr) {}
-  CopyCounter(const CopyCounter& other) : counter_(other.counter_) {}
-  CopyCounter& operator=(const CopyCounter& other) {
-    counter_ = other.counter_;
-    return *this;
-  }
+  CopyCounter(const CopyCounter& other) = default;
+  CopyCounter& operator=(const CopyCounter& other) = default;
 
   explicit CopyCounter(const DerivedCopyMoveCounter& other) : counter_(other) {}
 
@@ -321,8 +318,7 @@
     static_func_mock_ptr = &static_func_mock_;
   }
 
-  virtual ~BindTest() {
-  }
+  virtual ~BindTest() = default;
 
   static void VoidFunc0() {
     static_func_mock_ptr->VoidMethod0();
diff --git a/base/callback_helpers.cc b/base/callback_helpers.cc
index 1f87a6c..9086731 100644
--- a/base/callback_helpers.cc
+++ b/base/callback_helpers.cc
@@ -6,7 +6,7 @@
 
 namespace base {
 
-ScopedClosureRunner::ScopedClosureRunner() {}
+ScopedClosureRunner::ScopedClosureRunner() = default;
 
 ScopedClosureRunner::ScopedClosureRunner(OnceClosure closure)
     : closure_(std::move(closure)) {}
diff --git a/base/callback_internal.cc b/base/callback_internal.cc
index 864c1a0..0179bb7 100644
--- a/base/callback_internal.cc
+++ b/base/callback_internal.cc
@@ -71,7 +71,7 @@
   DCHECK(!bind_state_.get() || bind_state_->HasOneRef());
 }
 
-CallbackBase::~CallbackBase() {}
+CallbackBase::~CallbackBase() = default;
 
 CallbackBaseCopyable::CallbackBaseCopyable(const CallbackBaseCopyable& c)
     : CallbackBase(nullptr) {
diff --git a/base/callback_unittest.cc b/base/callback_unittest.cc
index f76adbc..c07d3ee 100644
--- a/base/callback_unittest.cc
+++ b/base/callback_unittest.cc
@@ -25,7 +25,7 @@
   FakeBindState() : BindStateBase(&NopInvokeFunc, &Destroy, &IsCancelled) {}
 
  private:
-  ~FakeBindState() {}
+  ~FakeBindState() = default;
   static void Destroy(const internal::BindStateBase* self) {
     delete static_cast<const FakeBindState*>(self);
   }
@@ -41,7 +41,7 @@
   CallbackTest()
       : callback_a_(new FakeBindState()), callback_b_(new FakeBindState()) {}
 
-  ~CallbackTest() override {}
+  ~CallbackTest() override = default;
 
  protected:
   Callback<void()> callback_a_;
diff --git a/base/cancelable_callback_unittest.cc b/base/cancelable_callback_unittest.cc
index e793a83..373498c 100644
--- a/base/cancelable_callback_unittest.cc
+++ b/base/cancelable_callback_unittest.cc
@@ -23,7 +23,8 @@
 class TestRefCounted : public RefCountedThreadSafe<TestRefCounted> {
  private:
   friend class RefCountedThreadSafe<TestRefCounted>;
-  ~TestRefCounted() {};
+  ~TestRefCounted() = default;
+  ;
 };
 
 void Increment(int* count) { (*count)++; }
diff --git a/base/command_line.cc b/base/command_line.cc
index 69c5fb1..3a5d089 100644
--- a/base/command_line.cc
+++ b/base/command_line.cc
@@ -174,21 +174,11 @@
   InitFromArgv(argv);
 }
 
-CommandLine::CommandLine(const CommandLine& other)
-    : argv_(other.argv_),
-      switches_(other.switches_),
-      begin_args_(other.begin_args_) {
-}
+CommandLine::CommandLine(const CommandLine& other) = default;
 
-CommandLine& CommandLine::operator=(const CommandLine& other) {
-  argv_ = other.argv_;
-  switches_ = other.switches_;
-  begin_args_ = other.begin_args_;
-  return *this;
-}
+CommandLine& CommandLine::operator=(const CommandLine& other) = default;
 
-CommandLine::~CommandLine() {
-}
+CommandLine::~CommandLine() = default;
 
 #if defined(OS_WIN)
 // static
diff --git a/base/containers/linked_list_unittest.cc b/base/containers/linked_list_unittest.cc
index 4b40fbf..3470c86 100644
--- a/base/containers/linked_list_unittest.cc
+++ b/base/containers/linked_list_unittest.cc
@@ -28,7 +28,7 @@
 class MultipleInheritanceNode : public MultipleInheritanceNodeBase,
                                 public LinkNode<MultipleInheritanceNode> {
  public:
-  MultipleInheritanceNode() {}
+  MultipleInheritanceNode() = default;
 };
 
 // Checks that when iterating |list| (either from head to tail, or from
diff --git a/base/containers/small_map_unittest.cc b/base/containers/small_map_unittest.cc
index d33549f..6561851 100644
--- a/base/containers/small_map_unittest.cc
+++ b/base/containers/small_map_unittest.cc
@@ -443,7 +443,7 @@
 
 class unordered_map_add_item : public std::unordered_map<int, int> {
  public:
-  unordered_map_add_item() {}
+  unordered_map_add_item() = default;
   explicit unordered_map_add_item(const std::pair<int, int>& item) {
     insert(item);
   }
diff --git a/base/containers/stack_container_unittest.cc b/base/containers/stack_container_unittest.cc
index 2090705..b6bb9b6 100644
--- a/base/containers/stack_container_unittest.cc
+++ b/base/containers/stack_container_unittest.cc
@@ -107,7 +107,7 @@
 class AlignedData {
  public:
   AlignedData() { memset(data_, 0, alignment); }
-  ~AlignedData() {}
+  ~AlignedData() = default;
   alignas(alignment) char data_[alignment];
 };
 
diff --git a/base/debug/activity_analyzer.cc b/base/debug/activity_analyzer.cc
index 5cb7b71..d787829 100644
--- a/base/debug/activity_analyzer.cc
+++ b/base/debug/activity_analyzer.cc
@@ -41,8 +41,8 @@
 
 }  // namespace
 
-ThreadActivityAnalyzer::Snapshot::Snapshot() {}
-ThreadActivityAnalyzer::Snapshot::~Snapshot() {}
+ThreadActivityAnalyzer::Snapshot::Snapshot() = default;
+ThreadActivityAnalyzer::Snapshot::~Snapshot() = default;
 
 ThreadActivityAnalyzer::ThreadActivityAnalyzer(
     const ThreadActivityTracker& tracker)
@@ -60,7 +60,7 @@
                                  PersistentMemoryAllocator::kSizeAny),
                              allocator->GetAllocSize(reference)) {}
 
-ThreadActivityAnalyzer::~ThreadActivityAnalyzer() {}
+ThreadActivityAnalyzer::~ThreadActivityAnalyzer() = default;
 
 void ThreadActivityAnalyzer::AddGlobalInformation(
     GlobalActivityAnalyzer* global) {
@@ -87,7 +87,7 @@
   DCHECK(allocator_);
 }
 
-GlobalActivityAnalyzer::~GlobalActivityAnalyzer() {}
+GlobalActivityAnalyzer::~GlobalActivityAnalyzer() = default;
 
 // static
 std::unique_ptr<GlobalActivityAnalyzer>
@@ -298,12 +298,12 @@
   return !allocator_->IsFull();
 }
 
-GlobalActivityAnalyzer::UserDataSnapshot::UserDataSnapshot() {}
+GlobalActivityAnalyzer::UserDataSnapshot::UserDataSnapshot() = default;
 GlobalActivityAnalyzer::UserDataSnapshot::UserDataSnapshot(
     const UserDataSnapshot& rhs) = default;
 GlobalActivityAnalyzer::UserDataSnapshot::UserDataSnapshot(
     UserDataSnapshot&& rhs) = default;
-GlobalActivityAnalyzer::UserDataSnapshot::~UserDataSnapshot() {}
+GlobalActivityAnalyzer::UserDataSnapshot::~UserDataSnapshot() = default;
 
 void GlobalActivityAnalyzer::PrepareAllAnalyzers() {
   // Record the time when analysis started.
diff --git a/base/debug/activity_analyzer_unittest.cc b/base/debug/activity_analyzer_unittest.cc
index 78a8e19..e08b43a 100644
--- a/base/debug/activity_analyzer_unittest.cc
+++ b/base/debug/activity_analyzer_unittest.cc
@@ -37,7 +37,7 @@
       : ThreadActivityTracker(memset(memory.get(), 0, mem_size), mem_size),
         mem_segment_(std::move(memory)) {}
 
-  ~TestActivityTracker() override {}
+  ~TestActivityTracker() override = default;
 
  private:
   std::unique_ptr<char[]> mem_segment_;
@@ -51,7 +51,7 @@
   const int kMemorySize = 1 << 20;  // 1MiB
   const int kStackSize  = 1 << 10;  // 1KiB
 
-  ActivityAnalyzerTest() {}
+  ActivityAnalyzerTest() = default;
 
   ~ActivityAnalyzerTest() override {
     GlobalActivityTracker* global_tracker = GlobalActivityTracker::Get();
@@ -119,7 +119,7 @@
         exit_(false),
         exit_condition_(&lock_) {}
 
-  ~SimpleActivityThread() override {}
+  ~SimpleActivityThread() override = default;
 
   void Run() override {
     ThreadActivityTracker::ActivityId id =
diff --git a/base/debug/activity_tracker.cc b/base/debug/activity_tracker.cc
index 264ad6b..1b3aaee 100644
--- a/base/debug/activity_tracker.cc
+++ b/base/debug/activity_tracker.cc
@@ -120,8 +120,8 @@
 
 }  // namespace
 
-OwningProcess::OwningProcess() {}
-OwningProcess::~OwningProcess() {}
+OwningProcess::OwningProcess() = default;
+OwningProcess::~OwningProcess() = default;
 
 void OwningProcess::Release_Initialize(int64_t pid) {
   uint32_t old_id = data_id.load(std::memory_order_acquire);
@@ -185,7 +185,7 @@
   DCHECK(allocator);
 }
 
-ActivityTrackerMemoryAllocator::~ActivityTrackerMemoryAllocator() {}
+ActivityTrackerMemoryAllocator::~ActivityTrackerMemoryAllocator() = default;
 
 ActivityTrackerMemoryAllocator::Reference
 ActivityTrackerMemoryAllocator::GetObjectReference() {
@@ -276,9 +276,9 @@
 #endif
 }
 
-ActivityUserData::TypedValue::TypedValue() {}
+ActivityUserData::TypedValue::TypedValue() = default;
 ActivityUserData::TypedValue::TypedValue(const TypedValue& other) = default;
-ActivityUserData::TypedValue::~TypedValue() {}
+ActivityUserData::TypedValue::~TypedValue() = default;
 
 StringPiece ActivityUserData::TypedValue::Get() const {
   DCHECK_EQ(RAW_VALUE, type_);
@@ -323,13 +323,13 @@
 // These are required because std::atomic is (currently) not a POD type and
 // thus clang requires explicit out-of-line constructors and destructors even
 // when they do nothing.
-ActivityUserData::ValueInfo::ValueInfo() {}
+ActivityUserData::ValueInfo::ValueInfo() = default;
 ActivityUserData::ValueInfo::ValueInfo(ValueInfo&&) = default;
-ActivityUserData::ValueInfo::~ValueInfo() {}
-ActivityUserData::MemoryHeader::MemoryHeader() {}
-ActivityUserData::MemoryHeader::~MemoryHeader() {}
-ActivityUserData::FieldHeader::FieldHeader() {}
-ActivityUserData::FieldHeader::~FieldHeader() {}
+ActivityUserData::ValueInfo::~ValueInfo() = default;
+ActivityUserData::MemoryHeader::MemoryHeader() = default;
+ActivityUserData::MemoryHeader::~MemoryHeader() = default;
+ActivityUserData::FieldHeader::FieldHeader() = default;
+ActivityUserData::FieldHeader::~FieldHeader() = default;
 
 ActivityUserData::ActivityUserData() : ActivityUserData(nullptr, 0, -1) {}
 
@@ -362,7 +362,7 @@
   ImportExistingData();
 }
 
-ActivityUserData::~ActivityUserData() {}
+ActivityUserData::~ActivityUserData() = default;
 
 bool ActivityUserData::CreateSnapshot(Snapshot* output_snapshot) const {
   DCHECK(output_snapshot);
@@ -655,8 +655,8 @@
   char thread_name[32];
 };
 
-ThreadActivityTracker::Snapshot::Snapshot() {}
-ThreadActivityTracker::Snapshot::~Snapshot() {}
+ThreadActivityTracker::Snapshot::Snapshot() = default;
+ThreadActivityTracker::Snapshot::~Snapshot() = default;
 
 ThreadActivityTracker::ScopedActivity::ScopedActivity(
     ThreadActivityTracker* tracker,
@@ -758,7 +758,7 @@
   }
 }
 
-ThreadActivityTracker::~ThreadActivityTracker() {}
+ThreadActivityTracker::~ThreadActivityTracker() = default;
 
 ThreadActivityTracker::ActivityId ThreadActivityTracker::PushActivity(
     const void* program_counter,
@@ -1082,18 +1082,18 @@
 // of std::atomic because the latter can create global ctors and dtors.
 subtle::AtomicWord GlobalActivityTracker::g_tracker_ = 0;
 
-GlobalActivityTracker::ModuleInfo::ModuleInfo() {}
+GlobalActivityTracker::ModuleInfo::ModuleInfo() = default;
 GlobalActivityTracker::ModuleInfo::ModuleInfo(ModuleInfo&& rhs) = default;
 GlobalActivityTracker::ModuleInfo::ModuleInfo(const ModuleInfo& rhs) = default;
-GlobalActivityTracker::ModuleInfo::~ModuleInfo() {}
+GlobalActivityTracker::ModuleInfo::~ModuleInfo() = default;
 
 GlobalActivityTracker::ModuleInfo& GlobalActivityTracker::ModuleInfo::operator=(
     ModuleInfo&& rhs) = default;
 GlobalActivityTracker::ModuleInfo& GlobalActivityTracker::ModuleInfo::operator=(
     const ModuleInfo& rhs) = default;
 
-GlobalActivityTracker::ModuleInfoRecord::ModuleInfoRecord() {}
-GlobalActivityTracker::ModuleInfoRecord::~ModuleInfoRecord() {}
+GlobalActivityTracker::ModuleInfoRecord::ModuleInfoRecord() = default;
+GlobalActivityTracker::ModuleInfoRecord::~ModuleInfoRecord() = default;
 
 bool GlobalActivityTracker::ModuleInfoRecord::DecodeTo(
     GlobalActivityTracker::ModuleInfo* info,
@@ -1225,7 +1225,7 @@
                                                               int64_t pid)
     : ActivityUserData(memory, size, pid) {}
 
-GlobalActivityTracker::ThreadSafeUserData::~ThreadSafeUserData() {}
+GlobalActivityTracker::ThreadSafeUserData::~ThreadSafeUserData() = default;
 
 void GlobalActivityTracker::ThreadSafeUserData::Set(StringPiece name,
                                                     ValueType type,
diff --git a/base/debug/activity_tracker_unittest.cc b/base/debug/activity_tracker_unittest.cc
index 1c7ed7a..79d19db 100644
--- a/base/debug/activity_tracker_unittest.cc
+++ b/base/debug/activity_tracker_unittest.cc
@@ -33,7 +33,7 @@
       : ThreadActivityTracker(memset(memory.get(), 0, mem_size), mem_size),
         mem_segment_(std::move(memory)) {}
 
-  ~TestActivityTracker() override {}
+  ~TestActivityTracker() override = default;
 
  private:
   std::unique_ptr<char[]> mem_segment_;
@@ -49,7 +49,7 @@
 
   using ActivityId = ThreadActivityTracker::ActivityId;
 
-  ActivityTrackerTest() {}
+  ActivityTrackerTest() = default;
 
   ~ActivityTrackerTest() override {
     GlobalActivityTracker* global_tracker = GlobalActivityTracker::Get();
@@ -260,7 +260,7 @@
         data_changed_(false),
         is_running_(false) {}
 
-  ~SimpleLockThread() override {}
+  ~SimpleLockThread() override = default;
 
   void Run() override {
     ThreadActivityTracker* tracker =
@@ -401,7 +401,7 @@
         exit_(false),
         exit_condition_(&lock_) {}
 
-  ~SimpleActivityThread() override {}
+  ~SimpleActivityThread() override = default;
 
   void Run() override {
     ThreadActivityTracker::ActivityId id =
diff --git a/base/debug/stack_trace_posix.cc b/base/debug/stack_trace_posix.cc
index fdaff1c..1d7df1f 100644
--- a/base/debug/stack_trace_posix.cc
+++ b/base/debug/stack_trace_posix.cc
@@ -129,7 +129,7 @@
   virtual void HandleOutput(const char* output) = 0;
 
  protected:
-  virtual ~BacktraceOutputHandler() {}
+  virtual ~BacktraceOutputHandler() = default;
 };
 
 #if !defined(__UCLIBC__) && !defined(_AIX)
@@ -415,7 +415,7 @@
 
 class PrintBacktraceOutputHandler : public BacktraceOutputHandler {
  public:
-  PrintBacktraceOutputHandler() {}
+  PrintBacktraceOutputHandler() = default;
 
   void HandleOutput(const char* output) override {
     // NOTE: This code MUST be async-signal safe (it's used by in-process
diff --git a/base/debug/task_annotator.cc b/base/debug/task_annotator.cc
index 31f11be..b9ff7f7 100644
--- a/base/debug/task_annotator.cc
+++ b/base/debug/task_annotator.cc
@@ -14,11 +14,9 @@
 namespace base {
 namespace debug {
 
-TaskAnnotator::TaskAnnotator() {
-}
+TaskAnnotator::TaskAnnotator() = default;
 
-TaskAnnotator::~TaskAnnotator() {
-}
+TaskAnnotator::~TaskAnnotator() = default;
 
 void TaskAnnotator::DidQueueTask(const char* queue_function,
                                  const PendingTask& pending_task) {
diff --git a/base/deferred_sequenced_task_runner.cc b/base/deferred_sequenced_task_runner.cc
index 21cb99a..9830402 100644
--- a/base/deferred_sequenced_task_runner.cc
+++ b/base/deferred_sequenced_task_runner.cc
@@ -18,8 +18,7 @@
 DeferredSequencedTaskRunner::DeferredTask::DeferredTask(DeferredTask&& other) =
     default;
 
-DeferredSequencedTaskRunner::DeferredTask::~DeferredTask() {
-}
+DeferredSequencedTaskRunner::DeferredTask::~DeferredTask() = default;
 
 DeferredSequencedTaskRunner::DeferredTask&
 DeferredSequencedTaskRunner::DeferredTask::operator=(DeferredTask&& other) =
@@ -29,8 +28,7 @@
     scoped_refptr<SequencedTaskRunner> target_task_runner)
     : started_(false), target_task_runner_(std::move(target_task_runner)) {}
 
-DeferredSequencedTaskRunner::~DeferredSequencedTaskRunner() {
-}
+DeferredSequencedTaskRunner::~DeferredSequencedTaskRunner() = default;
 
 bool DeferredSequencedTaskRunner::PostDelayedTask(const Location& from_here,
                                                   OnceClosure task,
diff --git a/base/environment.cc b/base/environment.cc
index 6c13f5f..f6655d9 100644
--- a/base/environment.cc
+++ b/base/environment.cc
@@ -132,7 +132,7 @@
 
 }  // namespace env_vars
 
-Environment::~Environment() {}
+Environment::~Environment() = default;
 
 // static
 std::unique_ptr<Environment> Environment::Create() {
diff --git a/base/feature_list.cc b/base/feature_list.cc
index 7d984f1..e9aa54b 100644
--- a/base/feature_list.cc
+++ b/base/feature_list.cc
@@ -81,9 +81,9 @@
                                             base::FEATURE_DISABLED_BY_DEFAULT};
 #endif  // defined(SYZYASAN)
 
-FeatureList::FeatureList() {}
+FeatureList::FeatureList() = default;
 
-FeatureList::~FeatureList() {}
+FeatureList::~FeatureList() = default;
 
 void FeatureList::InitializeFromCommandLine(
     const std::string& enable_features,
diff --git a/base/file_descriptor_store.cc b/base/file_descriptor_store.cc
index 34f3381..71cf2b3 100644
--- a/base/file_descriptor_store.cc
+++ b/base/file_descriptor_store.cc
@@ -26,7 +26,7 @@
     FileDescriptorStore::Descriptor&& other)
     : key(other.key), fd(std::move(other.fd)), region(other.region) {}
 
-FileDescriptorStore::Descriptor::~Descriptor() {}
+FileDescriptorStore::Descriptor::~Descriptor() = default;
 
 // static
 FileDescriptorStore& FileDescriptorStore::GetInstance() {
@@ -66,8 +66,8 @@
   descriptors_.insert(std::make_pair(key, std::move(descriptor)));
 }
 
-FileDescriptorStore::FileDescriptorStore() {}
+FileDescriptorStore::FileDescriptorStore() = default;
 
-FileDescriptorStore::~FileDescriptorStore() {}
+FileDescriptorStore::~FileDescriptorStore() = default;
 
 }  // namespace base
diff --git a/base/files/file.cc b/base/files/file.cc
index 6729500..50b4370 100644
--- a/base/files/file.cc
+++ b/base/files/file.cc
@@ -17,8 +17,7 @@
       is_symbolic_link(false) {
 }
 
-File::Info::~Info() {
-}
+File::Info::~Info() = default;
 
 File::File()
     : error_details_(FILE_ERROR_FAILED),
diff --git a/base/files/file_enumerator.cc b/base/files/file_enumerator.cc
index dfa277a..9dfb2ba 100644
--- a/base/files/file_enumerator.cc
+++ b/base/files/file_enumerator.cc
@@ -8,8 +8,7 @@
 
 namespace base {
 
-FileEnumerator::FileInfo::~FileInfo() {
-}
+FileEnumerator::FileInfo::~FileInfo() = default;
 
 bool FileEnumerator::ShouldSkip(const FilePath& path) {
   FilePath::StringType basename = path.BaseName().value();
diff --git a/base/files/file_enumerator_posix.cc b/base/files/file_enumerator_posix.cc
index 71c0c3f..4b429c6 100644
--- a/base/files/file_enumerator_posix.cc
+++ b/base/files/file_enumerator_posix.cc
@@ -92,8 +92,7 @@
   pending_paths_.push(root_path);
 }
 
-FileEnumerator::~FileEnumerator() {
-}
+FileEnumerator::~FileEnumerator() = default;
 
 FilePath FileEnumerator::Next() {
   AssertBlockingAllowed();
diff --git a/base/files/file_locking_unittest.cc b/base/files/file_locking_unittest.cc
index 067ff57..e158b7d 100644
--- a/base/files/file_locking_unittest.cc
+++ b/base/files/file_locking_unittest.cc
@@ -121,7 +121,7 @@
 
 class FileLockingTest : public testing::Test {
  public:
-  FileLockingTest() {}
+  FileLockingTest() = default;
 
  protected:
   void SetUp() override {
diff --git a/base/files/file_path.cc b/base/files/file_path.cc
index 3f83dfa..29a0b40 100644
--- a/base/files/file_path.cc
+++ b/base/files/file_path.cc
@@ -169,11 +169,9 @@
 
 }  // namespace
 
-FilePath::FilePath() {
-}
+FilePath::FilePath() = default;
 
-FilePath::FilePath(const FilePath& that) : path_(that.path_) {
-}
+FilePath::FilePath(const FilePath& that) = default;
 FilePath::FilePath(FilePath&& that) noexcept = default;
 
 FilePath::FilePath(StringPieceType path) {
@@ -183,13 +181,9 @@
     path_.erase(nul_pos, StringType::npos);
 }
 
-FilePath::~FilePath() {
-}
+FilePath::~FilePath() = default;
 
-FilePath& FilePath::operator=(const FilePath& that) {
-  path_ = that.path_;
-  return *this;
-}
+FilePath& FilePath::operator=(const FilePath& that) = default;
 
 FilePath& FilePath::operator=(FilePath&& that) = default;
 
diff --git a/base/files/file_path_watcher_unittest.cc b/base/files/file_path_watcher_unittest.cc
index 3895d52..1ae5dc1 100644
--- a/base/files/file_path_watcher_unittest.cc
+++ b/base/files/file_path_watcher_unittest.cc
@@ -75,7 +75,7 @@
 
  private:
   friend class base::RefCountedThreadSafe<NotificationCollector>;
-  ~NotificationCollector() {}
+  ~NotificationCollector() = default;
 
   void RecordChange(TestDelegate* delegate) {
     // Warning: |delegate| is Unretained. Do not dereference.
@@ -100,8 +100,8 @@
 
 class TestDelegateBase : public SupportsWeakPtr<TestDelegateBase> {
  public:
-  TestDelegateBase() {}
-  virtual ~TestDelegateBase() {}
+  TestDelegateBase() = default;
+  virtual ~TestDelegateBase() = default;
 
   virtual void OnFileChanged(const FilePath& path, bool error) = 0;
 
@@ -120,7 +120,7 @@
       : collector_(collector) {
     collector_->Register(this);
   }
-  ~TestDelegate() override {}
+  ~TestDelegate() override = default;
 
   void OnFileChanged(const FilePath& path, bool error) override {
     if (error)
@@ -144,7 +144,7 @@
   {
   }
 
-  ~FilePathWatcherTest() override {}
+  ~FilePathWatcherTest() override = default;
 
  protected:
   void SetUp() override {
@@ -275,7 +275,7 @@
       : watcher_(watcher),
         loop_(loop) {
   }
-  ~Deleter() override {}
+  ~Deleter() override = default;
 
   void OnFileChanged(const FilePath&, bool) override {
     watcher_.reset();
diff --git a/base/files/important_file_writer_unittest.cc b/base/files/important_file_writer_unittest.cc
index f48343a..0f97945 100644
--- a/base/files/important_file_writer_unittest.cc
+++ b/base/files/important_file_writer_unittest.cc
@@ -114,7 +114,7 @@
 
 class ImportantFileWriterTest : public testing::Test {
  public:
-  ImportantFileWriterTest() { }
+  ImportantFileWriterTest() = default;
   void SetUp() override {
     ASSERT_TRUE(temp_dir_.CreateUniqueTempDir());
     file_ = temp_dir_.GetPath().AppendASCII("test-file");
diff --git a/base/files/scoped_temp_dir.cc b/base/files/scoped_temp_dir.cc
index a04e825..01ec0f0 100644
--- a/base/files/scoped_temp_dir.cc
+++ b/base/files/scoped_temp_dir.cc
@@ -16,8 +16,7 @@
 
 }  // namespace
 
-ScopedTempDir::ScopedTempDir() {
-}
+ScopedTempDir::ScopedTempDir() = default;
 
 ScopedTempDir::~ScopedTempDir() {
   if (!path_.empty() && !Delete())
diff --git a/base/gmock_unittest.cc b/base/gmock_unittest.cc
index da8dd94..5c16728 100644
--- a/base/gmock_unittest.cc
+++ b/base/gmock_unittest.cc
@@ -23,8 +23,8 @@
 // for easy mocking.
 class SampleClass {
  public:
-  SampleClass() {}
-  virtual ~SampleClass() {}
+  SampleClass() = default;
+  virtual ~SampleClass() = default;
 
   virtual int ReturnSomething() {
     return -1;
diff --git a/base/i18n/bidi_line_iterator_unittest.cc b/base/i18n/bidi_line_iterator_unittest.cc
index 5851664..d531313 100644
--- a/base/i18n/bidi_line_iterator_unittest.cc
+++ b/base/i18n/bidi_line_iterator_unittest.cc
@@ -14,7 +14,7 @@
 
 class BiDiLineIteratorTest : public testing::TestWithParam<TextDirection> {
  public:
-  BiDiLineIteratorTest() {}
+  BiDiLineIteratorTest() = default;
 
   BiDiLineIterator* iterator() { return &iterator_; }
 
diff --git a/base/i18n/char_iterator.cc b/base/i18n/char_iterator.cc
index 25efc51..d80b8b6 100644
--- a/base/i18n/char_iterator.cc
+++ b/base/i18n/char_iterator.cc
@@ -21,8 +21,7 @@
     U8_NEXT(str_, next_pos_, len_, char_);
 }
 
-UTF8CharIterator::~UTF8CharIterator() {
-}
+UTF8CharIterator::~UTF8CharIterator() = default;
 
 bool UTF8CharIterator::Advance() {
   if (array_pos_ >= len_)
@@ -58,8 +57,7 @@
     ReadChar();
 }
 
-UTF16CharIterator::~UTF16CharIterator() {
-}
+UTF16CharIterator::~UTF16CharIterator() = default;
 
 bool UTF16CharIterator::Advance() {
   if (array_pos_ >= len_)
diff --git a/base/i18n/file_util_icu.cc b/base/i18n/file_util_icu.cc
index e0cf3d5..c154204 100644
--- a/base/i18n/file_util_icu.cc
+++ b/base/i18n/file_util_icu.cc
@@ -54,7 +54,7 @@
   friend struct DefaultSingletonTraits<IllegalCharacters>;
 
   IllegalCharacters();
-  ~IllegalCharacters() { }
+  ~IllegalCharacters() = default;
 
   // set of characters considered invalid anywhere inside a filename.
   std::unique_ptr<icu::UnicodeSet> illegal_anywhere_;
diff --git a/base/i18n/message_formatter.cc b/base/i18n/message_formatter.cc
index 6962a28..c69dd07 100644
--- a/base/i18n/message_formatter.cc
+++ b/base/i18n/message_formatter.cc
@@ -48,7 +48,7 @@
 MessageArg::MessageArg(const Time& t)
     : formattable(new icu::Formattable(static_cast<UDate>(t.ToJsTime()))) {}
 
-MessageArg::~MessageArg() {}
+MessageArg::~MessageArg() = default;
 
 // Tests if this argument has a value, and if so increments *count.
 bool MessageArg::has_value(int *count) const {
diff --git a/base/json/json_file_value_serializer.cc b/base/json/json_file_value_serializer.cc
index cd836fc..a7c68c5 100644
--- a/base/json/json_file_value_serializer.cc
+++ b/base/json/json_file_value_serializer.cc
@@ -21,8 +21,7 @@
     : json_file_path_(json_file_path) {
 }
 
-JSONFileValueSerializer::~JSONFileValueSerializer() {
-}
+JSONFileValueSerializer::~JSONFileValueSerializer() = default;
 
 bool JSONFileValueSerializer::Serialize(const base::Value& root) {
   return SerializeInternal(root, false);
@@ -57,8 +56,7 @@
     int options)
     : json_file_path_(json_file_path), options_(options), last_read_size_(0U) {}
 
-JSONFileValueDeserializer::~JSONFileValueDeserializer() {
-}
+JSONFileValueDeserializer::~JSONFileValueDeserializer() = default;
 
 int JSONFileValueDeserializer::ReadFileToString(std::string* json_string) {
   DCHECK(json_string);
diff --git a/base/json/json_parser.cc b/base/json/json_parser.cc
index 7b26c20..ceb64a6 100644
--- a/base/json/json_parser.cc
+++ b/base/json/json_parser.cc
@@ -70,8 +70,7 @@
       error_column_(0) {
 }
 
-JSONParser::~JSONParser() {
-}
+JSONParser::~JSONParser() = default;
 
 std::unique_ptr<Value> JSONParser::Parse(StringPiece input) {
   start_pos_ = input.data();
@@ -135,8 +134,7 @@
 JSONParser::StringBuilder::StringBuilder(const char* pos)
     : pos_(pos), length_(0) {}
 
-JSONParser::StringBuilder::~StringBuilder() {
-}
+JSONParser::StringBuilder::~StringBuilder() = default;
 
 JSONParser::StringBuilder& JSONParser::StringBuilder::operator=(
     StringBuilder&& other) = default;
diff --git a/base/json/json_reader.cc b/base/json/json_reader.cc
index 4ff7496..e18f4a5 100644
--- a/base/json/json_reader.cc
+++ b/base/json/json_reader.cc
@@ -39,8 +39,7 @@
     : parser_(new internal::JSONParser(options)) {
 }
 
-JSONReader::~JSONReader() {
-}
+JSONReader::~JSONReader() = default;
 
 // static
 std::unique_ptr<Value> JSONReader::Read(StringPiece json) {
diff --git a/base/json/json_string_value_serializer.cc b/base/json/json_string_value_serializer.cc
index 2e46ab3..f9c45a4 100644
--- a/base/json/json_string_value_serializer.cc
+++ b/base/json/json_string_value_serializer.cc
@@ -15,7 +15,7 @@
       pretty_print_(false) {
 }
 
-JSONStringValueSerializer::~JSONStringValueSerializer() {}
+JSONStringValueSerializer::~JSONStringValueSerializer() = default;
 
 bool JSONStringValueSerializer::Serialize(const Value& root) {
   return SerializeInternal(root, false);
@@ -45,7 +45,7 @@
     int options)
     : json_string_(json_string), options_(options) {}
 
-JSONStringValueDeserializer::~JSONStringValueDeserializer() {}
+JSONStringValueDeserializer::~JSONStringValueDeserializer() = default;
 
 std::unique_ptr<Value> JSONStringValueDeserializer::Deserialize(
     int* error_code,
diff --git a/base/lazy_instance_unittest.cc b/base/lazy_instance_unittest.cc
index 55ea45b..cfa48f2 100644
--- a/base/lazy_instance_unittest.cc
+++ b/base/lazy_instance_unittest.cc
@@ -150,8 +150,8 @@
 template <size_t alignment>
 class AlignedData {
  public:
-  AlignedData() {}
-  ~AlignedData() {}
+  AlignedData() = default;
+  ~AlignedData() = default;
   alignas(alignment) char data_[alignment];
 };
 
diff --git a/base/linux_util.cc b/base/linux_util.cc
index d58fb79..ddf848e 100644
--- a/base/linux_util.cc
+++ b/base/linux_util.cc
@@ -48,7 +48,7 @@
   // The simple state machine goes from:
   // STATE_DID_NOT_CHECK -> STATE_CHECK_STARTED -> STATE_CHECK_FINISHED.
   LinuxDistroHelper() : state_(STATE_DID_NOT_CHECK) {}
-  ~LinuxDistroHelper() {}
+  ~LinuxDistroHelper() = default;
 
   // Retrieve the current state, if we're in STATE_DID_NOT_CHECK,
   // we automatically move to STATE_CHECK_STARTED so nobody else will
diff --git a/base/memory/discardable_memory.cc b/base/memory/discardable_memory.cc
index d50f185..f0730aa 100644
--- a/base/memory/discardable_memory.cc
+++ b/base/memory/discardable_memory.cc
@@ -6,10 +6,8 @@
 
 namespace base {
 
-DiscardableMemory::DiscardableMemory() {
-}
+DiscardableMemory::DiscardableMemory() = default;
 
-DiscardableMemory::~DiscardableMemory() {
-}
+DiscardableMemory::~DiscardableMemory() = default;
 
 }  // namespace base
diff --git a/base/memory/discardable_shared_memory.cc b/base/memory/discardable_shared_memory.cc
index 2b7f738..7aeddab 100644
--- a/base/memory/discardable_shared_memory.cc
+++ b/base/memory/discardable_shared_memory.cc
@@ -152,8 +152,7 @@
       locked_page_count_(0) {
 }
 
-DiscardableSharedMemory::~DiscardableSharedMemory() {
-}
+DiscardableSharedMemory::~DiscardableSharedMemory() = default;
 
 bool DiscardableSharedMemory::CreateAndMap(size_t size) {
   CheckedNumeric<size_t> checked_size = size;
diff --git a/base/memory/discardable_shared_memory_unittest.cc b/base/memory/discardable_shared_memory_unittest.cc
index 2858f50..caf7eaf 100644
--- a/base/memory/discardable_shared_memory_unittest.cc
+++ b/base/memory/discardable_shared_memory_unittest.cc
@@ -19,7 +19,7 @@
 
 class TestDiscardableSharedMemory : public DiscardableSharedMemory {
  public:
-  TestDiscardableSharedMemory() {}
+  TestDiscardableSharedMemory() = default;
 
   explicit TestDiscardableSharedMemory(SharedMemoryHandle handle)
       : DiscardableSharedMemory(handle) {}
diff --git a/base/memory/memory_coordinator_client_registry.cc b/base/memory/memory_coordinator_client_registry.cc
index 6706458..45b4a7f 100644
--- a/base/memory/memory_coordinator_client_registry.cc
+++ b/base/memory/memory_coordinator_client_registry.cc
@@ -17,7 +17,7 @@
 MemoryCoordinatorClientRegistry::MemoryCoordinatorClientRegistry()
     : clients_(new ClientList) {}
 
-MemoryCoordinatorClientRegistry::~MemoryCoordinatorClientRegistry() {}
+MemoryCoordinatorClientRegistry::~MemoryCoordinatorClientRegistry() = default;
 
 void MemoryCoordinatorClientRegistry::Register(
     MemoryCoordinatorClient* client) {
diff --git a/base/memory/memory_coordinator_proxy.cc b/base/memory/memory_coordinator_proxy.cc
index f82e928..4e22fe0 100644
--- a/base/memory/memory_coordinator_proxy.cc
+++ b/base/memory/memory_coordinator_proxy.cc
@@ -12,11 +12,9 @@
 
 }  // namespace
 
-MemoryCoordinatorProxy::MemoryCoordinatorProxy() {
-}
+MemoryCoordinatorProxy::MemoryCoordinatorProxy() = default;
 
-MemoryCoordinatorProxy::~MemoryCoordinatorProxy() {
-}
+MemoryCoordinatorProxy::~MemoryCoordinatorProxy() = default;
 
 // static
 MemoryCoordinatorProxy* MemoryCoordinatorProxy::GetInstance() {
diff --git a/base/memory/memory_pressure_monitor_chromeos_unittest.cc b/base/memory/memory_pressure_monitor_chromeos_unittest.cc
index 23b037c..d203afb 100644
--- a/base/memory/memory_pressure_monitor_chromeos_unittest.cc
+++ b/base/memory/memory_pressure_monitor_chromeos_unittest.cc
@@ -52,7 +52,7 @@
     // function.
     StopObserving();
   }
-  ~TestMemoryPressureMonitor() override {}
+  ~TestMemoryPressureMonitor() override = default;
 
   void SetMemoryInPercentOverride(int percent) {
     memory_in_percent_override_ = percent;
diff --git a/base/memory/ref_counted_memory.cc b/base/memory/ref_counted_memory.cc
index 00f2293..7eaaf03 100644
--- a/base/memory/ref_counted_memory.cc
+++ b/base/memory/ref_counted_memory.cc
@@ -15,9 +15,9 @@
          (memcmp(front(), other->front(), size()) == 0);
 }
 
-RefCountedMemory::RefCountedMemory() {}
+RefCountedMemory::RefCountedMemory() = default;
 
-RefCountedMemory::~RefCountedMemory() {}
+RefCountedMemory::~RefCountedMemory() = default;
 
 const unsigned char* RefCountedStaticMemory::front() const {
   return data_;
@@ -27,9 +27,9 @@
   return length_;
 }
 
-RefCountedStaticMemory::~RefCountedStaticMemory() {}
+RefCountedStaticMemory::~RefCountedStaticMemory() = default;
 
-RefCountedBytes::RefCountedBytes() {}
+RefCountedBytes::RefCountedBytes() = default;
 
 RefCountedBytes::RefCountedBytes(const std::vector<unsigned char>& initializer)
     : data_(initializer) {
@@ -55,11 +55,11 @@
   return data_.size();
 }
 
-RefCountedBytes::~RefCountedBytes() {}
+RefCountedBytes::~RefCountedBytes() = default;
 
-RefCountedString::RefCountedString() {}
+RefCountedString::RefCountedString() = default;
 
-RefCountedString::~RefCountedString() {}
+RefCountedString::~RefCountedString() = default;
 
 // static
 scoped_refptr<RefCountedString> RefCountedString::TakeString(
diff --git a/base/memory/ref_counted_unittest.cc b/base/memory/ref_counted_unittest.cc
index afaebdb..96f588e 100644
--- a/base/memory/ref_counted_unittest.cc
+++ b/base/memory/ref_counted_unittest.cc
@@ -14,7 +14,7 @@
 
 class SelfAssign : public base::RefCounted<SelfAssign> {
  protected:
-  virtual ~SelfAssign() {}
+  virtual ~SelfAssign() = default;
 
  private:
   friend class base::RefCounted<SelfAssign>;
@@ -22,7 +22,7 @@
 
 class Derived : public SelfAssign {
  protected:
-  ~Derived() override {}
+  ~Derived() override = default;
 
  private:
   friend class base::RefCounted<Derived>;
@@ -112,7 +112,7 @@
  private:
   friend class base::RefCounted<Other>;
 
-  ~Other() {}
+  ~Other() = default;
 };
 
 class HasPrivateDestructorWithDeleter;
@@ -124,11 +124,11 @@
 class HasPrivateDestructorWithDeleter
     : public base::RefCounted<HasPrivateDestructorWithDeleter, Deleter> {
  public:
-  HasPrivateDestructorWithDeleter() {}
+  HasPrivateDestructorWithDeleter() = default;
 
  private:
   friend struct Deleter;
-  ~HasPrivateDestructorWithDeleter() {}
+  ~HasPrivateDestructorWithDeleter() = default;
 };
 
 void Deleter::Destruct(const HasPrivateDestructorWithDeleter* x) {
@@ -147,11 +147,11 @@
  public:
   REQUIRE_ADOPTION_FOR_REFCOUNTED_TYPE();
 
-  InitialRefCountIsOne() {}
+  InitialRefCountIsOne() = default;
 
  private:
   friend class base::RefCounted<InitialRefCountIsOne>;
-  ~InitialRefCountIsOne() {}
+  ~InitialRefCountIsOne() = default;
 };
 
 }  // end namespace
diff --git a/base/memory/shared_memory_posix.cc b/base/memory/shared_memory_posix.cc
index bf840e2..5b5d002 100644
--- a/base/memory/shared_memory_posix.cc
+++ b/base/memory/shared_memory_posix.cc
@@ -33,7 +33,7 @@
 
 namespace base {
 
-SharedMemory::SharedMemory() {}
+SharedMemory::SharedMemory() = default;
 
 SharedMemory::SharedMemory(const SharedMemoryHandle& handle, bool read_only)
     : shm_(handle), read_only_(read_only) {}
diff --git a/base/memory/shared_memory_unittest.cc b/base/memory/shared_memory_unittest.cc
index ceafb99..7567eb4 100644
--- a/base/memory/shared_memory_unittest.cc
+++ b/base/memory/shared_memory_unittest.cc
@@ -55,7 +55,7 @@
 class MultipleThreadMain : public PlatformThread::Delegate {
  public:
   explicit MultipleThreadMain(int16_t id) : id_(id) {}
-  ~MultipleThreadMain() override {}
+  ~MultipleThreadMain() override = default;
 
   static void CleanUp() {
     SharedMemory memory;
diff --git a/base/memory/singleton_unittest.cc b/base/memory/singleton_unittest.cc
index 1a4d901..50b862d 100644
--- a/base/memory/singleton_unittest.cc
+++ b/base/memory/singleton_unittest.cc
@@ -19,8 +19,8 @@
 template <size_t alignment>
 class AlignedData {
  public:
-  AlignedData() {}
-  ~AlignedData() {}
+  AlignedData() = default;
+  ~AlignedData() = default;
   alignas(alignment) char data_[alignment];
 };
 
@@ -123,8 +123,8 @@
 template <class Type>
 class AlignedTestSingleton {
  public:
-  AlignedTestSingleton() {}
-  ~AlignedTestSingleton() {}
+  AlignedTestSingleton() = default;
+  ~AlignedTestSingleton() = default;
   static AlignedTestSingleton* GetInstance() {
     return Singleton<AlignedTestSingleton,
                      StaticMemorySingletonTraits<AlignedTestSingleton>>::get();
@@ -162,7 +162,7 @@
 
 class SingletonTest : public testing::Test {
  public:
-  SingletonTest() {}
+  SingletonTest() = default;
 
   void SetUp() override {
     non_leak_called_ = false;
diff --git a/base/memory/weak_ptr.cc b/base/memory/weak_ptr.cc
index 2130d67..1c3208f 100644
--- a/base/memory/weak_ptr.cc
+++ b/base/memory/weak_ptr.cc
@@ -28,17 +28,14 @@
   return is_valid_;
 }
 
-WeakReference::Flag::~Flag() {
-}
+WeakReference::Flag::~Flag() = default;
 
-WeakReference::WeakReference() {
-}
+WeakReference::WeakReference() = default;
 
 WeakReference::WeakReference(const Flag* flag) : flag_(flag) {
 }
 
-WeakReference::~WeakReference() {
-}
+WeakReference::~WeakReference() = default;
 
 WeakReference::WeakReference(WeakReference&& other) = default;
 
@@ -46,8 +43,7 @@
 
 bool WeakReference::is_valid() const { return flag_.get() && flag_->IsValid(); }
 
-WeakReferenceOwner::WeakReferenceOwner() {
-}
+WeakReferenceOwner::WeakReferenceOwner() = default;
 
 WeakReferenceOwner::~WeakReferenceOwner() {
   Invalidate();
@@ -70,7 +66,7 @@
 
 WeakPtrBase::WeakPtrBase() : ptr_(0) {}
 
-WeakPtrBase::~WeakPtrBase() {}
+WeakPtrBase::~WeakPtrBase() = default;
 
 WeakPtrBase::WeakPtrBase(const WeakReference& ref, uintptr_t ptr)
     : ref_(ref), ptr_(ptr) {}
diff --git a/base/memory/weak_ptr_unittest.cc b/base/memory/weak_ptr_unittest.cc
index 93c4105..f8dfb7c 100644
--- a/base/memory/weak_ptr_unittest.cc
+++ b/base/memory/weak_ptr_unittest.cc
@@ -51,7 +51,7 @@
 
 struct TargetBase {};
 struct Target : public TargetBase, public SupportsWeakPtr<Target> {
-  virtual ~Target() {}
+  virtual ~Target() = default;
 };
 
 struct DerivedTarget : public Target {};
@@ -64,7 +64,7 @@
 
 // A struct with a virtual destructor.
 struct VirtualDestructor {
-  virtual ~VirtualDestructor() {}
+  virtual ~VirtualDestructor() = default;
 };
 
 // A class inheriting from Target where Target is not the first base, and where
diff --git a/base/message_loop/message_loop.cc b/base/message_loop/message_loop.cc
index 9cddbe8..2c8899b 100644
--- a/base/message_loop/message_loop.cc
+++ b/base/message_loop/message_loop.cc
@@ -71,14 +71,11 @@
 
 //------------------------------------------------------------------------------
 
-MessageLoop::TaskObserver::TaskObserver() {
-}
+MessageLoop::TaskObserver::TaskObserver() = default;
 
-MessageLoop::TaskObserver::~TaskObserver() {
-}
+MessageLoop::TaskObserver::~TaskObserver() = default;
 
-MessageLoop::DestructionObserver::~DestructionObserver() {
-}
+MessageLoop::DestructionObserver::~DestructionObserver() = default;
 
 //------------------------------------------------------------------------------
 
diff --git a/base/message_loop/message_loop_io_posix_unittest.cc b/base/message_loop/message_loop_io_posix_unittest.cc
index 5038bea..f98d466 100644
--- a/base/message_loop/message_loop_io_posix_unittest.cc
+++ b/base/message_loop/message_loop_io_posix_unittest.cc
@@ -25,7 +25,7 @@
 
 class MessageLoopForIoPosixTest : public testing::Test {
  public:
-  MessageLoopForIoPosixTest() {}
+  MessageLoopForIoPosixTest() = default;
 
   // testing::Test interface.
   void SetUp() override {
diff --git a/base/message_loop/message_loop_task_runner.cc b/base/message_loop/message_loop_task_runner.cc
index 5d41986..f251e3b 100644
--- a/base/message_loop/message_loop_task_runner.cc
+++ b/base/message_loop/message_loop_task_runner.cc
@@ -46,8 +46,7 @@
   return valid_thread_id_ == PlatformThread::CurrentId();
 }
 
-MessageLoopTaskRunner::~MessageLoopTaskRunner() {
-}
+MessageLoopTaskRunner::~MessageLoopTaskRunner() = default;
 
 }  // namespace internal
 
diff --git a/base/message_loop/message_loop_unittest.cc b/base/message_loop/message_loop_unittest.cc
index 742436e..39953cc 100644
--- a/base/message_loop/message_loop_unittest.cc
+++ b/base/message_loop/message_loop_unittest.cc
@@ -86,7 +86,7 @@
  private:
   friend class RefCounted<Foo>;
 
-  ~Foo() {}
+  ~Foo() = default;
 
   int test_count_;
   std::string result_;
@@ -202,7 +202,7 @@
         num_tasks_processed_(0),
         num_tasks_(num_tasks) {}
 
-  ~DummyTaskObserver() override {}
+  ~DummyTaskObserver() override = default;
 
   void WillProcessTask(const PendingTask& pending_task) override {
     num_tasks_started_++;
diff --git a/base/message_loop/message_pump.cc b/base/message_loop/message_pump.cc
index 3d85b9b..9076176 100644
--- a/base/message_loop/message_pump.cc
+++ b/base/message_loop/message_pump.cc
@@ -6,11 +6,9 @@
 
 namespace base {
 
-MessagePump::MessagePump() {
-}
+MessagePump::MessagePump() = default;
 
-MessagePump::~MessagePump() {
-}
+MessagePump::~MessagePump() = default;
 
 void MessagePump::SetTimerSlack(TimerSlack) {
 }
diff --git a/base/message_loop/message_pump_default.cc b/base/message_loop/message_pump_default.cc
index 50dbc6f..dba0f5b 100644
--- a/base/message_loop/message_pump_default.cc
+++ b/base/message_loop/message_pump_default.cc
@@ -24,7 +24,7 @@
       event_(WaitableEvent::ResetPolicy::AUTOMATIC,
              WaitableEvent::InitialState::NOT_SIGNALED) {}
 
-MessagePumpDefault::~MessagePumpDefault() {}
+MessagePumpDefault::~MessagePumpDefault() = default;
 
 void MessagePumpDefault::Run(Delegate* delegate) {
   AutoReset<bool> auto_reset_keep_running(&keep_running_, true);
diff --git a/base/message_loop/message_pump_libevent_unittest.cc b/base/message_loop/message_pump_libevent_unittest.cc
index c0282a1..da7c06e 100644
--- a/base/message_loop/message_pump_libevent_unittest.cc
+++ b/base/message_loop/message_pump_libevent_unittest.cc
@@ -33,7 +33,7 @@
   MessagePumpLibeventTest()
       : ui_loop_(new MessageLoop(MessageLoop::TYPE_UI)),
         io_thread_("MessagePumpLibeventTestIOThread") {}
-  ~MessagePumpLibeventTest() override {}
+  ~MessagePumpLibeventTest() override = default;
 
   void SetUp() override {
     Thread::Options options(MessageLoop::TYPE_IO, 0);
@@ -77,7 +77,7 @@
 // nothing useful.
 class StupidWatcher : public MessagePumpLibevent::Watcher {
  public:
-  ~StupidWatcher() override {}
+  ~StupidWatcher() override = default;
 
   // base:MessagePumpLibevent::Watcher interface
   void OnFileCanReadWithoutBlocking(int fd) override {}
@@ -111,7 +111,7 @@
       : controller_(controller) {
     DCHECK(controller_);
   }
-  ~BaseWatcher() override {}
+  ~BaseWatcher() override = default;
 
   // base:MessagePumpLibevent::Watcher interface
   void OnFileCanReadWithoutBlocking(int /* fd */) override { NOTREACHED(); }
@@ -155,7 +155,7 @@
       MessagePumpLibevent::FileDescriptorWatcher* controller)
       : BaseWatcher(controller) {}
 
-  ~StopWatcher() override {}
+  ~StopWatcher() override = default;
 
   void OnFileCanWriteWithoutBlocking(int /* fd */) override {
     controller_->StopWatchingFileDescriptor();
@@ -183,8 +183,8 @@
 
 class NestedPumpWatcher : public MessagePumpLibevent::Watcher {
  public:
-  NestedPumpWatcher() {}
-  ~NestedPumpWatcher() override {}
+  NestedPumpWatcher() = default;
+  ~NestedPumpWatcher() override = default;
 
   void OnFileCanReadWithoutBlocking(int /* fd */) override {
     RunLoop runloop;
diff --git a/base/message_loop/message_pump_perftest.cc b/base/message_loop/message_pump_perftest.cc
index 4b45341..90680f0 100644
--- a/base/message_loop/message_pump_perftest.cc
+++ b/base/message_loop/message_pump_perftest.cc
@@ -240,8 +240,8 @@
 
 class FakeMessagePump : public MessagePump {
  public:
-  FakeMessagePump() {}
-  ~FakeMessagePump() override {}
+  FakeMessagePump() = default;
+  ~FakeMessagePump() override = default;
 
   void Run(Delegate* delegate) override {}
 
diff --git a/base/metrics/bucket_ranges.cc b/base/metrics/bucket_ranges.cc
index f995d7c..0404393 100644
--- a/base/metrics/bucket_ranges.cc
+++ b/base/metrics/bucket_ranges.cc
@@ -107,7 +107,7 @@
     : ranges_(num_ranges, 0),
       checksum_(0) {}
 
-BucketRanges::~BucketRanges() {}
+BucketRanges::~BucketRanges() = default;
 
 uint32_t BucketRanges::CalculateChecksum() const {
   // Seed checksum.
diff --git a/base/metrics/field_trial.cc b/base/metrics/field_trial.cc
index 221253f..72f25a9 100644
--- a/base/metrics/field_trial.cc
+++ b/base/metrics/field_trial.cc
@@ -243,14 +243,13 @@
 //------------------------------------------------------------------------------
 // FieldTrial methods and members.
 
-FieldTrial::EntropyProvider::~EntropyProvider() {
-}
+FieldTrial::EntropyProvider::~EntropyProvider() = default;
 
-FieldTrial::State::State() {}
+FieldTrial::State::State() = default;
 
 FieldTrial::State::State(const State& other) = default;
 
-FieldTrial::State::~State() {}
+FieldTrial::State::~State() = default;
 
 bool FieldTrial::FieldTrialEntry::GetTrialAndGroupName(
     StringPiece* trial_name,
@@ -413,7 +412,7 @@
       << "Trial " << trial_name << " is missing a default group name.";
 }
 
-FieldTrial::~FieldTrial() {}
+FieldTrial::~FieldTrial() = default;
 
 void FieldTrial::SetTrialRegistered() {
   DCHECK_EQ(kNotFinalized, group_);
@@ -486,8 +485,7 @@
 // static
 bool FieldTrialList::used_without_global_ = false;
 
-FieldTrialList::Observer::~Observer() {
-}
+FieldTrialList::Observer::~Observer() = default;
 
 FieldTrialList::FieldTrialList(
     std::unique_ptr<const FieldTrial::EntropyProvider> entropy_provider)
diff --git a/base/metrics/field_trial_param_associator.cc b/base/metrics/field_trial_param_associator.cc
index 9c93f34..af76eaf 100644
--- a/base/metrics/field_trial_param_associator.cc
+++ b/base/metrics/field_trial_param_associator.cc
@@ -8,8 +8,8 @@
 
 namespace base {
 
-FieldTrialParamAssociator::FieldTrialParamAssociator() {}
-FieldTrialParamAssociator::~FieldTrialParamAssociator() {}
+FieldTrialParamAssociator::FieldTrialParamAssociator() = default;
+FieldTrialParamAssociator::~FieldTrialParamAssociator() = default;
 
 // static
 FieldTrialParamAssociator* FieldTrialParamAssociator::GetInstance() {
diff --git a/base/metrics/histogram.cc b/base/metrics/histogram.cc
index 2941190..40e7bcc 100644
--- a/base/metrics/histogram.cc
+++ b/base/metrics/histogram.cc
@@ -622,8 +622,7 @@
       unlogged_samples_->id(), ranges, logged_meta, logged_counts));
 }
 
-Histogram::~Histogram() {
-}
+Histogram::~Histogram() = default;
 
 bool Histogram::PrintEmptyBucket(uint32_t index) const {
   return true;
@@ -878,7 +877,7 @@
   DISALLOW_COPY_AND_ASSIGN(Factory);
 };
 
-LinearHistogram::~LinearHistogram() {}
+LinearHistogram::~LinearHistogram() = default;
 
 HistogramBase* LinearHistogram::FactoryGet(const std::string& name,
                                            Sample minimum,
diff --git a/base/metrics/histogram_base.cc b/base/metrics/histogram_base.cc
index e0a5047..da3a8c6 100644
--- a/base/metrics/histogram_base.cc
+++ b/base/metrics/histogram_base.cc
@@ -69,7 +69,7 @@
 HistogramBase::HistogramBase(const char* name)
     : histogram_name_(name), flags_(kNoFlags) {}
 
-HistogramBase::~HistogramBase() {}
+HistogramBase::~HistogramBase() = default;
 
 void HistogramBase::CheckName(const StringPiece& name) const {
   DCHECK_EQ(StringPiece(histogram_name()), name);
diff --git a/base/metrics/histogram_base_unittest.cc b/base/metrics/histogram_base_unittest.cc
index 3894857..5850c67 100644
--- a/base/metrics/histogram_base_unittest.cc
+++ b/base/metrics/histogram_base_unittest.cc
@@ -21,8 +21,7 @@
     ResetStatisticsRecorder();
   }
 
-  ~HistogramBaseTest() override {
-  }
+  ~HistogramBaseTest() override = default;
 
   void ResetStatisticsRecorder() {
     // It is necessary to fully destruct any existing StatisticsRecorder
diff --git a/base/metrics/histogram_delta_serialization.cc b/base/metrics/histogram_delta_serialization.cc
index b0b9d72..a74b87f 100644
--- a/base/metrics/histogram_delta_serialization.cc
+++ b/base/metrics/histogram_delta_serialization.cc
@@ -37,8 +37,7 @@
     const std::string& caller_name)
     : histogram_snapshot_manager_(this), serialized_deltas_(nullptr) {}
 
-HistogramDeltaSerialization::~HistogramDeltaSerialization() {
-}
+HistogramDeltaSerialization::~HistogramDeltaSerialization() = default;
 
 void HistogramDeltaSerialization::PrepareAndSerializeDeltas(
     std::vector<std::string>* serialized_deltas,
diff --git a/base/metrics/histogram_samples.cc b/base/metrics/histogram_samples.cc
index 10243bb..7703580 100644
--- a/base/metrics/histogram_samples.cc
+++ b/base/metrics/histogram_samples.cc
@@ -186,7 +186,7 @@
 
 // This mustn't do anything with |meta_|. It was passed to the ctor and may
 // be invalid by the time this dtor gets called.
-HistogramSamples::~HistogramSamples() {}
+HistogramSamples::~HistogramSamples() = default;
 
 void HistogramSamples::Add(const HistogramSamples& other) {
   IncreaseSumAndCount(other.sum(), other.redundant_count());
@@ -262,7 +262,7 @@
                               static_cast<int32_t>(id()));
 }
 
-SampleCountIterator::~SampleCountIterator() {}
+SampleCountIterator::~SampleCountIterator() = default;
 
 bool SampleCountIterator::GetBucketIndex(size_t* index) const {
   DCHECK(!Done());
@@ -280,7 +280,7 @@
                                            size_t bucket_index)
     : min_(min), max_(max), bucket_index_(bucket_index), count_(count) {}
 
-SingleSampleIterator::~SingleSampleIterator() {}
+SingleSampleIterator::~SingleSampleIterator() = default;
 
 bool SingleSampleIterator::Done() const {
   return count_ == 0;
diff --git a/base/metrics/histogram_snapshot_manager.cc b/base/metrics/histogram_snapshot_manager.cc
index 432511a..7b3cff8 100644
--- a/base/metrics/histogram_snapshot_manager.cc
+++ b/base/metrics/histogram_snapshot_manager.cc
@@ -41,8 +41,7 @@
   is_active_.store(false, std::memory_order_relaxed);
 }
 
-HistogramSnapshotManager::~HistogramSnapshotManager() {
-}
+HistogramSnapshotManager::~HistogramSnapshotManager() = default;
 
 void HistogramSnapshotManager::PrepareDelta(HistogramBase* histogram) {
   if (!histogram->ValidateHistogramContents(true, 0))
diff --git a/base/metrics/histogram_snapshot_manager_unittest.cc b/base/metrics/histogram_snapshot_manager_unittest.cc
index ca95eaa..1e2c599 100644
--- a/base/metrics/histogram_snapshot_manager_unittest.cc
+++ b/base/metrics/histogram_snapshot_manager_unittest.cc
@@ -19,7 +19,7 @@
 
 class HistogramFlattenerDeltaRecorder : public HistogramFlattener {
  public:
-  HistogramFlattenerDeltaRecorder() {}
+  HistogramFlattenerDeltaRecorder() = default;
 
   void RecordDelta(const HistogramBase& histogram,
                    const HistogramSamples& snapshot) override {
@@ -59,7 +59,7 @@
       : statistics_recorder_(StatisticsRecorder::CreateTemporaryForTesting()),
         histogram_snapshot_manager_(&histogram_flattener_delta_recorder_) {}
 
-  ~HistogramSnapshotManagerTest() override {}
+  ~HistogramSnapshotManagerTest() override = default;
 
   std::unique_ptr<StatisticsRecorder> statistics_recorder_;
   HistogramFlattenerDeltaRecorder histogram_flattener_delta_recorder_;
diff --git a/base/metrics/persistent_histogram_allocator.cc b/base/metrics/persistent_histogram_allocator.cc
index 1d908fa..79a903e 100644
--- a/base/metrics/persistent_histogram_allocator.cc
+++ b/base/metrics/persistent_histogram_allocator.cc
@@ -106,7 +106,8 @@
     PersistentMemoryAllocator* allocator)
     : allocator_(allocator), record_iterator_(allocator) {}
 
-PersistentSparseHistogramDataManager::~PersistentSparseHistogramDataManager() {}
+PersistentSparseHistogramDataManager::~PersistentSparseHistogramDataManager() =
+    default;
 
 PersistentSampleMapRecords*
 PersistentSparseHistogramDataManager::UseSampleMapRecords(uint64_t id,
@@ -189,7 +190,7 @@
     uint64_t sample_map_id)
     : data_manager_(data_manager), sample_map_id_(sample_map_id) {}
 
-PersistentSampleMapRecords::~PersistentSampleMapRecords() {}
+PersistentSampleMapRecords::~PersistentSampleMapRecords() = default;
 
 PersistentSampleMapRecords* PersistentSampleMapRecords::Acquire(
     const void* user) {
@@ -276,7 +277,7 @@
     : memory_allocator_(std::move(memory)),
       sparse_histogram_data_manager_(memory_allocator_.get()) {}
 
-PersistentHistogramAllocator::~PersistentHistogramAllocator() {}
+PersistentHistogramAllocator::~PersistentHistogramAllocator() = default;
 
 std::unique_ptr<HistogramBase> PersistentHistogramAllocator::GetHistogram(
     Reference ref) {
@@ -747,7 +748,7 @@
     result_histogram->Add(result);
 }
 
-GlobalHistogramAllocator::~GlobalHistogramAllocator() {}
+GlobalHistogramAllocator::~GlobalHistogramAllocator() = default;
 
 // static
 void GlobalHistogramAllocator::CreateWithPersistentMemory(
diff --git a/base/metrics/persistent_memory_allocator.cc b/base/metrics/persistent_memory_allocator.cc
index e49ea47..be107c3 100644
--- a/base/metrics/persistent_memory_allocator.cc
+++ b/base/metrics/persistent_memory_allocator.cc
@@ -1029,7 +1029,7 @@
           read_only),
       shared_memory_(std::move(memory)) {}
 
-SharedPersistentMemoryAllocator::~SharedPersistentMemoryAllocator() {}
+SharedPersistentMemoryAllocator::~SharedPersistentMemoryAllocator() = default;
 
 // static
 bool SharedPersistentMemoryAllocator::IsSharedMemoryAcceptable(
@@ -1056,7 +1056,7 @@
           read_only),
       mapped_file_(std::move(file)) {}
 
-FilePersistentMemoryAllocator::~FilePersistentMemoryAllocator() {}
+FilePersistentMemoryAllocator::~FilePersistentMemoryAllocator() = default;
 
 // static
 bool FilePersistentMemoryAllocator::IsFileAcceptable(
@@ -1159,7 +1159,7 @@
   DCHECK(reference_);
 }
 
-DelayedPersistentAllocation::~DelayedPersistentAllocation() {}
+DelayedPersistentAllocation::~DelayedPersistentAllocation() = default;
 
 void* DelayedPersistentAllocation::Get() const {
   // Relaxed operations are acceptable here because it's not protecting the
diff --git a/base/metrics/persistent_sample_map.cc b/base/metrics/persistent_sample_map.cc
index 817702f..f38b9d1 100644
--- a/base/metrics/persistent_sample_map.cc
+++ b/base/metrics/persistent_sample_map.cc
@@ -50,7 +50,7 @@
   SkipEmptyBuckets();
 }
 
-PersistentSampleMapIterator::~PersistentSampleMapIterator() {}
+PersistentSampleMapIterator::~PersistentSampleMapIterator() = default;
 
 bool PersistentSampleMapIterator::Done() const {
   return iter_ == end_;
diff --git a/base/metrics/sample_map.cc b/base/metrics/sample_map.cc
index 08fe032..c6dce29 100644
--- a/base/metrics/sample_map.cc
+++ b/base/metrics/sample_map.cc
@@ -47,7 +47,7 @@
   SkipEmptyBuckets();
 }
 
-SampleMapIterator::~SampleMapIterator() {}
+SampleMapIterator::~SampleMapIterator() = default;
 
 bool SampleMapIterator::Done() const {
   return iter_ == end_;
diff --git a/base/metrics/sample_vector.cc b/base/metrics/sample_vector.cc
index 749b2d8..cf8634e 100644
--- a/base/metrics/sample_vector.cc
+++ b/base/metrics/sample_vector.cc
@@ -30,7 +30,7 @@
   CHECK_GE(bucket_ranges_->bucket_count(), 1u);
 }
 
-SampleVectorBase::~SampleVectorBase() {}
+SampleVectorBase::~SampleVectorBase() = default;
 
 void SampleVectorBase::Accumulate(Sample value, Count count) {
   const size_t bucket_index = GetBucketIndex(value);
@@ -327,7 +327,7 @@
   }
 }
 
-PersistentSampleVector::~PersistentSampleVector() {}
+PersistentSampleVector::~PersistentSampleVector() = default;
 
 bool PersistentSampleVector::MountExistingCountsStorage() const {
   // There is no early exit if counts is not yet mounted because, given that
@@ -384,7 +384,7 @@
   SkipEmptyBuckets();
 }
 
-SampleVectorIterator::~SampleVectorIterator() {}
+SampleVectorIterator::~SampleVectorIterator() = default;
 
 bool SampleVectorIterator::Done() const {
   return index_ >= counts_size_;
diff --git a/base/metrics/single_sample_metrics_unittest.cc b/base/metrics/single_sample_metrics_unittest.cc
index e3c1cf0..c1a8b96 100644
--- a/base/metrics/single_sample_metrics_unittest.cc
+++ b/base/metrics/single_sample_metrics_unittest.cc
@@ -20,7 +20,7 @@
 
 class SingleSampleMetricsTest : public testing::Test {
  public:
-  SingleSampleMetricsTest() {}
+  SingleSampleMetricsTest() = default;
 
   ~SingleSampleMetricsTest() override {
     // Ensure we cleanup after ourselves.
diff --git a/base/metrics/sparse_histogram.cc b/base/metrics/sparse_histogram.cc
index 35a2b59..e33fd3c 100644
--- a/base/metrics/sparse_histogram.cc
+++ b/base/metrics/sparse_histogram.cc
@@ -78,7 +78,7 @@
       new SparseHistogram(allocator, name, meta, logged_meta));
 }
 
-SparseHistogram::~SparseHistogram() {}
+SparseHistogram::~SparseHistogram() = default;
 
 uint64_t SparseHistogram::name_hash() const {
   return unlogged_samples_->id();
diff --git a/base/metrics/statistics_recorder_unittest.cc b/base/metrics/statistics_recorder_unittest.cc
index f0bb50c..be9c114 100644
--- a/base/metrics/statistics_recorder_unittest.cc
+++ b/base/metrics/statistics_recorder_unittest.cc
@@ -42,7 +42,7 @@
 // Test implementation of RecordHistogramChecker interface.
 class OddRecordHistogramChecker : public base::RecordHistogramChecker {
  public:
-  ~OddRecordHistogramChecker() override {}
+  ~OddRecordHistogramChecker() override = default;
 
   // base::RecordHistogramChecker:
   bool ShouldRecord(uint64_t histogram_hash) const override {
diff --git a/base/observer_list_unittest.cc b/base/observer_list_unittest.cc
index fa6ab78..fd88a2d 100644
--- a/base/observer_list_unittest.cc
+++ b/base/observer_list_unittest.cc
@@ -31,14 +31,14 @@
 class Foo {
  public:
   virtual void Observe(int x) = 0;
-  virtual ~Foo() {}
+  virtual ~Foo() = default;
   virtual int GetValue() const { return 0; }
 };
 
 class Adder : public Foo {
  public:
   explicit Adder(int scaler) : total(0), scaler_(scaler) {}
-  ~Adder() override {}
+  ~Adder() override = default;
 
   void Observe(int x) override { total += x * scaler_; }
   int GetValue() const override { return total; }
@@ -58,7 +58,7 @@
   Disrupter(ObserverList<Foo>* list, bool remove_self)
       : Disrupter(list, nullptr, remove_self) {}
 
-  ~Disrupter() override {}
+  ~Disrupter() override = default;
 
   void Observe(int x) override {
     if (remove_self_)
@@ -116,7 +116,7 @@
         ready_(ready),
         weak_factory_(this) {}
 
-  ~AddRemoveThread() override {}
+  ~AddRemoveThread() override = default;
 
   void ThreadMain() override {
     loop_ = new MessageLoop();  // Fire up a message loop.
@@ -528,7 +528,7 @@
 class FooRemover : public Foo {
  public:
   explicit FooRemover(ObserverListThreadSafe<Foo>* list) : list_(list) {}
-  ~FooRemover() override {}
+  ~FooRemover() override = default;
 
   void AddFooToRemove(Foo* foo) {
     foos_.push_back(foo);
@@ -875,7 +875,7 @@
 class ListDestructor : public Foo {
  public:
   explicit ListDestructor(ObserverList<Foo>* list) : list_(list) {}
-  ~ListDestructor() override {}
+  ~ListDestructor() override = default;
 
   void Observe(int x) override { delete list_; }
 
diff --git a/base/pending_task.cc b/base/pending_task.cc
index 64dc1da..31f2d2d 100644
--- a/base/pending_task.cc
+++ b/base/pending_task.cc
@@ -33,8 +33,7 @@
 
 PendingTask::PendingTask(PendingTask&& other) = default;
 
-PendingTask::~PendingTask() {
-}
+PendingTask::~PendingTask() = default;
 
 PendingTask& PendingTask::operator=(PendingTask&& other) = default;
 
diff --git a/base/pickle.cc b/base/pickle.cc
index cfd4c7a..c2189c8 100644
--- a/base/pickle.cc
+++ b/base/pickle.cc
@@ -207,9 +207,9 @@
   return true;
 }
 
-Pickle::Attachment::Attachment() {}
+Pickle::Attachment::Attachment() = default;
 
-Pickle::Attachment::~Attachment() {}
+Pickle::Attachment::~Attachment() = default;
 
 // Payload is uint32_t aligned.
 
diff --git a/base/pickle_unittest.cc b/base/pickle_unittest.cc
index faf88cf..6c30257 100644
--- a/base/pickle_unittest.cc
+++ b/base/pickle_unittest.cc
@@ -529,7 +529,7 @@
 // Publicly exposes the ClaimBytes interface for testing.
 class TestingPickle : public Pickle {
  public:
-  TestingPickle() {}
+  TestingPickle() = default;
 
   void* ClaimBytes(size_t num_bytes) { return Pickle::ClaimBytes(num_bytes); }
 };
diff --git a/base/posix/global_descriptors.cc b/base/posix/global_descriptors.cc
index 9cc7553..738d14e 100644
--- a/base/posix/global_descriptors.cc
+++ b/base/posix/global_descriptors.cc
@@ -94,8 +94,8 @@
   descriptors_ = mapping;
 }
 
-GlobalDescriptors::GlobalDescriptors() {}
+GlobalDescriptors::GlobalDescriptors() = default;
 
-GlobalDescriptors::~GlobalDescriptors() {}
+GlobalDescriptors::~GlobalDescriptors() = default;
 
 }  // namespace base
diff --git a/base/power_monitor/power_monitor_source.cc b/base/power_monitor/power_monitor_source.cc
index 5d27a0e..d4757b0 100644
--- a/base/power_monitor/power_monitor_source.cc
+++ b/base/power_monitor/power_monitor_source.cc
@@ -9,8 +9,8 @@
 
 namespace base {
 
-PowerMonitorSource::PowerMonitorSource() {}
-PowerMonitorSource::~PowerMonitorSource() {}
+PowerMonitorSource::PowerMonitorSource() = default;
+PowerMonitorSource::~PowerMonitorSource() = default;
 
 bool PowerMonitorSource::IsOnBatteryPower() {
   AutoLock auto_lock(battery_lock_);
diff --git a/base/power_monitor/power_monitor_unittest.cc b/base/power_monitor/power_monitor_unittest.cc
index f1c2459..7f2a84b 100644
--- a/base/power_monitor/power_monitor_unittest.cc
+++ b/base/power_monitor/power_monitor_unittest.cc
@@ -17,7 +17,7 @@
     power_monitor_.reset(new PowerMonitor(
         std::unique_ptr<PowerMonitorSource>(power_monitor_source_)));
   }
-  ~PowerMonitorTest() override {}
+  ~PowerMonitorTest() override = default;
 
   PowerMonitorTestSource* source() { return power_monitor_source_; }
   PowerMonitor* monitor() { return power_monitor_.get(); }
diff --git a/base/process/process_iterator.cc b/base/process/process_iterator.cc
index 920c8d0..013017f 100644
--- a/base/process/process_iterator.cc
+++ b/base/process/process_iterator.cc
@@ -10,7 +10,7 @@
 #if defined(OS_POSIX)
 ProcessEntry::ProcessEntry() : pid_(0), ppid_(0), gid_(0) {}
 ProcessEntry::ProcessEntry(const ProcessEntry& other) = default;
-ProcessEntry::~ProcessEntry() {}
+ProcessEntry::~ProcessEntry() = default;
 #endif
 
 const ProcessEntry* ProcessIterator::NextProcessEntry() {
@@ -52,8 +52,7 @@
 #endif
 }
 
-NamedProcessIterator::~NamedProcessIterator() {
-}
+NamedProcessIterator::~NamedProcessIterator() = default;
 
 int GetProcessCount(const FilePath::StringType& executable_name,
                     const ProcessFilter* filter) {
diff --git a/base/process/process_metrics_posix.cc b/base/process/process_metrics_posix.cc
index 0eb5c1f..73a52d6 100644
--- a/base/process/process_metrics_posix.cc
+++ b/base/process/process_metrics_posix.cc
@@ -29,7 +29,7 @@
   return ret;
 }
 
-ProcessMetrics::~ProcessMetrics() { }
+ProcessMetrics::~ProcessMetrics() = default;
 
 #if defined(OS_LINUX)
 static const rlim_t kSystemDefaultMaxFds = 8192;
diff --git a/base/process/process_metrics_unittest.cc b/base/process/process_metrics_unittest.cc
index be08bb9..fdf9c96 100644
--- a/base/process/process_metrics_unittest.cc
+++ b/base/process/process_metrics_unittest.cc
@@ -51,7 +51,7 @@
 // Exists as a class so it can be a friend of SystemMetrics.
 class SystemMetricsTest : public testing::Test {
  public:
-  SystemMetricsTest() {}
+  SystemMetricsTest() = default;
 
  private:
   DISALLOW_COPY_AND_ASSIGN(SystemMetricsTest);
diff --git a/base/process/process_posix.cc b/base/process/process_posix.cc
index a7772b7..2481e26 100644
--- a/base/process/process_posix.cc
+++ b/base/process/process_posix.cc
@@ -225,8 +225,7 @@
 Process::Process(ProcessHandle handle) : process_(handle) {
 }
 
-Process::~Process() {
-}
+Process::~Process() = default;
 
 Process::Process(Process&& other) : process_(other.process_) {
   other.Close();
diff --git a/base/process/process_util_unittest.cc b/base/process/process_util_unittest.cc
index f6f3a83..43f2898 100644
--- a/base/process/process_util_unittest.cc
+++ b/base/process/process_util_unittest.cc
@@ -1038,7 +1038,7 @@
 class ReadFromPipeDelegate : public base::LaunchOptions::PreExecDelegate {
  public:
   explicit ReadFromPipeDelegate(int fd) : fd_(fd) {}
-  ~ReadFromPipeDelegate() override {}
+  ~ReadFromPipeDelegate() override = default;
   void RunAsyncSafe() override {
     char c;
     RAW_CHECK(HANDLE_EINTR(read(fd_, &c, 1)) == 1);
diff --git a/base/profiler/native_stack_sampler.cc b/base/profiler/native_stack_sampler.cc
index 6fa9cfa..6eed54f 100644
--- a/base/profiler/native_stack_sampler.cc
+++ b/base/profiler/native_stack_sampler.cc
@@ -13,11 +13,11 @@
                             sizeof(uintptr_t)]),
       size_(buffer_size) {}
 
-NativeStackSampler::StackBuffer::~StackBuffer() {}
+NativeStackSampler::StackBuffer::~StackBuffer() = default;
 
-NativeStackSampler::NativeStackSampler() {}
+NativeStackSampler::NativeStackSampler() = default;
 
-NativeStackSampler::~NativeStackSampler() {}
+NativeStackSampler::~NativeStackSampler() = default;
 
 std::unique_ptr<NativeStackSampler::StackBuffer>
 NativeStackSampler::CreateStackBuffer() {
@@ -27,8 +27,8 @@
   return std::make_unique<StackBuffer>(size);
 }
 
-NativeStackSamplerTestDelegate::~NativeStackSamplerTestDelegate() {}
+NativeStackSamplerTestDelegate::~NativeStackSamplerTestDelegate() = default;
 
-NativeStackSamplerTestDelegate::NativeStackSamplerTestDelegate() {}
+NativeStackSamplerTestDelegate::NativeStackSamplerTestDelegate() = default;
 
 }  // namespace base
diff --git a/base/profiler/stack_sampling_profiler.cc b/base/profiler/stack_sampling_profiler.cc
index bacde01..35e6058 100644
--- a/base/profiler/stack_sampling_profiler.cc
+++ b/base/profiler/stack_sampling_profiler.cc
@@ -59,7 +59,7 @@
                                       const FilePath& filename)
     : base_address(base_address), id(id), filename(filename) {}
 
-StackSamplingProfiler::Module::~Module() {}
+StackSamplingProfiler::Module::~Module() = default;
 
 // StackSamplingProfiler::Frame -----------------------------------------------
 
@@ -67,7 +67,7 @@
                                     size_t module_index)
     : instruction_pointer(instruction_pointer), module_index(module_index) {}
 
-StackSamplingProfiler::Frame::~Frame() {}
+StackSamplingProfiler::Frame::~Frame() = default;
 
 StackSamplingProfiler::Frame::Frame()
     : instruction_pointer(0), module_index(kUnknownModuleIndex) {
@@ -75,11 +75,11 @@
 
 // StackSamplingProfiler::Sample ----------------------------------------------
 
-StackSamplingProfiler::Sample::Sample() {}
+StackSamplingProfiler::Sample::Sample() = default;
 
 StackSamplingProfiler::Sample::Sample(const Sample& sample) = default;
 
-StackSamplingProfiler::Sample::~Sample() {}
+StackSamplingProfiler::Sample::~Sample() = default;
 
 StackSamplingProfiler::Sample::Sample(const Frame& frame) {
   frames.push_back(std::move(frame));
@@ -90,12 +90,12 @@
 
 // StackSamplingProfiler::CallStackProfile ------------------------------------
 
-StackSamplingProfiler::CallStackProfile::CallStackProfile() {}
+StackSamplingProfiler::CallStackProfile::CallStackProfile() = default;
 
 StackSamplingProfiler::CallStackProfile::CallStackProfile(
     CallStackProfile&& other) = default;
 
-StackSamplingProfiler::CallStackProfile::~CallStackProfile() {}
+StackSamplingProfiler::CallStackProfile::~CallStackProfile() = default;
 
 StackSamplingProfiler::CallStackProfile&
 StackSamplingProfiler::CallStackProfile::operator=(CallStackProfile&& other) =
@@ -151,7 +151,7 @@
           callback(callback),
           finished(finished),
           native_sampler(std::move(sampler)) {}
-    ~CollectionContext() {}
+    ~CollectionContext() = default;
 
     // An identifier for the profiler associated with this collection, used to
     // uniquely identify the collection to outside interests.
diff --git a/base/profiler/stack_sampling_profiler_unittest.cc b/base/profiler/stack_sampling_profiler_unittest.cc
index 94c3d34..94b8a6e 100644
--- a/base/profiler/stack_sampling_profiler_unittest.cc
+++ b/base/profiler/stack_sampling_profiler_unittest.cc
@@ -863,7 +863,7 @@
   // Test delegate that counts samples.
   class SampleRecordedCounter : public NativeStackSamplerTestDelegate {
    public:
-    SampleRecordedCounter() {}
+    SampleRecordedCounter() = default;
 
     void OnPreStackWalk() override {
       AutoLock lock(lock_);
diff --git a/base/sequenced_task_runner.cc b/base/sequenced_task_runner.cc
index 4f36dc4..86771c6 100644
--- a/base/sequenced_task_runner.cc
+++ b/base/sequenced_task_runner.cc
@@ -28,8 +28,7 @@
     : task_runner_(std::move(task_runner)) {
 }
 
-OnTaskRunnerDeleter::~OnTaskRunnerDeleter() {
-}
+OnTaskRunnerDeleter::~OnTaskRunnerDeleter() = default;
 
 OnTaskRunnerDeleter::OnTaskRunnerDeleter(OnTaskRunnerDeleter&&) = default;
 
diff --git a/base/strings/string_util.cc b/base/strings/string_util.cc
index d538567..2112f23 100644
--- a/base/strings/string_util.cc
+++ b/base/strings/string_util.cc
@@ -36,7 +36,7 @@
 // prevents other code that might accidentally use Singleton<string> from
 // getting our internal one.
 struct EmptyStrings {
-  EmptyStrings() {}
+  EmptyStrings() = default;
   const std::string s;
   const string16 s16;
 
diff --git a/base/sync_socket_posix.cc b/base/sync_socket_posix.cc
index cc44e58..ff1e0e6 100644
--- a/base/sync_socket_posix.cc
+++ b/base/sync_socket_posix.cc
@@ -212,7 +212,7 @@
   return r;
 }
 
-CancelableSyncSocket::CancelableSyncSocket() {}
+CancelableSyncSocket::CancelableSyncSocket() = default;
 CancelableSyncSocket::CancelableSyncSocket(Handle handle)
     : SyncSocket(handle) {
 }
diff --git a/base/sync_socket_unittest.cc b/base/sync_socket_unittest.cc
index 202aa2c..fdcd9a1 100644
--- a/base/sync_socket_unittest.cc
+++ b/base/sync_socket_unittest.cc
@@ -30,7 +30,7 @@
     thread_.Start();
   }
 
-  ~HangingReceiveThread() override {}
+  ~HangingReceiveThread() override = default;
 
   void Run() override {
     int data = 0;
diff --git a/base/synchronization/waitable_event_watcher_posix.cc b/base/synchronization/waitable_event_watcher_posix.cc
index 80f142d..21368a8 100644
--- a/base/synchronization/waitable_event_watcher_posix.cc
+++ b/base/synchronization/waitable_event_watcher_posix.cc
@@ -46,7 +46,7 @@
 
  private:
   friend class RefCountedThreadSafe<Flag>;
-  ~Flag() {}
+  ~Flag() = default;
 
   mutable Lock lock_;
   bool flag_;
diff --git a/base/task_runner.cc b/base/task_runner.cc
index bbba702..aae9f9e 100644
--- a/base/task_runner.cc
+++ b/base/task_runner.cc
@@ -51,9 +51,9 @@
       from_here, std::move(task), std::move(reply));
 }
 
-TaskRunner::TaskRunner() {}
+TaskRunner::TaskRunner() = default;
 
-TaskRunner::~TaskRunner() {}
+TaskRunner::~TaskRunner() = default;
 
 void TaskRunner::OnDestruct() const {
   delete this;
diff --git a/base/test/fuzzed_data_provider.cc b/base/test/fuzzed_data_provider.cc
index 14ffb12..b2d443a 100644
--- a/base/test/fuzzed_data_provider.cc
+++ b/base/test/fuzzed_data_provider.cc
@@ -14,7 +14,7 @@
 FuzzedDataProvider::FuzzedDataProvider(const uint8_t* data, size_t size)
     : remaining_data_(reinterpret_cast<const char*>(data), size) {}
 
-FuzzedDataProvider::~FuzzedDataProvider() {}
+FuzzedDataProvider::~FuzzedDataProvider() = default;
 
 std::string FuzzedDataProvider::ConsumeBytes(size_t num_bytes) {
   num_bytes = std::min(num_bytes, remaining_data_.length());
diff --git a/base/test/gtest_util.cc b/base/test/gtest_util.cc
index 1552c1a..e5d38f4 100644
--- a/base/test/gtest_util.cc
+++ b/base/test/gtest_util.cc
@@ -16,8 +16,7 @@
 
 namespace base {
 
-TestIdentifier::TestIdentifier() {
-}
+TestIdentifier::TestIdentifier() = default;
 
 TestIdentifier::TestIdentifier(const TestIdentifier& other) = default;
 
diff --git a/base/test/histogram_tester.cc b/base/test/histogram_tester.cc
index 485f30f..64b4ca2 100644
--- a/base/test/histogram_tester.cc
+++ b/base/test/histogram_tester.cc
@@ -29,8 +29,7 @@
   }
 }
 
-HistogramTester::~HistogramTester() {
-}
+HistogramTester::~HistogramTester() = default;
 
 void HistogramTester::ExpectUniqueSample(
     const std::string& name,
diff --git a/base/test/launcher/test_launcher.cc b/base/test/launcher/test_launcher.cc
index 36ad6f4..52055e5 100644
--- a/base/test/launcher/test_launcher.cc
+++ b/base/test/launcher/test_launcher.cc
@@ -493,7 +493,7 @@
 const char kGTestRunDisabledTestsFlag[] = "gtest_also_run_disabled_tests";
 const char kGTestOutputFlag[] = "gtest_output";
 
-TestLauncherDelegate::~TestLauncherDelegate() {}
+TestLauncherDelegate::~TestLauncherDelegate() = default;
 
 TestLauncher::LaunchOptions::LaunchOptions() = default;
 TestLauncher::LaunchOptions::LaunchOptions(const LaunchOptions& other) =
@@ -521,7 +521,7 @@
                       &TestLauncher::OnOutputTimeout),
       parallel_jobs_(parallel_jobs) {}
 
-TestLauncher::~TestLauncher() {}
+TestLauncher::~TestLauncher() = default;
 
 bool TestLauncher::Run() {
   if (!Init())
diff --git a/base/test/launcher/test_launcher_tracer.cc b/base/test/launcher/test_launcher_tracer.cc
index 4ffa8de..d525df7 100644
--- a/base/test/launcher/test_launcher_tracer.cc
+++ b/base/test/launcher/test_launcher_tracer.cc
@@ -13,7 +13,7 @@
 TestLauncherTracer::TestLauncherTracer()
     : trace_start_time_(TimeTicks::Now()) {}
 
-TestLauncherTracer::~TestLauncherTracer() {}
+TestLauncherTracer::~TestLauncherTracer() = default;
 
 void TestLauncherTracer::RecordProcessExecution(TimeTicks start_time,
                                                 TimeDelta duration) {
diff --git a/base/test/launcher/test_result.cc b/base/test/launcher/test_result.cc
index ce4776a..9f37a2b 100644
--- a/base/test/launcher/test_result.cc
+++ b/base/test/launcher/test_result.cc
@@ -49,8 +49,7 @@
 TestResult::TestResult() : status(TEST_UNKNOWN) {
 }
 
-TestResult::~TestResult() {
-}
+TestResult::~TestResult() = default;
 
 TestResult::TestResult(const TestResult& other) = default;
 TestResult::TestResult(TestResult&& other) = default;
diff --git a/base/test/launcher/test_results_tracker.cc b/base/test/launcher/test_results_tracker.cc
index 36d9075..16587a1 100644
--- a/base/test/launcher/test_results_tracker.cc
+++ b/base/test/launcher/test_results_tracker.cc
@@ -494,23 +494,18 @@
   fflush(stdout);
 }
 
-
-TestResultsTracker::AggregateTestResult::AggregateTestResult() {
-}
+TestResultsTracker::AggregateTestResult::AggregateTestResult() = default;
 
 TestResultsTracker::AggregateTestResult::AggregateTestResult(
     const AggregateTestResult& other) = default;
 
-TestResultsTracker::AggregateTestResult::~AggregateTestResult() {
-}
+TestResultsTracker::AggregateTestResult::~AggregateTestResult() = default;
 
-TestResultsTracker::PerIterationData::PerIterationData() {
-}
+TestResultsTracker::PerIterationData::PerIterationData() = default;
 
 TestResultsTracker::PerIterationData::PerIterationData(
     const PerIterationData& other) = default;
 
-TestResultsTracker::PerIterationData::~PerIterationData() {
-}
+TestResultsTracker::PerIterationData::~PerIterationData() = default;
 
 }  // namespace base
diff --git a/base/test/launcher/unit_test_launcher.cc b/base/test/launcher/unit_test_launcher.cc
index 02cd424..17be529 100644
--- a/base/test/launcher/unit_test_launcher.cc
+++ b/base/test/launcher/unit_test_launcher.cc
@@ -112,8 +112,7 @@
 
 class DefaultUnitTestPlatformDelegate : public UnitTestPlatformDelegate {
  public:
-  DefaultUnitTestPlatformDelegate() {
-  }
+  DefaultUnitTestPlatformDelegate() = default;
 
  private:
   // UnitTestPlatformDelegate:
diff --git a/base/test/mock_devices_changed_observer.cc b/base/test/mock_devices_changed_observer.cc
index c05f26a..9fc57cd 100644
--- a/base/test/mock_devices_changed_observer.cc
+++ b/base/test/mock_devices_changed_observer.cc
@@ -6,10 +6,8 @@
 
 namespace base {
 
-MockDevicesChangedObserver::MockDevicesChangedObserver() {
-}
+MockDevicesChangedObserver::MockDevicesChangedObserver() = default;
 
-MockDevicesChangedObserver::~MockDevicesChangedObserver() {
-}
+MockDevicesChangedObserver::~MockDevicesChangedObserver() = default;
 
 }  // namespace base
diff --git a/base/test/mock_entropy_provider.cc b/base/test/mock_entropy_provider.cc
index 5ebf19a..f3fd2a4 100644
--- a/base/test/mock_entropy_provider.cc
+++ b/base/test/mock_entropy_provider.cc
@@ -9,7 +9,7 @@
 MockEntropyProvider::MockEntropyProvider() : entropy_value_(0.5) {}
 MockEntropyProvider::MockEntropyProvider(double entropy_value)
     : entropy_value_(entropy_value) {}
-MockEntropyProvider::~MockEntropyProvider() {}
+MockEntropyProvider::~MockEntropyProvider() = default;
 
 double MockEntropyProvider::GetEntropyForTrial(
     const std::string& trial_name,
diff --git a/base/test/multiprocess_test.cc b/base/test/multiprocess_test.cc
index 68f7604..46556f7 100644
--- a/base/test/multiprocess_test.cc
+++ b/base/test/multiprocess_test.cc
@@ -50,8 +50,7 @@
 
 // MultiProcessTest ------------------------------------------------------------
 
-MultiProcessTest::MultiProcessTest() {
-}
+MultiProcessTest::MultiProcessTest() = default;
 
 Process MultiProcessTest::SpawnChild(const std::string& procname) {
   LaunchOptions options;
diff --git a/base/test/null_task_runner.cc b/base/test/null_task_runner.cc
index 44a41a1..dfa26fa 100644
--- a/base/test/null_task_runner.cc
+++ b/base/test/null_task_runner.cc
@@ -6,9 +6,9 @@
 
 namespace base {
 
-NullTaskRunner::NullTaskRunner() {}
+NullTaskRunner::NullTaskRunner() = default;
 
-NullTaskRunner::~NullTaskRunner() {}
+NullTaskRunner::~NullTaskRunner() = default;
 
 bool NullTaskRunner::PostDelayedTask(const Location& from_here,
                                      OnceClosure task,
diff --git a/base/test/power_monitor_test_base.cc b/base/test/power_monitor_test_base.cc
index 9eba874..f662b53 100644
--- a/base/test/power_monitor_test_base.cc
+++ b/base/test/power_monitor_test_base.cc
@@ -17,8 +17,7 @@
       << "PowerMonitorTestSource requires a MessageLoop.";
 }
 
-PowerMonitorTestSource::~PowerMonitorTestSource() {
-}
+PowerMonitorTestSource::~PowerMonitorTestSource() = default;
 
 void PowerMonitorTestSource::GeneratePowerStateEvent(bool on_battery_power) {
   test_on_battery_power_ = on_battery_power;
@@ -47,8 +46,7 @@
       resumes_(0) {
 }
 
-PowerMonitorTestObserver::~PowerMonitorTestObserver() {
-}
+PowerMonitorTestObserver::~PowerMonitorTestObserver() = default;
 
 // PowerObserver callbacks.
 void PowerMonitorTestObserver::OnPowerStateChange(bool on_battery_power) {
diff --git a/base/test/scoped_feature_list.cc b/base/test/scoped_feature_list.cc
index 170500d..bd3e3a4 100644
--- a/base/test/scoped_feature_list.cc
+++ b/base/test/scoped_feature_list.cc
@@ -81,7 +81,7 @@
 
 }  // namespace
 
-ScopedFeatureList::ScopedFeatureList() {}
+ScopedFeatureList::ScopedFeatureList() = default;
 
 ScopedFeatureList::~ScopedFeatureList() {
   if (field_trial_override_)
diff --git a/base/test/sequenced_task_runner_test_template.cc b/base/test/sequenced_task_runner_test_template.cc
index 0022aac..de68492 100644
--- a/base/test/sequenced_task_runner_test_template.cc
+++ b/base/test/sequenced_task_runner_test_template.cc
@@ -99,8 +99,7 @@
     task_end_cv_.Wait();
 }
 
-SequencedTaskTracker::~SequencedTaskTracker() {
-}
+SequencedTaskTracker::~SequencedTaskTracker() = default;
 
 void PrintTo(const TaskEvent& event, std::ostream* os) {
   *os << "(i=" << event.i << ", type=";
diff --git a/base/test/simple_test_clock.cc b/base/test/simple_test_clock.cc
index a2bdc2a..cf95065 100644
--- a/base/test/simple_test_clock.cc
+++ b/base/test/simple_test_clock.cc
@@ -6,9 +6,9 @@
 
 namespace base {
 
-SimpleTestClock::SimpleTestClock() {}
+SimpleTestClock::SimpleTestClock() = default;
 
-SimpleTestClock::~SimpleTestClock() {}
+SimpleTestClock::~SimpleTestClock() = default;
 
 Time SimpleTestClock::Now() {
   AutoLock lock(lock_);
diff --git a/base/test/simple_test_tick_clock.cc b/base/test/simple_test_tick_clock.cc
index c6375bd..d454646 100644
--- a/base/test/simple_test_tick_clock.cc
+++ b/base/test/simple_test_tick_clock.cc
@@ -8,9 +8,9 @@
 
 namespace base {
 
-SimpleTestTickClock::SimpleTestTickClock() {}
+SimpleTestTickClock::SimpleTestTickClock() = default;
 
-SimpleTestTickClock::~SimpleTestTickClock() {}
+SimpleTestTickClock::~SimpleTestTickClock() = default;
 
 TimeTicks SimpleTestTickClock::NowTicks() {
   AutoLock lock(lock_);
diff --git a/base/test/task_runner_test_template.cc b/base/test/task_runner_test_template.cc
index 5a72d31..fe70247 100644
--- a/base/test/task_runner_test_template.cc
+++ b/base/test/task_runner_test_template.cc
@@ -10,7 +10,7 @@
 
 TaskTracker::TaskTracker() : task_runs_(0), task_runs_cv_(&lock_) {}
 
-TaskTracker::~TaskTracker() {}
+TaskTracker::~TaskTracker() = default;
 
 Closure TaskTracker::WrapTask(const Closure& task, int i) {
   return Bind(&TaskTracker::RunTask, this, task, i);
diff --git a/base/test/test_discardable_memory_allocator.cc b/base/test/test_discardable_memory_allocator.cc
index 23aac68..37397d8 100644
--- a/base/test/test_discardable_memory_allocator.cc
+++ b/base/test/test_discardable_memory_allocator.cc
@@ -53,11 +53,9 @@
 
 }  // namespace
 
-TestDiscardableMemoryAllocator::TestDiscardableMemoryAllocator() {
-}
+TestDiscardableMemoryAllocator::TestDiscardableMemoryAllocator() = default;
 
-TestDiscardableMemoryAllocator::~TestDiscardableMemoryAllocator() {
-}
+TestDiscardableMemoryAllocator::~TestDiscardableMemoryAllocator() = default;
 
 std::unique_ptr<DiscardableMemory>
 TestDiscardableMemoryAllocator::AllocateLockedDiscardableMemory(size_t size) {
diff --git a/base/test/test_message_loop.cc b/base/test/test_message_loop.cc
index 7283a87..bd3610f 100644
--- a/base/test/test_message_loop.cc
+++ b/base/test/test_message_loop.cc
@@ -7,7 +7,7 @@
 
 namespace base {
 
-TestMessageLoop::TestMessageLoop() {}
+TestMessageLoop::TestMessageLoop() = default;
 
 TestMessageLoop::TestMessageLoop(MessageLoop::Type type) : loop_(type) {}
 
diff --git a/base/test/test_mock_time_task_runner.cc b/base/test/test_mock_time_task_runner.cc
index 86cebb0..d97e35a 100644
--- a/base/test/test_mock_time_task_runner.cc
+++ b/base/test/test_mock_time_task_runner.cc
@@ -162,8 +162,8 @@
                             nestability),
       ordinal(ordinal) {}
 
-TestMockTimeTaskRunner::TestOrderedPendingTask::~TestOrderedPendingTask() {
-}
+TestMockTimeTaskRunner::TestOrderedPendingTask::~TestOrderedPendingTask() =
+    default;
 
 TestMockTimeTaskRunner::TestOrderedPendingTask&
 TestMockTimeTaskRunner::TestOrderedPendingTask::operator=(
@@ -203,8 +203,7 @@
   }
 }
 
-TestMockTimeTaskRunner::~TestMockTimeTaskRunner() {
-}
+TestMockTimeTaskRunner::~TestMockTimeTaskRunner() = default;
 
 void TestMockTimeTaskRunner::FastForwardBy(TimeDelta delta) {
   DCHECK(thread_checker_.CalledOnValidThread());
diff --git a/base/test/test_pending_task.cc b/base/test/test_pending_task.cc
index 999de7e..f9cfa8e 100644
--- a/base/test/test_pending_task.cc
+++ b/base/test/test_pending_task.cc
@@ -36,7 +36,7 @@
   return GetTimeToRun() < other.GetTimeToRun();
 }
 
-TestPendingTask::~TestPendingTask() {}
+TestPendingTask::~TestPendingTask() = default;
 
 void TestPendingTask::AsValueInto(base::trace_event::TracedValue* state) const {
   state->SetInteger("run_at", GetTimeToRun().ToInternalValue());
diff --git a/base/test/thread_test_helper.cc b/base/test/thread_test_helper.cc
index 037de2b..f3ca780 100644
--- a/base/test/thread_test_helper.cc
+++ b/base/test/thread_test_helper.cc
@@ -31,7 +31,7 @@
 
 void ThreadTestHelper::RunTest() { set_test_result(true); }
 
-ThreadTestHelper::~ThreadTestHelper() {}
+ThreadTestHelper::~ThreadTestHelper() = default;
 
 void ThreadTestHelper::RunOnSequence() {
   RunTest();
diff --git a/base/test/trace_event_analyzer.cc b/base/test/trace_event_analyzer.cc
index 0431bcc..5d6d081 100644
--- a/base/test/trace_event_analyzer.cc
+++ b/base/test/trace_event_analyzer.cc
@@ -27,8 +27,7 @@
 
 TraceEvent::TraceEvent(TraceEvent&& other) = default;
 
-TraceEvent::~TraceEvent() {
-}
+TraceEvent::~TraceEvent() = default;
 
 TraceEvent& TraceEvent::operator=(TraceEvent&& rhs) = default;
 
@@ -205,8 +204,7 @@
 QueryNode::QueryNode(const Query& query) : query_(query) {
 }
 
-QueryNode::~QueryNode() {
-}
+QueryNode::~QueryNode() = default;
 
 // Query
 
@@ -227,19 +225,9 @@
       is_pattern_(false) {
 }
 
-Query::Query(const Query& query)
-    : type_(query.type_),
-      operator_(query.operator_),
-      left_(query.left_),
-      right_(query.right_),
-      member_(query.member_),
-      number_(query.number_),
-      string_(query.string_),
-      is_pattern_(query.is_pattern_) {
-}
+Query::Query(const Query& query) = default;
 
-Query::~Query() {
-}
+Query::~Query() = default;
 
 Query Query::String(const std::string& str) {
   return Query(str);
@@ -728,8 +716,7 @@
 TraceAnalyzer::TraceAnalyzer()
     : ignore_metadata_events_(false), allow_association_changes_(true) {}
 
-TraceAnalyzer::~TraceAnalyzer() {
-}
+TraceAnalyzer::~TraceAnalyzer() = default;
 
 // static
 TraceAnalyzer* TraceAnalyzer::Create(const std::string& json_events) {
diff --git a/base/threading/sequenced_worker_pool.cc b/base/threading/sequenced_worker_pool.cc
index 8dc2b6f..4a2fdfd 100644
--- a/base/threading/sequenced_worker_pool.cc
+++ b/base/threading/sequenced_worker_pool.cc
@@ -80,7 +80,7 @@
         sequence_task_number(0),
         shutdown_behavior(SequencedWorkerPool::BLOCK_SHUTDOWN) {}
 
-  ~SequencedTask() {}
+  ~SequencedTask() = default;
 
   SequencedTask(SequencedTask&&) = default;
   SequencedTask& operator=(SequencedTask&&) = default;
@@ -151,8 +151,7 @@
     SequencedWorkerPool::WorkerShutdown shutdown_behavior)
     : pool_(std::move(pool)), shutdown_behavior_(shutdown_behavior) {}
 
-SequencedWorkerPoolTaskRunner::~SequencedWorkerPoolTaskRunner() {
-}
+SequencedWorkerPoolTaskRunner::~SequencedWorkerPoolTaskRunner() = default;
 
 bool SequencedWorkerPoolTaskRunner::PostDelayedTask(const Location& from_here,
                                                     OnceClosure task,
@@ -578,8 +577,7 @@
   Start();
 }
 
-SequencedWorkerPool::Worker::~Worker() {
-}
+SequencedWorkerPool::Worker::~Worker() = default;
 
 void SequencedWorkerPool::Worker::Run() {
   DCHECK_EQ(AllPoolsState::USE_WORKER_POOL, g_all_pools_state);
@@ -1474,7 +1472,7 @@
                        task_priority,
                        observer)) {}
 
-SequencedWorkerPool::~SequencedWorkerPool() {}
+SequencedWorkerPool::~SequencedWorkerPool() = default;
 
 void SequencedWorkerPool::OnDestruct() const {
   // Avoid deleting ourselves on a worker thread (which would deadlock).
diff --git a/base/threading/sequenced_worker_pool_unittest.cc b/base/threading/sequenced_worker_pool_unittest.cc
index 8afd5a1..32ed912 100644
--- a/base/threading/sequenced_worker_pool_unittest.cc
+++ b/base/threading/sequenced_worker_pool_unittest.cc
@@ -210,7 +210,7 @@
 
  private:
   friend class base::RefCountedThreadSafe<TestTracker>;
-  ~TestTracker() {}
+  ~TestTracker() = default;
 
   void SignalWorkerDone(int id) {
     {
@@ -1105,9 +1105,9 @@
 
 class SequencedWorkerPoolTaskRunnerTestDelegate {
  public:
-  SequencedWorkerPoolTaskRunnerTestDelegate() {}
+  SequencedWorkerPoolTaskRunnerTestDelegate() = default;
 
-  ~SequencedWorkerPoolTaskRunnerTestDelegate() {}
+  ~SequencedWorkerPoolTaskRunnerTestDelegate() = default;
 
   void StartTaskRunner() {
     pool_owner_.reset(
@@ -1140,10 +1140,9 @@
 
 class SequencedWorkerPoolTaskRunnerWithShutdownBehaviorTestDelegate {
  public:
-  SequencedWorkerPoolTaskRunnerWithShutdownBehaviorTestDelegate() {}
+  SequencedWorkerPoolTaskRunnerWithShutdownBehaviorTestDelegate() = default;
 
-  ~SequencedWorkerPoolTaskRunnerWithShutdownBehaviorTestDelegate() {
-  }
+  ~SequencedWorkerPoolTaskRunnerWithShutdownBehaviorTestDelegate() = default;
 
   void StartTaskRunner() {
     pool_owner_.reset(
@@ -1180,10 +1179,9 @@
 
 class SequencedWorkerPoolSequencedTaskRunnerTestDelegate {
  public:
-  SequencedWorkerPoolSequencedTaskRunnerTestDelegate() {}
+  SequencedWorkerPoolSequencedTaskRunnerTestDelegate() = default;
 
-  ~SequencedWorkerPoolSequencedTaskRunnerTestDelegate() {
-  }
+  ~SequencedWorkerPoolSequencedTaskRunnerTestDelegate() = default;
 
   void StartTaskRunner() {
     pool_owner_.reset(new SequencedWorkerPoolOwner(
diff --git a/base/threading/simple_thread_unittest.cc b/base/threading/simple_thread_unittest.cc
index 0e52500..4e618f9 100644
--- a/base/threading/simple_thread_unittest.cc
+++ b/base/threading/simple_thread_unittest.cc
@@ -19,7 +19,7 @@
 class SetIntRunner : public DelegateSimpleThread::Delegate {
  public:
   SetIntRunner(int* ptr, int val) : ptr_(ptr), val_(val) { }
-  ~SetIntRunner() override {}
+  ~SetIntRunner() override = default;
 
  private:
   void Run() override { *ptr_ = val_; }
@@ -69,7 +69,7 @@
 class WaitEventRunner : public DelegateSimpleThread::Delegate {
  public:
   explicit WaitEventRunner(WaitableEvent* event) : event_(event) { }
-  ~WaitEventRunner() override {}
+  ~WaitEventRunner() override = default;
 
  private:
   void Run() override {
diff --git a/base/threading/thread_collision_warner_unittest.cc b/base/threading/thread_collision_warner_unittest.cc
index 71447ef..cd56768 100644
--- a/base/threading/thread_collision_warner_unittest.cc
+++ b/base/threading/thread_collision_warner_unittest.cc
@@ -46,7 +46,7 @@
 
   void warn() override { failed_ = true; }
 
-  ~AssertReporter() override {}
+  ~AssertReporter() override = default;
 
   bool fail_state() const { return failed_; }
   void reset() { failed_ = false; }
diff --git a/base/threading/thread_id_name_manager.cc b/base/threading/thread_id_name_manager.cc
index 03c1eee..74a42c7 100644
--- a/base/threading/thread_id_name_manager.cc
+++ b/base/threading/thread_id_name_manager.cc
@@ -28,8 +28,7 @@
   name_to_interned_name_[kDefaultName] = g_default_name;
 }
 
-ThreadIdNameManager::~ThreadIdNameManager() {
-}
+ThreadIdNameManager::~ThreadIdNameManager() = default;
 
 ThreadIdNameManager* ThreadIdNameManager::GetInstance() {
   return Singleton<ThreadIdNameManager,
diff --git a/base/threading/thread_local_storage_unittest.cc b/base/threading/thread_local_storage_unittest.cc
index 335252b..a577e76 100644
--- a/base/threading/thread_local_storage_unittest.cc
+++ b/base/threading/thread_local_storage_unittest.cc
@@ -35,7 +35,7 @@
   explicit ThreadLocalStorageRunner(int* tls_value_ptr)
       : tls_value_ptr_(tls_value_ptr) {}
 
-  ~ThreadLocalStorageRunner() override {}
+  ~ThreadLocalStorageRunner() override = default;
 
   void Run() override {
     *tls_value_ptr_ = kInitialTlsValue;
diff --git a/base/threading/thread_local_unittest.cc b/base/threading/thread_local_unittest.cc
index 8517683..54f2ad2 100644
--- a/base/threading/thread_local_unittest.cc
+++ b/base/threading/thread_local_unittest.cc
@@ -20,7 +20,7 @@
       : tlp_(tlp),
         done_(done) {
   }
-  ~ThreadLocalTesterBase() override {}
+  ~ThreadLocalTesterBase() override = default;
 
  protected:
   TLPType* tlp_;
@@ -31,7 +31,7 @@
  public:
   SetThreadLocal(TLPType* tlp, base::WaitableEvent* done)
       : ThreadLocalTesterBase(tlp, done), val_(nullptr) {}
-  ~SetThreadLocal() override {}
+  ~SetThreadLocal() override = default;
 
   void set_value(char* val) { val_ = val; }
 
@@ -49,7 +49,7 @@
  public:
   GetThreadLocal(TLPType* tlp, base::WaitableEvent* done)
       : ThreadLocalTesterBase(tlp, done), ptr_(nullptr) {}
-  ~GetThreadLocal() override {}
+  ~GetThreadLocal() override = default;
 
   void set_ptr(char** ptr) { ptr_ = ptr; }
 
diff --git a/base/threading/watchdog_unittest.cc b/base/threading/watchdog_unittest.cc
index 473f3ec..f534a86 100644
--- a/base/threading/watchdog_unittest.cc
+++ b/base/threading/watchdog_unittest.cc
@@ -27,7 +27,7 @@
         alarm_counter_(0) {
   }
 
-  ~WatchdogCounter() override {}
+  ~WatchdogCounter() override = default;
 
   void Alarm() override {
     alarm_counter_++;
diff --git a/base/time/clock.cc b/base/time/clock.cc
index 34dc37e..9e3f271 100644
--- a/base/time/clock.cc
+++ b/base/time/clock.cc
@@ -6,6 +6,6 @@
 
 namespace base {
 
-Clock::~Clock() {}
+Clock::~Clock() = default;
 
 }  // namespace base
diff --git a/base/time/default_clock.cc b/base/time/default_clock.cc
index 2f90dad..284e12d 100644
--- a/base/time/default_clock.cc
+++ b/base/time/default_clock.cc
@@ -8,7 +8,7 @@
 
 namespace base {
 
-DefaultClock::~DefaultClock() {}
+DefaultClock::~DefaultClock() = default;
 
 Time DefaultClock::Now() {
   return Time::Now();
diff --git a/base/time/default_tick_clock.cc b/base/time/default_tick_clock.cc
index ce394de..96d4d86 100644
--- a/base/time/default_tick_clock.cc
+++ b/base/time/default_tick_clock.cc
@@ -8,7 +8,7 @@
 
 namespace base {
 
-DefaultTickClock::~DefaultTickClock() {}
+DefaultTickClock::~DefaultTickClock() = default;
 
 TimeTicks DefaultTickClock::NowTicks() {
   return TimeTicks::Now();
diff --git a/base/time/tick_clock.cc b/base/time/tick_clock.cc
index 495805c..79e396d 100644
--- a/base/time/tick_clock.cc
+++ b/base/time/tick_clock.cc
@@ -6,6 +6,6 @@
 
 namespace base {
 
-TickClock::~TickClock() {}
+TickClock::~TickClock() = default;
 
 }  // namespace base
diff --git a/base/timer/hi_res_timer_manager_posix.cc b/base/timer/hi_res_timer_manager_posix.cc
index 89012b9..d2a3aa5 100644
--- a/base/timer/hi_res_timer_manager_posix.cc
+++ b/base/timer/hi_res_timer_manager_posix.cc
@@ -12,8 +12,7 @@
     : hi_res_clock_available_(false) {
 }
 
-HighResolutionTimerManager::~HighResolutionTimerManager() {
-}
+HighResolutionTimerManager::~HighResolutionTimerManager() = default;
 
 void HighResolutionTimerManager::OnPowerStateChange(bool on_battery_power) {
 }
diff --git a/base/timer/mock_timer.cc b/base/timer/mock_timer.cc
index b53c006..ca0893b 100644
--- a/base/timer/mock_timer.cc
+++ b/base/timer/mock_timer.cc
@@ -17,8 +17,7 @@
                      bool is_repeating)
     : Timer(true, is_repeating), delay_(delay), is_running_(false) {}
 
-MockTimer::~MockTimer() {
-}
+MockTimer::~MockTimer() = default;
 
 bool MockTimer::IsRunning() const {
   return is_running_;
diff --git a/base/timer/mock_timer_unittest.cc b/base/timer/mock_timer_unittest.cc
index a389815..ed05f39 100644
--- a/base/timer/mock_timer_unittest.cc
+++ b/base/timer/mock_timer_unittest.cc
@@ -56,8 +56,8 @@
 
 class HasWeakPtr : public base::SupportsWeakPtr<HasWeakPtr> {
  public:
-  HasWeakPtr() {}
-  virtual ~HasWeakPtr() {}
+  HasWeakPtr() = default;
+  virtual ~HasWeakPtr() = default;
 
  private:
   DISALLOW_COPY_AND_ASSIGN(HasWeakPtr);
diff --git a/base/tools_sanity_unittest.cc b/base/tools_sanity_unittest.cc
index af2081d..5c41bd7 100644
--- a/base/tools_sanity_unittest.cc
+++ b/base/tools_sanity_unittest.cc
@@ -254,7 +254,7 @@
 class TOOLS_SANITY_TEST_CONCURRENT_THREAD : public PlatformThread::Delegate {
  public:
   explicit TOOLS_SANITY_TEST_CONCURRENT_THREAD(bool *value) : value_(value) {}
-  ~TOOLS_SANITY_TEST_CONCURRENT_THREAD() override {}
+  ~TOOLS_SANITY_TEST_CONCURRENT_THREAD() override = default;
   void ThreadMain() override {
     *value_ = true;
 
@@ -270,7 +270,7 @@
 class ReleaseStoreThread : public PlatformThread::Delegate {
  public:
   explicit ReleaseStoreThread(base::subtle::Atomic32 *value) : value_(value) {}
-  ~ReleaseStoreThread() override {}
+  ~ReleaseStoreThread() override = default;
   void ThreadMain() override {
     base::subtle::Release_Store(value_, kMagicValue);
 
@@ -286,7 +286,7 @@
 class AcquireLoadThread : public PlatformThread::Delegate {
  public:
   explicit AcquireLoadThread(base::subtle::Atomic32 *value) : value_(value) {}
-  ~AcquireLoadThread() override {}
+  ~AcquireLoadThread() override = default;
   void ThreadMain() override {
     // Wait for the other thread to make Release_Store
     PlatformThread::Sleep(TimeDelta::FromMilliseconds(100));
diff --git a/base/trace_event/event_name_filter.cc b/base/trace_event/event_name_filter.cc
index 8d0058c..7bf932e 100644
--- a/base/trace_event/event_name_filter.cc
+++ b/base/trace_event/event_name_filter.cc
@@ -16,7 +16,7 @@
     std::unique_ptr<EventNamesWhitelist> event_names_whitelist)
     : event_names_whitelist_(std::move(event_names_whitelist)) {}
 
-EventNameFilter::~EventNameFilter() {}
+EventNameFilter::~EventNameFilter() = default;
 
 bool EventNameFilter::FilterTraceEvent(const TraceEvent& trace_event) const {
   return event_names_whitelist_->count(trace_event.name()) != 0;
diff --git a/base/trace_event/heap_profiler_allocation_context_tracker.cc b/base/trace_event/heap_profiler_allocation_context_tracker.cc
index f1fff8b..e9466a8 100644
--- a/base/trace_event/heap_profiler_allocation_context_tracker.cc
+++ b/base/trace_event/heap_profiler_allocation_context_tracker.cc
@@ -87,7 +87,7 @@
   tracked_stack_.reserve(kMaxStackDepth);
   task_contexts_.reserve(kMaxTaskDepth);
 }
-AllocationContextTracker::~AllocationContextTracker() {}
+AllocationContextTracker::~AllocationContextTracker() = default;
 
 // static
 void AllocationContextTracker::SetCurrentThreadName(const char* name) {
diff --git a/base/trace_event/heap_profiler_allocation_register.cc b/base/trace_event/heap_profiler_allocation_register.cc
index 22b1788..44f34423 100644
--- a/base/trace_event/heap_profiler_allocation_register.cc
+++ b/base/trace_event/heap_profiler_allocation_register.cc
@@ -91,7 +91,7 @@
   DCHECK_EQ(index_and_flag.first, kOutOfStorageBacktraceIndex);
 }
 
-AllocationRegister::~AllocationRegister() {}
+AllocationRegister::~AllocationRegister() = default;
 
 bool AllocationRegister::Insert(const void* address,
                                 size_t size,
diff --git a/base/trace_event/heap_profiler_event_filter.cc b/base/trace_event/heap_profiler_event_filter.cc
index 67125ff..937072c 100644
--- a/base/trace_event/heap_profiler_event_filter.cc
+++ b/base/trace_event/heap_profiler_event_filter.cc
@@ -32,8 +32,8 @@
 // static
 const char HeapProfilerEventFilter::kName[] = "heap_profiler_predicate";
 
-HeapProfilerEventFilter::HeapProfilerEventFilter() {}
-HeapProfilerEventFilter::~HeapProfilerEventFilter() {}
+HeapProfilerEventFilter::HeapProfilerEventFilter() = default;
+HeapProfilerEventFilter::~HeapProfilerEventFilter() = default;
 
 bool HeapProfilerEventFilter::FilterTraceEvent(
     const TraceEvent& trace_event) const {
diff --git a/base/trace_event/heap_profiler_heap_dump_writer.cc b/base/trace_event/heap_profiler_heap_dump_writer.cc
index 9f64f6e..71c3d97 100644
--- a/base/trace_event/heap_profiler_heap_dump_writer.cc
+++ b/base/trace_event/heap_profiler_heap_dump_writer.cc
@@ -186,7 +186,7 @@
       type_name_deduplicator_(type_name_deduplicator),
       breakdown_threshold_bytes_(breakdown_threshold_bytes) {}
 
-HeapDumpWriter::~HeapDumpWriter() {}
+HeapDumpWriter::~HeapDumpWriter() = default;
 
 bool HeapDumpWriter::AddEntryForBucket(const Bucket& bucket) {
   // The contexts in the bucket are all different, but the [begin, cursor) range
diff --git a/base/trace_event/heap_profiler_serialization_state.cc b/base/trace_event/heap_profiler_serialization_state.cc
index d332d43..b1866e7 100644
--- a/base/trace_event/heap_profiler_serialization_state.cc
+++ b/base/trace_event/heap_profiler_serialization_state.cc
@@ -9,7 +9,7 @@
 
 HeapProfilerSerializationState::HeapProfilerSerializationState()
     : heap_profiler_breakdown_threshold_bytes_(0) {}
-HeapProfilerSerializationState::~HeapProfilerSerializationState() {}
+HeapProfilerSerializationState::~HeapProfilerSerializationState() = default;
 
 void HeapProfilerSerializationState::SetStackFrameDeduplicator(
     std::unique_ptr<StackFrameDeduplicator> stack_frame_deduplicator) {
diff --git a/base/trace_event/heap_profiler_stack_frame_deduplicator.cc b/base/trace_event/heap_profiler_stack_frame_deduplicator.cc
index 351117f..c05cd0a 100644
--- a/base/trace_event/heap_profiler_stack_frame_deduplicator.cc
+++ b/base/trace_event/heap_profiler_stack_frame_deduplicator.cc
@@ -39,14 +39,14 @@
                                              int parent_frame_index)
     : frame(frame), parent_frame_index(parent_frame_index) {}
 StackFrameDeduplicator::FrameNode::FrameNode(const FrameNode& other) = default;
-StackFrameDeduplicator::FrameNode::~FrameNode() {}
+StackFrameDeduplicator::FrameNode::~FrameNode() = default;
 
 size_t StackFrameDeduplicator::FrameNode::EstimateMemoryUsage() const {
   return base::trace_event::EstimateMemoryUsage(children);
 }
 
-StackFrameDeduplicator::StackFrameDeduplicator() {}
-StackFrameDeduplicator::~StackFrameDeduplicator() {}
+StackFrameDeduplicator::StackFrameDeduplicator() = default;
+StackFrameDeduplicator::~StackFrameDeduplicator() = default;
 
 bool StackFrameDeduplicator::Match(int frame_index,
                                    const StackFrame* begin_frame,
diff --git a/base/trace_event/heap_profiler_type_name_deduplicator.cc b/base/trace_event/heap_profiler_type_name_deduplicator.cc
index 8fb81a2..360f239 100644
--- a/base/trace_event/heap_profiler_type_name_deduplicator.cc
+++ b/base/trace_event/heap_profiler_type_name_deduplicator.cc
@@ -24,7 +24,7 @@
   type_ids_.insert(std::make_pair(nullptr, 0));
 }
 
-TypeNameDeduplicator::~TypeNameDeduplicator() {}
+TypeNameDeduplicator::~TypeNameDeduplicator() = default;
 
 int TypeNameDeduplicator::Insert(const char* type_name) {
   auto result = type_ids_.insert(std::make_pair(type_name, 0));
diff --git a/base/trace_event/malloc_dump_provider.cc b/base/trace_event/malloc_dump_provider.cc
index b7fdae8..ffd5191 100644
--- a/base/trace_event/malloc_dump_provider.cc
+++ b/base/trace_event/malloc_dump_provider.cc
@@ -191,7 +191,7 @@
 MallocDumpProvider::MallocDumpProvider()
     : tid_dumping_heap_(kInvalidThreadId) {}
 
-MallocDumpProvider::~MallocDumpProvider() {}
+MallocDumpProvider::~MallocDumpProvider() = default;
 
 // Called at trace dump point time. Creates a snapshot the memory counters for
 // the current process.
diff --git a/base/trace_event/memory_allocator_dump.cc b/base/trace_event/memory_allocator_dump.cc
index 6566cad..5260a73 100644
--- a/base/trace_event/memory_allocator_dump.cc
+++ b/base/trace_event/memory_allocator_dump.cc
@@ -41,8 +41,7 @@
   DCHECK(absolute_name[0] != '/' && *absolute_name.rbegin() != '/');
 }
 
-MemoryAllocatorDump::~MemoryAllocatorDump() {
-}
+MemoryAllocatorDump::~MemoryAllocatorDump() = default;
 
 void MemoryAllocatorDump::AddScalar(const char* name,
                                     const char* units,
diff --git a/base/trace_event/memory_dump_manager.cc b/base/trace_event/memory_dump_manager.cc
index 3b39806..14fe7e9 100644
--- a/base/trace_event/memory_dump_manager.cc
+++ b/base/trace_event/memory_dump_manager.cc
@@ -930,8 +930,8 @@
       MakeUnique<ProcessMemoryDump>(heap_profiler_serialization_state, args);
 }
 
-MemoryDumpManager::ProcessMemoryDumpAsyncState::~ProcessMemoryDumpAsyncState() {
-}
+MemoryDumpManager::ProcessMemoryDumpAsyncState::~ProcessMemoryDumpAsyncState() =
+    default;
 
 }  // namespace trace_event
 }  // namespace base
diff --git a/base/trace_event/memory_dump_manager_unittest.cc b/base/trace_event/memory_dump_manager_unittest.cc
index e2d4ee1..22cee6d 100644
--- a/base/trace_event/memory_dump_manager_unittest.cc
+++ b/base/trace_event/memory_dump_manager_unittest.cc
@@ -168,7 +168,7 @@
   }
 
  private:
-  ~TestSequencedTaskRunner() override {}
+  ~TestSequencedTaskRunner() override = default;
 
   SequencedWorkerPoolOwner worker_pool_;
   const SequencedWorkerPool::SequenceToken token_;
diff --git a/base/trace_event/memory_dump_provider_info.cc b/base/trace_event/memory_dump_provider_info.cc
index 34784eb..65eeadf 100644
--- a/base/trace_event/memory_dump_provider_info.cc
+++ b/base/trace_event/memory_dump_provider_info.cc
@@ -27,7 +27,7 @@
       consecutive_failures(0),
       disabled(false) {}
 
-MemoryDumpProviderInfo::~MemoryDumpProviderInfo() {}
+MemoryDumpProviderInfo::~MemoryDumpProviderInfo() = default;
 
 bool MemoryDumpProviderInfo::Comparator::operator()(
     const scoped_refptr<MemoryDumpProviderInfo>& a,
diff --git a/base/trace_event/memory_dump_scheduler.cc b/base/trace_event/memory_dump_scheduler.cc
index 8e4baaa..0332af7 100644
--- a/base/trace_event/memory_dump_scheduler.cc
+++ b/base/trace_event/memory_dump_scheduler.cc
@@ -114,8 +114,8 @@
       TimeDelta::FromMilliseconds(period_ms_));
 }
 
-MemoryDumpScheduler::Config::Config() {}
-MemoryDumpScheduler::Config::~Config() {}
+MemoryDumpScheduler::Config::Config() = default;
+MemoryDumpScheduler::Config::~Config() = default;
 MemoryDumpScheduler::Config::Config(const MemoryDumpScheduler::Config&) =
     default;
 
diff --git a/base/trace_event/process_memory_dump.cc b/base/trace_event/process_memory_dump.cc
index f315c48..3d068af 100644
--- a/base/trace_event/process_memory_dump.cc
+++ b/base/trace_event/process_memory_dump.cc
@@ -198,7 +198,7 @@
           std::move(heap_profiler_serialization_state)),
       dump_args_(dump_args) {}
 
-ProcessMemoryDump::~ProcessMemoryDump() {}
+ProcessMemoryDump::~ProcessMemoryDump() = default;
 ProcessMemoryDump::ProcessMemoryDump(ProcessMemoryDump&& other) = default;
 ProcessMemoryDump& ProcessMemoryDump::operator=(ProcessMemoryDump&& other) =
     default;
diff --git a/base/trace_event/trace_buffer.cc b/base/trace_event/trace_buffer.cc
index a776fa3..8de470f 100644
--- a/base/trace_event/trace_buffer.cc
+++ b/base/trace_event/trace_buffer.cc
@@ -246,7 +246,7 @@
 
 TraceBufferChunk::TraceBufferChunk(uint32_t seq) : next_free_(0), seq_(seq) {}
 
-TraceBufferChunk::~TraceBufferChunk() {}
+TraceBufferChunk::~TraceBufferChunk() = default;
 
 void TraceBufferChunk::Reset(uint32_t new_seq) {
   for (size_t i = 0; i < next_free_; ++i)
@@ -312,7 +312,7 @@
 
 TraceResultBuffer::TraceResultBuffer() : append_comma_(false) {}
 
-TraceResultBuffer::~TraceResultBuffer() {}
+TraceResultBuffer::~TraceResultBuffer() = default;
 
 void TraceResultBuffer::SetOutputCallback(
     const OutputCallback& json_chunk_callback) {
diff --git a/base/trace_event/trace_config.cc b/base/trace_event/trace_config.cc
index 38356d8..5926c95 100644
--- a/base/trace_event/trace_config.cc
+++ b/base/trace_event/trace_config.cc
@@ -57,7 +57,7 @@
   explicit ConvertableTraceConfigToTraceFormat(const TraceConfig& trace_config)
       : trace_config_(trace_config) {}
 
-  ~ConvertableTraceConfigToTraceFormat() override {}
+  ~ConvertableTraceConfigToTraceFormat() override = default;
 
   void AppendAsTraceFormat(std::string* out) const override {
     out->append(trace_config_.ToString());
@@ -91,12 +91,12 @@
   memory_dump_config_ = memory_dump_config;
 }
 
-TraceConfig::MemoryDumpConfig::MemoryDumpConfig() {}
+TraceConfig::MemoryDumpConfig::MemoryDumpConfig() = default;
 
 TraceConfig::MemoryDumpConfig::MemoryDumpConfig(
     const MemoryDumpConfig& other) = default;
 
-TraceConfig::MemoryDumpConfig::~MemoryDumpConfig() {}
+TraceConfig::MemoryDumpConfig::~MemoryDumpConfig() = default;
 
 void TraceConfig::MemoryDumpConfig::Clear() {
   allowed_dump_modes.clear();
@@ -119,7 +119,7 @@
     const std::string& predicate_name)
     : predicate_name_(predicate_name) {}
 
-TraceConfig::EventFilterConfig::~EventFilterConfig() {}
+TraceConfig::EventFilterConfig::~EventFilterConfig() = default;
 
 TraceConfig::EventFilterConfig::EventFilterConfig(const EventFilterConfig& tc) {
   *this = tc;
@@ -224,16 +224,9 @@
     InitializeDefault();
 }
 
-TraceConfig::TraceConfig(const TraceConfig& tc)
-    : record_mode_(tc.record_mode_),
-      enable_systrace_(tc.enable_systrace_),
-      enable_argument_filter_(tc.enable_argument_filter_),
-      category_filter_(tc.category_filter_),
-      memory_dump_config_(tc.memory_dump_config_),
-      event_filters_(tc.event_filters_) {}
+TraceConfig::TraceConfig(const TraceConfig& tc) = default;
 
-TraceConfig::~TraceConfig() {
-}
+TraceConfig::~TraceConfig() = default;
 
 TraceConfig& TraceConfig::operator=(const TraceConfig& rhs) {
   if (this == &rhs)
diff --git a/base/trace_event/trace_config_category_filter.cc b/base/trace_event/trace_config_category_filter.cc
index de78c04..d188430 100644
--- a/base/trace_event/trace_config_category_filter.cc
+++ b/base/trace_event/trace_config_category_filter.cc
@@ -20,23 +20,15 @@
 const char kExcludedCategoriesParam[] = "excluded_categories";
 }
 
-TraceConfigCategoryFilter::TraceConfigCategoryFilter() {}
+TraceConfigCategoryFilter::TraceConfigCategoryFilter() = default;
 
 TraceConfigCategoryFilter::TraceConfigCategoryFilter(
-    const TraceConfigCategoryFilter& other)
-    : included_categories_(other.included_categories_),
-      disabled_categories_(other.disabled_categories_),
-      excluded_categories_(other.excluded_categories_) {}
+    const TraceConfigCategoryFilter& other) = default;
 
-TraceConfigCategoryFilter::~TraceConfigCategoryFilter() {}
+TraceConfigCategoryFilter::~TraceConfigCategoryFilter() = default;
 
 TraceConfigCategoryFilter& TraceConfigCategoryFilter::operator=(
-    const TraceConfigCategoryFilter& rhs) {
-  included_categories_ = rhs.included_categories_;
-  disabled_categories_ = rhs.disabled_categories_;
-  excluded_categories_ = rhs.excluded_categories_;
-  return *this;
-}
+    const TraceConfigCategoryFilter& rhs) = default;
 
 void TraceConfigCategoryFilter::InitializeFromString(
     const StringPiece& category_filter_string) {
diff --git a/base/trace_event/trace_event_filter.cc b/base/trace_event/trace_event_filter.cc
index 6265295..d0b116e 100644
--- a/base/trace_event/trace_event_filter.cc
+++ b/base/trace_event/trace_event_filter.cc
@@ -7,8 +7,8 @@
 namespace base {
 namespace trace_event {
 
-TraceEventFilter::TraceEventFilter() {}
-TraceEventFilter::~TraceEventFilter() {}
+TraceEventFilter::TraceEventFilter() = default;
+TraceEventFilter::~TraceEventFilter() = default;
 
 void TraceEventFilter::EndEvent(const char* category_name,
                                 const char* event_name) const {}
diff --git a/base/trace_event/trace_event_filter_test_utils.cc b/base/trace_event/trace_event_filter_test_utils.cc
index 06548b0..85b4cfa 100644
--- a/base/trace_event/trace_event_filter_test_utils.cc
+++ b/base/trace_event/trace_event_filter_test_utils.cc
@@ -26,8 +26,8 @@
   return res;
 }
 
-TestEventFilter::TestEventFilter() {}
-TestEventFilter::~TestEventFilter() {}
+TestEventFilter::TestEventFilter() = default;
+TestEventFilter::~TestEventFilter() = default;
 
 bool TestEventFilter::FilterTraceEvent(const TraceEvent& trace_event) const {
   if (g_hits_counter)
diff --git a/base/trace_event/trace_event_impl.cc b/base/trace_event/trace_event_impl.cc
index 08654cc..2b7f98a 100644
--- a/base/trace_event/trace_event_impl.cc
+++ b/base/trace_event/trace_event_impl.cc
@@ -55,8 +55,7 @@
   memset(arg_values_, 0, sizeof(arg_values_));
 }
 
-TraceEvent::~TraceEvent() {
-}
+TraceEvent::~TraceEvent() = default;
 
 void TraceEvent::MoveFrom(std::unique_ptr<TraceEvent> other) {
   timestamp_ = other->timestamp_;
diff --git a/base/trace_event/trace_event_memory_overhead.cc b/base/trace_event/trace_event_memory_overhead.cc
index bb6edfb..d5875f8 100644
--- a/base/trace_event/trace_event_memory_overhead.cc
+++ b/base/trace_event/trace_event_memory_overhead.cc
@@ -58,7 +58,7 @@
 
 TraceEventMemoryOverhead::TraceEventMemoryOverhead() : allocated_objects_() {}
 
-TraceEventMemoryOverhead::~TraceEventMemoryOverhead() {}
+TraceEventMemoryOverhead::~TraceEventMemoryOverhead() = default;
 
 void TraceEventMemoryOverhead::AddInternal(ObjectType object_type,
                                            size_t count,
diff --git a/base/trace_event/trace_event_system_stats_monitor.cc b/base/trace_event/trace_event_system_stats_monitor.cc
index 52e1cdc..7e082f3 100644
--- a/base/trace_event/trace_event_system_stats_monitor.cc
+++ b/base/trace_event/trace_event_system_stats_monitor.cc
@@ -27,8 +27,8 @@
 // Holds profiled system stats until the tracing system needs to serialize it.
 class SystemStatsHolder : public base::trace_event::ConvertableToTraceFormat {
  public:
-  SystemStatsHolder() { }
-  ~SystemStatsHolder() override {}
+  SystemStatsHolder() = default;
+  ~SystemStatsHolder() override = default;
 
   // Fills system_metrics_ with profiled system memory and disk stats.
   // Uses the previous stats to compute rates if this is not the first profile.
diff --git a/base/trace_event/trace_event_system_stats_monitor_unittest.cc b/base/trace_event/trace_event_system_stats_monitor_unittest.cc
index cf9bdb7..52a05ba 100644
--- a/base/trace_event/trace_event_system_stats_monitor_unittest.cc
+++ b/base/trace_event/trace_event_system_stats_monitor_unittest.cc
@@ -22,8 +22,8 @@
 // Exists as a class so it can be a friend of TraceEventSystemStatsMonitor.
 class TraceSystemStatsMonitorTest : public testing::Test {
  public:
-  TraceSystemStatsMonitorTest() {}
-  ~TraceSystemStatsMonitorTest() override {}
+  TraceSystemStatsMonitorTest() = default;
+  ~TraceSystemStatsMonitorTest() override = default;
 
  private:
   DISALLOW_COPY_AND_ASSIGN(TraceSystemStatsMonitorTest);
diff --git a/base/trace_event/trace_event_unittest.cc b/base/trace_event/trace_event_unittest.cc
index 755dd61..625168f 100644
--- a/base/trace_event/trace_event_unittest.cc
+++ b/base/trace_event/trace_event_unittest.cc
@@ -1277,8 +1277,8 @@
 class AfterStateChangeEnabledStateObserver
     : public TraceLog::EnabledStateObserver {
  public:
-  AfterStateChangeEnabledStateObserver() {}
-  ~AfterStateChangeEnabledStateObserver() override {}
+  AfterStateChangeEnabledStateObserver() = default;
+  ~AfterStateChangeEnabledStateObserver() override = default;
 
   // TraceLog::EnabledStateObserver overrides:
   void OnTraceLogEnabled() override {
@@ -1308,8 +1308,8 @@
 class SelfRemovingEnabledStateObserver
     : public TraceLog::EnabledStateObserver {
  public:
-  SelfRemovingEnabledStateObserver() {}
-  ~SelfRemovingEnabledStateObserver() override {}
+  SelfRemovingEnabledStateObserver() = default;
+  ~SelfRemovingEnabledStateObserver() override = default;
 
   // TraceLog::EnabledStateObserver overrides:
   void OnTraceLogEnabled() override {}
@@ -1406,7 +1406,7 @@
   class Convertable : public ConvertableToTraceFormat {
    public:
     explicit Convertable(int* num_calls) : num_calls_(num_calls) {}
-    ~Convertable() override {}
+    ~Convertable() override = default;
     void AppendAsTraceFormat(std::string* out) const override {
       (*num_calls_)++;
       out->append("\"metadata_value\"");
@@ -2153,8 +2153,8 @@
 
 class MyData : public ConvertableToTraceFormat {
  public:
-  MyData() {}
-  ~MyData() override {}
+  MyData() = default;
+  ~MyData() override = default;
 
   void AppendAsTraceFormat(std::string* out) const override {
     out->append("{\"foo\":1}");
diff --git a/base/trace_event/trace_log.cc b/base/trace_event/trace_log.cc
index 509adf6..92fccb9 100644
--- a/base/trace_event/trace_log.cc
+++ b/base/trace_event/trace_log.cc
@@ -327,7 +327,7 @@
 struct TraceLog::RegisteredAsyncObserver {
   explicit RegisteredAsyncObserver(WeakPtr<AsyncEnabledStateObserver> observer)
       : observer(observer), task_runner(ThreadTaskRunnerHandle::Get()) {}
-  ~RegisteredAsyncObserver() {}
+  ~RegisteredAsyncObserver() = default;
 
   WeakPtr<AsyncEnabledStateObserver> observer;
   scoped_refptr<SequencedTaskRunner> task_runner;
@@ -335,7 +335,7 @@
 
 TraceLogStatus::TraceLogStatus() : event_capacity(0), event_count(0) {}
 
-TraceLogStatus::~TraceLogStatus() {}
+TraceLogStatus::~TraceLogStatus() = default;
 
 // static
 TraceLog* TraceLog::GetInstance() {
@@ -369,7 +369,7 @@
                                                          nullptr);
 }
 
-TraceLog::~TraceLog() {}
+TraceLog::~TraceLog() = default;
 
 void TraceLog::InitializeThreadLocalEventBufferIfSupported() {
   // A ThreadLocalEventBuffer needs the message loop
diff --git a/base/trace_event/tracing_agent.cc b/base/trace_event/tracing_agent.cc
index 0af90f3..cfbaad9 100644
--- a/base/trace_event/tracing_agent.cc
+++ b/base/trace_event/tracing_agent.cc
@@ -7,7 +7,7 @@
 namespace base {
 namespace trace_event {
 
-TracingAgent::~TracingAgent() {}
+TracingAgent::~TracingAgent() = default;
 
 bool TracingAgent::SupportsExplicitClockSync() {
   return false;
diff --git a/base/tuple_unittest.cc b/base/tuple_unittest.cc
index 730985c..321c549 100644
--- a/base/tuple_unittest.cc
+++ b/base/tuple_unittest.cc
@@ -16,14 +16,14 @@
 }
 
 struct Addy {
-  Addy() { }
+  Addy() = default;
   void DoAdd(int a, int b, int c, int d, int* res) {
     *res = a + b + c + d;
   }
 };
 
 struct Addz {
-  Addz() { }
+  Addz() = default;
   void DoAdd(int a, int b, int c, int d, int e, int* res) {
     *res = a + b + c + d + e;
   }
@@ -68,7 +68,7 @@
 struct CopyLogger {
   CopyLogger() { ++TimesConstructed; }
   CopyLogger(const CopyLogger& tocopy) { ++TimesConstructed; ++TimesCopied; }
-  ~CopyLogger() { }
+  ~CopyLogger() = default;
 
   static int TimesCopied;
   static int TimesConstructed;
diff --git a/base/values.cc b/base/values.cc
index f3e891f..261d9dc 100644
--- a/base/values.cc
+++ b/base/values.cc
@@ -1113,7 +1113,7 @@
 
 DictionaryValue::Iterator::Iterator(const Iterator& other) = default;
 
-DictionaryValue::Iterator::~Iterator() {}
+DictionaryValue::Iterator::~Iterator() = default;
 
 DictionaryValue* DictionaryValue::DeepCopy() const {
   return new DictionaryValue(dict_);
@@ -1355,11 +1355,9 @@
   return std::make_unique<ListValue>(list_);
 }
 
-ValueSerializer::~ValueSerializer() {
-}
+ValueSerializer::~ValueSerializer() = default;
 
-ValueDeserializer::~ValueDeserializer() {
-}
+ValueDeserializer::~ValueDeserializer() = default;
 
 std::ostream& operator<<(std::ostream& out, const Value& value) {
   std::string json;
diff --git a/base/version.cc b/base/version.cc
index ca97a84..7e897b2 100644
--- a/base/version.cc
+++ b/base/version.cc
@@ -77,13 +77,11 @@
 
 }  // namespace
 
-Version::Version() {
-}
+Version::Version() = default;
 
 Version::Version(const Version& other) = default;
 
-Version::~Version() {
-}
+Version::~Version() = default;
 
 Version::Version(const std::string& version_str) {
   std::vector<uint32_t> parsed;
diff --git a/base/vlog.cc b/base/vlog.cc
index bf80820..fbe1897 100644
--- a/base/vlog.cc
+++ b/base/vlog.cc
@@ -78,7 +78,7 @@
   }
 }
 
-VlogInfo::~VlogInfo() {}
+VlogInfo::~VlogInfo() = default;
 
 namespace {