19720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block/* 29720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block * Copyright (c) 2005 39720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block * Francois Dumont 49720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block * 59720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block * This material is provided "as is", with absolutely no warranty expressed 69720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block * or implied. Any use is at your own risk. 79720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block * 89720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block * Permission to use or copy this software for any purpose is hereby granted 99720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block * without fee, provided the above notices are retained on all copies. 109720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block * Permission to modify the code and to distribute modified code is granted, 119720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block * provided the above notices are retained, and a notice that the code was 129720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block * modified is included with the above copyright notice. 139720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block */ 149720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block 159720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block/* This header contains npos definition used in basic_string and rope 169720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block * implementation. It do not have to be guarded as files including it 179720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block * are already guarded and it has sometimes to be included several times. 189720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block */ 199720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block 209720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block#if defined (_STLP_STATIC_CONST_INIT_BUG) 219720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block enum { npos = -1 }; 229720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block#elif defined (__GNUC__) && (__GNUC__ == 2) && (__GNUC_MINOR__ == 96) 239720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block // inline initializer conflicts with 'extern template' 249720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block static const size_t npos; 259720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block#else 269720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block static const size_t npos = ~(size_t)0; 279720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block#endif 28