1 // Copyright 2013 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4 
5 #ifndef BASE_SYS_INFO_INTERNAL_H_
6 #define BASE_SYS_INFO_INTERNAL_H_
7 
8 #include "base/macros.h"
9 
10 namespace base {
11 
12 namespace internal {
13 
14 template<typename T, T (*F)(void)>
15 class LazySysInfoValue {
16  public:
LazySysInfoValue()17   LazySysInfoValue()
18       : value_(F()) { }
19 
~LazySysInfoValue()20   ~LazySysInfoValue() { }
21 
value()22   T value() { return value_; }
23 
24  private:
25   const T value_;
26 
27   DISALLOW_COPY_AND_ASSIGN(LazySysInfoValue);
28 };
29 
30 }  // namespace internal
31 
32 }  // namespace base
33 
34 #endif  // BASE_SYS_INFO_INTERNAL_H_
35