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