mirror of
https://github.com/ceph/ceph
synced 2024-12-24 04:14:07 +00:00
760bc01f24
When initializing the config_options array, complain if the size of the option field we're trying to initialize doesn't match the size of our type. This will prevent careless type annotations from overwriting neighboring option fields. Also create a header called "static assert" which implements a compile-time assert. Signed-off-by: Colin McCabe <colin.mccabe@dreamhost.com>
25 lines
724 B
C
25 lines
724 B
C
// -*- mode:C++; tab-width:8; c-basic-offset:2; indent-tabs-mode:t -*-
|
|
// vim: ts=8 sw=2 smarttab
|
|
/*
|
|
* Ceph - scalable distributed file system
|
|
*
|
|
* Copyright (C) 2011 New Dream Network
|
|
*
|
|
* This is free software; you can redistribute it and/or
|
|
* modify it under the terms of the GNU Lesser General Public
|
|
* License version 2.1, as published by the Free Software
|
|
* Foundation. See file COPYING.
|
|
*
|
|
*/
|
|
|
|
#ifndef CEPH_COMMON_STATIC_ASSERT
|
|
#define CEPH_COMMON_STATIC_ASSERT
|
|
|
|
/* Create a compiler error if condition is false.
|
|
* Also produce a result of value 0 and type size_t.
|
|
* This expression can be used anywhere, even in structure initializers.
|
|
*/
|
|
#define STATIC_ASSERT(x) (sizeof(int[((x)==0) ? -1 : 0]))
|
|
|
|
#endif
|