From 3808e423f2048be8c34ad1244d866af6766b7ddd Mon Sep 17 00:00:00 2001 From: rich_sposato Date: Fri, 9 Sep 2011 00:30:44 +0000 Subject: [PATCH] Fixed bug 3023886 by changing static check to use unnamed enum. git-svn-id: svn://svn.code.sf.net/p/loki-lib/code/trunk@1099 7ec92016-0320-0410-acc4-a06ded1c099a --- include/loki/static_check.h | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/include/loki/static_check.h b/include/loki/static_check.h index 48aa9df..c15a6bd 100644 --- a/include/loki/static_check.h +++ b/include/loki/static_check.h @@ -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,8 +37,10 @@ namespace Loki // 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) } #endif // end file guardian