Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(29)

Side by Side Diff: base/strings/string16.h

Issue 1467003002: Switch to static_assert in base/. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: / Created 5 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « base/strings/safe_sprintf.cc ('k') | base/sync_socket_unittest.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2013 The Chromium Authors. All rights reserved. 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 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 BASE_STRINGS_STRING16_H_ 5 #ifndef BASE_STRINGS_STRING16_H_
6 #define BASE_STRINGS_STRING16_H_ 6 #define BASE_STRINGS_STRING16_H_
7 7
8 // WHAT: 8 // WHAT:
9 // A version of std::basic_string that provides 2-byte characters even when 9 // A version of std::basic_string that provides 2-byte characters even when
10 // wchar_t is not implemented as a 2-byte type. You can access this class as 10 // wchar_t is not implemented as a 2-byte type. You can access this class as
(...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after
57 BASE_EXPORT char16* c16memmove(char16* s1, const char16* s2, size_t n); 57 BASE_EXPORT char16* c16memmove(char16* s1, const char16* s2, size_t n);
58 BASE_EXPORT char16* c16memcpy(char16* s1, const char16* s2, size_t n); 58 BASE_EXPORT char16* c16memcpy(char16* s1, const char16* s2, size_t n);
59 BASE_EXPORT char16* c16memset(char16* s, char16 c, size_t n); 59 BASE_EXPORT char16* c16memset(char16* s, char16 c, size_t n);
60 60
61 struct string16_char_traits { 61 struct string16_char_traits {
62 typedef char16 char_type; 62 typedef char16 char_type;
63 typedef int int_type; 63 typedef int int_type;
64 64
65 // int_type needs to be able to hold each possible value of char_type, and in 65 // int_type needs to be able to hold each possible value of char_type, and in
66 // addition, the distinct value of eof(). 66 // addition, the distinct value of eof().
67 COMPILE_ASSERT(sizeof(int_type) > sizeof(char_type), unexpected_type_width); 67 static_assert(sizeof(int_type) > sizeof(char_type),
68 "int must be larger than 16 bits wide");
68 69
69 typedef std::streamoff off_type; 70 typedef std::streamoff off_type;
70 typedef mbstate_t state_type; 71 typedef mbstate_t state_type;
71 typedef std::fpos<state_type> pos_type; 72 typedef std::fpos<state_type> pos_type;
72 73
73 static void assign(char_type& c1, const char_type& c2) { 74 static void assign(char_type& c1, const char_type& c2) {
74 c1 = c2; 75 c1 = c2;
75 } 76 }
76 77
77 static bool eq(const char_type& c1, const char_type& c2) { 78 static bool eq(const char_type& c1, const char_type& c2) {
(...skipping 97 matching lines...) Expand 10 before | Expand all | Expand 10 after
175 // boundaries, such as in statically-linked executables. 176 // boundaries, such as in statically-linked executables.
176 // 177 //
177 // TODO(mark): File this bug with Apple and update this note with a bug number. 178 // TODO(mark): File this bug with Apple and update this note with a bug number.
178 179
179 extern template 180 extern template
180 class BASE_EXPORT std::basic_string<base::char16, base::string16_char_traits>; 181 class BASE_EXPORT std::basic_string<base::char16, base::string16_char_traits>;
181 182
182 #endif // WCHAR_T_IS_UTF32 183 #endif // WCHAR_T_IS_UTF32
183 184
184 #endif // BASE_STRINGS_STRING16_H_ 185 #endif // BASE_STRINGS_STRING16_H_
OLDNEW
« no previous file with comments | « base/strings/safe_sprintf.cc ('k') | base/sync_socket_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698