Changes in libcfa/src/iostream.hfa [0f107e4:686912c]
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
libcfa/src/iostream.hfa
r0f107e4 r686912c 10 10 // Created On : Wed May 27 17:56:53 2015 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Sat Sep 2 14:42:13202313 // Update Count : 5 6712 // Last Modified On : Thu Aug 31 10:55:35 2023 13 // Update Count : 544 14 14 // 15 15 … … 388 388 ISTYPE_VOID( long double _Complex & ); 389 389 390 istype & ?|?( istype &, const char [] ); 391 ISTYPE_VOID( const char [] ); 390 // istype & ?|?( istype &, const char [] ); 391 // istype & ?|?( istype &, char [] ); 392 // ISTYPE_VOID( char [] ); 392 393 393 394 // manipulators … … 405 406 // *********************************** manipulators *********************************** 406 407 407 struct _Istream_Cskip {408 const char * scanset;409 unsigned wd; // scan width410 }; // _Istream_Cskip411 412 static inline {413 _Istream_Cskip skip( const char scanset[] ) { return (_Istream_Cskip)@{ scanset, 0 }; }414 _Istream_Cskip skip( unsigned int wd ) { return (_Istream_Cskip)@{ 0p, wd }; }415 } // distribution416 forall( istype & | basic_istream( istype ) ) {417 istype & ?|?( istype & is, _Istream_Cskip f );418 ISTYPE_VOID( _Istream_Cskip );419 }420 421 408 struct _Istream_str_base { 422 409 union { 423 410 const char * scanset; 424 char delimit er[2];411 char delimit[2]; 425 412 }; 426 413 int wd; // width … … 430 417 unsigned char ignore:1; // do not change input argument 431 418 unsigned char inex:1; // include/exclude characters in scanset 432 unsigned char delimit er:1; // delimit character419 unsigned char delimit:1; // delimit character 433 420 unsigned char rwd:1; // read width 434 421 } flags; … … 449 436 return (_Istream_Cstr)@{ s, { {0p}, rwd, {.flags.rwd : true} } }; 450 437 } 451 _Istream_Cstr & getline( _Istream_Cstr & fmt, const char delimiter = '\n' ) { 452 fmt.delimiter[0] = delimiter; fmt.delimiter[1] = '\0'; fmt.flags.delimiter = true; fmt.flags.inex = true; return fmt; } 438 _Istream_Cstr skip( const char scanset[] ) { return (_Istream_Cstr)@{ 0p, { {scanset}, -1, {.all : 0} } }; } 439 _Istream_Cstr skip( unsigned int wd ) { return (_Istream_Cstr)@{ 0p, { {0p}, wd, {.all : 0} } }; } 440 _Istream_Cstr & getline( _Istream_Cstr & fmt, const char delimit = '\n' ) { 441 fmt.delimit[0] = delimit; fmt.delimit[1] = '\0'; fmt.flags.delimit = true; fmt.flags.inex = true; return fmt; } 453 442 _Istream_Cstr & incl( const char scanset[], _Istream_Cstr & fmt ) { fmt.scanset = scanset; fmt.flags.inex = false; return fmt; } 454 443 _Istream_Cstr & excl( const char scanset[], _Istream_Cstr & fmt ) { fmt.scanset = scanset; fmt.flags.inex = true; return fmt; }
Note:
See TracChangeset
for help on using the changeset viewer.