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

Side by Side Diff: third_party/cld/base/basictypes.h

Issue 1956183002: CL for perf tryjob on linux (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 7 months 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 | « third_party/cld/BUILD.gn ('k') | third_party/cld/base/commandlineflags.h » ('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 (c) 2010 The Chromium Authors. All rights reserved. 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 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_BASICTYPES_H_ 5 #ifndef BASE_BASICTYPES_H_
6 #define BASE_BASICTYPES_H_ 6 #define BASE_BASICTYPES_H_
7 7
8 #include <limits.h> // So we can set the bounds of our types 8 #include <limits.h> // So we can set the bounds of our types
9 #include <stddef.h> // For size_t 9 #include <stddef.h> // For size_t
10 #include <string.h> // for memcpy 10 #include <string.h> // for memcpy
(...skipping 255 matching lines...) Expand 10 before | Expand all | Expand 10 after
266 // 266 //
267 // I tested this code with gcc 2.95.3, gcc 4.0.1, icc 8.1, and msvc 7.1. 267 // I tested this code with gcc 2.95.3, gcc 4.0.1, icc 8.1, and msvc 7.1.
268 // 268 //
269 // WARNING: if Dest or Source is a non-POD type, the result of the memcpy 269 // WARNING: if Dest or Source is a non-POD type, the result of the memcpy
270 // is likely to surprise you. 270 // is likely to surprise you.
271 271
272 template <class Dest, class Source> 272 template <class Dest, class Source>
273 inline Dest bit_cast(const Source& source) { 273 inline Dest bit_cast(const Source& source) {
274 // Compile time assertion: sizeof(Dest) == sizeof(Source) 274 // Compile time assertion: sizeof(Dest) == sizeof(Source)
275 // A compile error here means your Dest and Source have different sizes. 275 // A compile error here means your Dest and Source have different sizes.
276 typedef char VerifySizesAreEqual [sizeof(Dest) == sizeof(Source) ? 1 : -1]; 276 // typedef char VerifySizesAreEqual [sizeof(Dest) == sizeof(Source) ? 1 : -1];
277 277
278 Dest dest; 278 Dest dest;
279 memcpy(&dest, &source, sizeof(dest)); 279 memcpy(&dest, &source, sizeof(dest));
280 return dest; 280 return dest;
281 } 281 }
282 282
283 // The following enum should be used only as a constructor argument to indicate 283 // The following enum should be used only as a constructor argument to indicate
284 // that the variable has static storage class, and that the constructor should 284 // that the variable has static storage class, and that the constructor should
285 // do nothing to its state. It indicates to the reader that it is legal to 285 // do nothing to its state. It indicates to the reader that it is legal to
286 // declare a static instance of the class, provided the constructor is given 286 // declare a static instance of the class, provided the constructor is given
(...skipping 23 matching lines...) Expand all
310 // If target architecture does not support unaligned loads and stores, 310 // If target architecture does not support unaligned loads and stores,
311 // use memcpy version of UNALIGNED_LOAD32. 311 // use memcpy version of UNALIGNED_LOAD32.
312 inline uint32 UnalignedLoad32(const void* p) { 312 inline uint32 UnalignedLoad32(const void* p) {
313 uint32 t; 313 uint32 t;
314 memcpy(&t, reinterpret_cast<const uint8*>(p), sizeof(t)); 314 memcpy(&t, reinterpret_cast<const uint8*>(p), sizeof(t));
315 return t; 315 return t;
316 } 316 }
317 317
318 #endif 318 #endif
319 #endif // BASE_BASICTYPES_H_ 319 #endif // BASE_BASICTYPES_H_
OLDNEW
« no previous file with comments | « third_party/cld/BUILD.gn ('k') | third_party/cld/base/commandlineflags.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698