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.
|