OLD | NEW |
1 // Copyright (c) 2009 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2009 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #ifndef CHROME_COMMON_NET_NOTIFIER_BASE_STATIC_ASSERT_H_ | 5 #ifndef JINGLE_NOTIFIER_BASE_STATIC_ASSERT_H_ |
6 #define CHROME_COMMON_NET_NOTIFIER_BASE_STATIC_ASSERT_H_ | 6 #define JINGLE_NOTIFIER_BASE_STATIC_ASSERT_H_ |
7 | 7 |
8 template<bool> struct STATIC_ASSERTION_FAILURE; | 8 template<bool> struct STATIC_ASSERTION_FAILURE; |
9 | 9 |
10 template<> struct STATIC_ASSERTION_FAILURE<true> { | 10 template<> struct STATIC_ASSERTION_FAILURE<true> { |
11 enum { value = 1 }; | 11 enum { value = 1 }; |
12 }; | 12 }; |
13 | 13 |
14 template<int> struct static_assert_test{}; | 14 template<int> struct static_assert_test{}; |
15 | 15 |
16 #define STATIC_ASSERT(B) \ | 16 #define STATIC_ASSERT(B) \ |
17 typedef static_assert_test<\ | 17 typedef static_assert_test<\ |
18 sizeof(STATIC_ASSERTION_FAILURE< (bool)( B ) >)>\ | 18 sizeof(STATIC_ASSERTION_FAILURE< (bool)( B ) >)>\ |
19 static_assert_typedef_ ## __LINE__ | 19 static_assert_typedef_ ## __LINE__ |
20 | 20 |
21 #endif // CHROME_COMMON_NET_NOTIFIER_BASE_STATIC_ASSERT_H_ | 21 #endif // JINGLE_NOTIFIER_BASE_STATIC_ASSERT_H_ |
OLD | NEW |