diff options
author | fischman@chromium.org <fischman@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-01-23 22:56:41 +0000 |
---|---|---|
committer | fischman@chromium.org <fischman@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-01-23 22:56:41 +0000 |
commit | 9fc441643df5e17c19133a637c1a9d1a70fbb07c (patch) | |
tree | 6c4cdb1e8c1ff0b6b132187be94e9968e2c83da1 /base/lazy_instance.h | |
parent | 096b0317209cfa8ef79cbf9fb9351f00c1f60087 (diff) | |
download | chromium_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.h | 11 |
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(); } |