From: tr.17687@z991.linuxsc.com   
      
   Keith Thompson writes:   
      
   > Tim Rentsch writes:   
   >   
   >> Keith Thompson writes:   
   >   
   > [...]   
   >   
   >>> I recently played around with an attempted framework using _Generic.   
   >>> The goal was to be able to write something like   
   >>>   
   >>> print(s(x), s(y), s(z));   
   >>>   
   >>> where x, y, and z can be of more or less arbitrary types (integer,   
   >>> floating-point char*). The problem I ran into was that only one of   
   >>> the generic associations is evaluated (which one is determined at   
   >>> compile time), but *all* of them have to be valid code.   
   >>   
   >> That is annoying but it shouldn't be too hard to work around   
   >> it. To verify that hypothesis I wrote this test case:   
   >>   
   >>   
   >> #include    
   >> #include    
   >> #include    
   >>   
   >> #include "h/show.h"   
   >>   
   >> int   
   >> main(){   
   >   
   > [30 lines deleted]   
   >   
   >> show(   
   >> uc,sc,us,ss,ui,si,ul,sl,ull,sll,   
   >> c,f,d,ld,yes,no,u16,s16,uge32,sge32,   
   >> runtime,now,offset,uf32,sf32,   
   >> c * now / 1e8 * ld,   
   >> foo, bas   
   >> );   
   >> printf( "\n" );   
   >>   
   >> return 0;   
   >> }   
   >>   
   >> which compiles under C11 and (along with the show.h include file)   
   >> produces output:   
   >>   
   >> uc = 255   
   >> sc = -1   
   >> us = 65535   
   >   
   > [23 lines deleted]   
   >   
   >> foo = "foo"   
   >> bas = (const char *) "bas"   
   >   
   > Were you planning to show us what show.h looks like?   
      
   I posted what I thought showed the essential elements of what I   
   was trying to convey. I don't want to get dragged into a   
   discussion of irrelevant tangents.   
      
   What would be more interesting is if you would post some of your   
   efforts showing what sort of problems you ran into. What made   
   those happen? What are the contours of the problem you were   
   trying to solve? Were those contours too large, or might the   
   full problem be solvable using a modified approach? It would be   
   good to see a discussion of exactly what problems there were and   
   what sort of approaches might address them.   
      
   --- SoupGate-Win32 v1.05   
    * Origin: you cannot sedate... all the things you hate (1:229/2)   
|