summaryrefslogtreecommitdiffstats
path: root/base/lazy_instance.h
diff options
context:
space:
mode:
authorfischman@chromium.org <fischman@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-01-23 22:56:41 +0000
committerfischman@chromium.org <fischman@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-01-23 22:56:41 +0000
commit9fc441643df5e17c19133a637c1a9d1a70fbb07c (patch)
tree6c4cdb1e8c1ff0b6b132187be94e9968e2c83da1 /base/lazy_instance.h
parent096b0317209cfa8ef79cbf9fb9351f00c1f60087 (diff)
downloadchromium_src-9fc441643df5e17c19133a637c1a9d1a70fbb07c.zip
chromium_src-9fc441643df5e17c19133a637c1a9d1a70fbb07c.tar.gz
chromium_src-9fc441643df5e17c19133a637c1a9d1a70fbb07c.tar.bz2
Add a convenience typedef LazyInstance<T>::Leaky to avoid repeating T.
Converted the first 20 or so hits for LeakyLazyInstanceTraits on codesearch to demonstrate the benefit at callsites. The real change is base/lazy_instance.h; everything else is example. BUG=none TEST=none Review URL: https://chromiumcodereview.appspot.com/9192024 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@118754 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'base/lazy_instance.h')
-rw-r--r--base/lazy_instance.h11
1 files changed, 10 insertions, 1 deletions
diff --git a/base/lazy_instance.h b/base/lazy_instance.h
index ededc73..4ed471a 100644
--- a/base/lazy_instance.h
+++ b/base/lazy_instance.h
@@ -1,4 +1,4 @@
-// Copyright (c) 2011 The Chromium Authors. All rights reserved.
+// Copyright (c) 2012 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
@@ -73,6 +73,11 @@ struct DefaultLazyInstanceTraits {
}
};
+// Use LazyInstance<T>::Leaky for a less-verbose call-site typedef; e.g.:
+// base::LazyInstance<T>::Leaky my_leaky_lazy_instance;
+// instead of:
+// base::LazyInstance<T, LeakyLazyInstanceTraits<T> > my_leaky_lazy_instance;
+// (especially when T is MyLongTypeNameImplClientHolderFactory).
template <typename Type>
struct LeakyLazyInstanceTraits {
static const bool kRegisterOnExit = false;
@@ -117,6 +122,10 @@ class LazyInstance {
// the OnExit member function, where needed.
// ~LazyInstance() {}
+ // Convenience typedef to avoid having to repeat Type for leaky lazy
+ // instances.
+ typedef LazyInstance<Type, LeakyLazyInstanceTraits<Type> > Leaky;
+
Type& Get() {
return *Pointer();
}