From: <ric...@us...> - 2011-09-09 00:30:51
|
Revision: 1099 http://loki-lib.svn.sourceforge.net/loki-lib/?rev=1099&view=rev Author: rich_sposato Date: 2011-09-09 00:30:44 +0000 (Fri, 09 Sep 2011) Log Message: ----------- Fixed bug 3023886 by changing static check to use unnamed enum. Modified Paths: -------------- trunk/include/loki/static_check.h Modified: trunk/include/loki/static_check.h =================================================================== --- trunk/include/loki/static_check.h 2011-09-08 23:51:46 UTC (rev 1098) +++ trunk/include/loki/static_check.h 2011-09-09 00:30:44 UTC (rev 1099) @@ -2,14 +2,14 @@ // The Loki Library // Copyright (c) 2001 by Andrei Alexandrescu // This code accompanies the book: -// Alexandrescu, Andrei. "Modern C++ Design: Generic Programming and Design +// Alexandrescu, Andrei. "Modern C++ Design: Generic Programming and Design // Patterns Applied". Copyright (c) 2001. Addison-Wesley. -// Permission to use, copy, modify, distribute and sell this software for any -// purpose is hereby granted without fee, provided that the above copyright -// notice appear in all copies and that both that copyright notice and this +// Permission to use, copy, modify, distribute and sell this software for any +// purpose is hereby granted without fee, provided that the above copyright +// notice appear in all copies and that both that copyright notice and this // permission notice appear in supporting documentation. -// The author or Addison-Wesley Longman make no representations about the -// suitability of this software for any purpose. It is provided "as is" +// The author or Addison-Wesley Longman make no representations about the +// suitability of this software for any purpose. It is provided "as is" // without express or implied warranty. //////////////////////////////////////////////////////////////////////////////// #ifndef LOKI_STATIC_CHECK_INC_ @@ -37,9 +37,11 @@ // If expr is zero, id will appear in a compile-time error message. //////////////////////////////////////////////////////////////////////////////// -#define LOKI_STATIC_CHECK(expr, msg) \ - { Loki::CompileTimeError<((expr) != 0)> ERROR_##msg; (void)ERROR_##msg; } +#define LOKI_CONCAT( X, Y ) LOKI_CONCAT_SUB( X, Y ) +#define LOKI_CONCAT_SUB( X, Y ) X##Y +#define LOKI_STATIC_CHECK(expr, msg) enum { LOKI_CONCAT(ERROR_##msg, __LINE__) = sizeof(Loki::CompileTimeError<expr != 0 >) } + #endif // end file guardian This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |