template_util.h revision c407dc5cd9bdc5668497f21b26b09d988ab439de
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. 4 5#ifndef BASE_TEMPLATE_UTIL_H_ 6#define BASE_TEMPLATE_UTIL_H_ 7 8namespace base { 9 10// template definitions from tr1 11 12template<class T, T v> 13struct integral_constant { 14 static const T value = v; 15 typedef T value_type; 16 typedef integral_constant<T, v> type; 17}; 18 19template <class T, T v> const T integral_constant<T, v>::value; 20 21typedef integral_constant<bool, true> true_type; 22typedef integral_constant<bool, false> false_type; 23 24template <class T> struct is_pointer : false_type {}; 25template <class T> struct is_pointer<T*> : true_type {}; 26 27} // namespace base 28 29#endif 30