12de5f0418dfcb175616561d5571b2060aee527ebYukawa@chromium.org// Copyright (c) 2012 Google Inc. All rights reserved. 22de5f0418dfcb175616561d5571b2060aee527ebYukawa@chromium.org// Use of this source code is governed by a BSD-style license that can be 32de5f0418dfcb175616561d5571b2060aee527ebYukawa@chromium.org// found in the LICENSE file. 42de5f0418dfcb175616561d5571b2060aee527ebYukawa@chromium.org 52de5f0418dfcb175616561d5571b2060aee527ebYukawa@chromium.orgtemplate <bool> 62de5f0418dfcb175616561d5571b2060aee527ebYukawa@chromium.orgstruct CompileAssert { 72de5f0418dfcb175616561d5571b2060aee527ebYukawa@chromium.org}; 82de5f0418dfcb175616561d5571b2060aee527ebYukawa@chromium.org 92de5f0418dfcb175616561d5571b2060aee527ebYukawa@chromium.org#define COMPILE_ASSERT(expr, msg) \ 102de5f0418dfcb175616561d5571b2060aee527ebYukawa@chromium.org typedef CompileAssert<(bool(expr))> msg[bool(expr) ? 1 : -1] 112de5f0418dfcb175616561d5571b2060aee527ebYukawa@chromium.org 122de5f0418dfcb175616561d5571b2060aee527ebYukawa@chromium.orgint main() { 132de5f0418dfcb175616561d5571b2060aee527ebYukawa@chromium.org COMPILE_ASSERT(char(-1) > 0, default_char_is_unsigned); 142de5f0418dfcb175616561d5571b2060aee527ebYukawa@chromium.org return 0; 152de5f0418dfcb175616561d5571b2060aee527ebYukawa@chromium.org} 16