Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • libcfa/src/iostream.hfa

    r6c5d92f r85d8153  
    1010// Created On       : Wed May 27 17:56:53 2015
    1111// Last Modified By : Peter A. Buhr
    12 // Last Modified On : Tue Apr 20 19:09:44 2021
    13 // Update Count     : 385
     12// Last Modified On : Sat Apr 24 09:28:56 2021
     13// Update Count     : 393
    1414//
    1515
     
    2222
    2323
    24 trait ostream( ostype & ) {
     24trait basic_ostream( ostype & ) {
    2525        // private
    2626        bool sepPrt$( ostype & );                                                       // get separator state (on/off)
     
    4747        void sepSetTuple( ostype &, const char [] );            // set tuple separator to string (15 character maximum)
    4848
    49         void ends( ostype & os );                                                       // end of output statement
    50         int fail( ostype & );
     49        void ends( ostype & );                                                          // end of output statement
     50        int fmt( ostype &, const char format[], ... ) __attribute__(( format(printf, 2, 3) ));
    5151        int flush( ostype & );
    52         void open( ostype & os, const char name[], const char mode[] );
    53         void close( ostype & os );
     52}; // basic_ostream
     53       
     54trait ostream( ostype & | basic_ostream( ostype ) ) {
     55        bool fail( ostype & );                                                          // operation failed?
     56        void open( ostype &, const char name[], const char mode[] );
     57        void close( ostype & );
    5458        ostype & write( ostype &, const char [], size_t );
    55         int fmt( ostype &, const char format[], ... ) __attribute__(( format(printf, 2, 3) ));
    56         void acquire( ostype & );
     59        void acquire( ostype & );                                                       // concurrent access
    5760}; // ostream
    5861
     
    6770// implement writable for intrinsic types
    6871
    69 forall( ostype & | ostream( ostype ) ) {
     72forall( ostype & | basic_ostream( ostype ) ) {
    7073        ostype & ?|?( ostype &, bool );
    7174        void ?|?( ostype &, bool );
     
    138141        ostype & nlOn( ostype & );
    139142        ostype & nlOff( ostype & );
     143} // distribution
     144
     145forall( ostype & | ostream( ostype ) ) {
    140146        ostype & acquire( ostype & );
    141147} // distribution
     
    196202        _Ostream_Manip(T) & sign( _Ostream_Manip(T) & fmt ) { fmt.flags.sign = true; return fmt; } \
    197203} /* distribution */ \
    198 forall( ostype & | ostream( ostype ) ) { \
     204forall( ostype & | basic_ostream( ostype ) ) { \
    199205        ostype & ?|?( ostype & os, _Ostream_Manip(T) f ); \
    200206        void ?|?( ostype & os, _Ostream_Manip(T) f ); \
     
    241247        _Ostream_Manip(T) & unit( _Ostream_Manip(T) & fmt ) { fmt.flags.nobsdp = true; return fmt; } \
    242248} /* distribution */ \
    243 forall( ostype & | ostream( ostype ) ) { \
     249forall( ostype & | basic_ostream( ostype ) ) { \
    244250        ostype & ?|?( ostype & os, _Ostream_Manip(T) f ); \
    245251        void ?|?( ostype & os, _Ostream_Manip(T) f ); \
     
    261267        _Ostream_Manip(char) & nobase( _Ostream_Manip(char) & fmt ) { fmt.flags.nobsdp = true; return fmt; }
    262268} // distribution
    263 forall( ostype & | ostream( ostype ) ) {
     269forall( ostype & | basic_ostream( ostype ) ) {
    264270        ostype & ?|?( ostype & os, _Ostream_Manip(char) f );
    265271        void ?|?( ostype & os, _Ostream_Manip(char) f );
     
    279285        _Ostream_Manip(const char *) & nobase( _Ostream_Manip(const char *) & fmt ) { fmt.flags.nobsdp = true; return fmt; }
    280286} // distribution
    281 forall( ostype & | ostream( ostype ) ) {
     287forall( ostype & | basic_ostream( ostype ) ) {
    282288        ostype & ?|?( ostype & os, _Ostream_Manip(const char *) f );
    283289        void ?|?( ostype & os, _Ostream_Manip(const char *) f );
     
    294300
    295301        void ends( istype & os );                                                       // end of output statement
    296         int fail( istype & );
     302        bool fail( istype & );
    297303        int eof( istype & );
    298304        void open( istype & is, const char name[] );
Note: See TracChangeset for help on using the changeset viewer.