@@ -270,6 +270,8 @@ class BOOST_REGEX_DECL mapfile_iterator
270270 return *this ;
271271 }
272272
273+ #if !defined(BOOST_EMBTC)
274+
273275 friend inline bool operator ==(const mapfile_iterator& i, const mapfile_iterator& j)
274276 {
275277 return (i.file == j.file ) && (i.node == j.node ) && (i.offset == j.offset );
@@ -308,8 +310,64 @@ class BOOST_REGEX_DECL mapfile_iterator
308310 {
309311 return i.position () - j.position ();
310312 }
313+
314+ #else
315+
316+ friend bool operator ==(const mapfile_iterator& i, const mapfile_iterator& j);
317+ friend bool operator !=(const mapfile_iterator& i, const mapfile_iterator& j);
318+ friend bool operator <(const mapfile_iterator& i, const mapfile_iterator& j);
319+ friend bool operator >(const mapfile_iterator& i, const mapfile_iterator& j);
320+ friend bool operator <=(const mapfile_iterator& i, const mapfile_iterator& j);
321+ friend bool operator >=(const mapfile_iterator& i, const mapfile_iterator& j);
322+ friend mapfile_iterator operator + (const mapfile_iterator& i, long off);
323+ friend mapfile_iterator operator + (long off, const mapfile_iterator& i);
324+ friend mapfile_iterator operator - (const mapfile_iterator& i, long off);
325+ friend long operator - (const mapfile_iterator& i, const mapfile_iterator& j);
326+
327+ #endif
328+
311329};
312330
331+ #if defined(BOOST_EMBTC)
332+
333+ inline bool operator ==(const mapfile_iterator& i, const mapfile_iterator& j)
334+ {
335+ return (i.file == j.file ) && (i.node == j.node ) && (i.offset == j.offset );
336+ }
337+
338+ inline bool operator !=(const mapfile_iterator& i, const mapfile_iterator& j)
339+ {
340+ return !(i == j);
341+ }
342+
343+ inline bool operator <(const mapfile_iterator& i, const mapfile_iterator& j)
344+ {
345+ return i.position () < j.position ();
346+ }
347+ inline bool operator >(const mapfile_iterator& i, const mapfile_iterator& j)
348+ {
349+ return i.position () > j.position ();
350+ }
351+ inline bool operator <=(const mapfile_iterator& i, const mapfile_iterator& j)
352+ {
353+ return i.position () <= j.position ();
354+ }
355+ inline bool operator >=(const mapfile_iterator& i, const mapfile_iterator& j)
356+ {
357+ return i.position () >= j.position ();
358+ }
359+ mapfile_iterator operator + (long off, const mapfile_iterator& i)
360+ {
361+ mapfile_iterator tmp (i);
362+ return tmp += off;
363+ }
364+ inline long operator - (const mapfile_iterator& i, const mapfile_iterator& j)
365+ {
366+ return i.position () - j.position ();
367+ }
368+
369+ #endif
370+
313371#endif
314372
315373// _fi_sep determines the directory separator, either '\\' or '/'
@@ -351,6 +409,8 @@ class BOOST_REGEX_DECL file_iterator
351409 file_iterator operator ++(int );
352410 const char * operator *() { return path (); }
353411
412+ #if !defined(BOOST_EMBTC)
413+
354414 friend inline bool operator == (const file_iterator& f1, const file_iterator& f2)
355415 {
356416 return ((f1.ref ->hf == _fi_invalid_handle) && (f2.ref ->hf == _fi_invalid_handle));
@@ -361,8 +421,29 @@ class BOOST_REGEX_DECL file_iterator
361421 return !(f1 == f2);
362422 }
363423
424+ #else
425+
426+ friend bool operator == (const file_iterator& f1, const file_iterator& f2);
427+ friend bool operator != (const file_iterator& f1, const file_iterator& f2);
428+
429+ #endif
430+
364431};
365432
433+ #if defined(BOOST_EMBTC)
434+
435+ inline bool operator == (const file_iterator& f1, const file_iterator& f2)
436+ {
437+ return ((f1.ref ->hf == _fi_invalid_handle) && (f2.ref ->hf == _fi_invalid_handle));
438+ }
439+
440+ inline bool operator != (const file_iterator& f1, const file_iterator& f2)
441+ {
442+ return !(f1 == f2);
443+ }
444+
445+ #endif
446+
366447// dwa 9/13/00 - suppress unused parameter warning
367448inline bool operator < (const file_iterator&, const file_iterator&)
368449{
@@ -401,6 +482,8 @@ class BOOST_REGEX_DECL directory_iterator
401482
402483 static const char * separator () { return _fi_sep; }
403484
485+ #if !defined(BOOST_EMBTC)
486+
404487 friend inline bool operator == (const directory_iterator& f1, const directory_iterator& f2)
405488 {
406489 return ((f1.ref ->hf == _fi_invalid_handle) && (f2.ref ->hf == _fi_invalid_handle));
@@ -412,8 +495,30 @@ class BOOST_REGEX_DECL directory_iterator
412495 return !(f1 == f2);
413496 }
414497
498+ #else
499+
500+ friend bool operator == (const directory_iterator& f1, const directory_iterator& f2);
501+ friend bool operator != (const directory_iterator& f1, const directory_iterator& f2);
502+
503+ #endif
504+
415505 };
416506
507+ #if defined(BOOST_EMBTC)
508+
509+ inline bool operator == (const directory_iterator& f1, const directory_iterator& f2)
510+ {
511+ return ((f1.ref ->hf == _fi_invalid_handle) && (f2.ref ->hf == _fi_invalid_handle));
512+ }
513+
514+
515+ inline bool operator != (const directory_iterator& f1, const directory_iterator& f2)
516+ {
517+ return !(f1 == f2);
518+ }
519+
520+ #endif
521+
417522inline bool operator < (const directory_iterator&, const directory_iterator&)
418523{
419524 return false ;
0 commit comments