WebKit Roll 61390:61491.
[chromium-blink-merge.git] / base / template_util.h
blob69702f3a296d288861aa8cf4e3b3b77e2481a2bc
1 // Copyright (c) 2010 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.
5 #ifndef BASE_TEMPLATE_UTIL_H_
6 #define BASE_TEMPLATE_UTIL_H_
8 namespace base {
10 // template definitions from tr1
12 template<class T, T v>
13 struct integral_constant {
14 static const T value = v;
15 typedef T value_type;
16 typedef integral_constant<T, v> type;
19 template <class T, T v> const T integral_constant<T, v>::value;
21 typedef integral_constant<bool, true> true_type;
22 typedef integral_constant<bool, false> false_type;
24 template <class T> struct is_pointer : false_type {};
25 template <class T> struct is_pointer<T*> : true_type {};
27 } // namespace base
29 #endif