1. C++ / Говнокод #6581

    +160

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    23. 23
    24. 24
    25. 25
    26. 26
    27. 27
    28. 28
    #include <stdio.h>
    #include <boost/typeof/typeof.hpp>
    
    template<class T>
    struct __macro
    {
    	__declspec(thread) static T _;
    };
    
    template<class T>
    T __macro<T>::_;
    
    #define def(c) (__macro<typeof(c)>::_ = c)
    #define acc(c) (__macro<typeof(c)>::_)
    
    #define is_digit(x) (def(x),(acc(x) >= '0' && acc(x) <= '9') ? true : false)
    #define is_bugit(x) ((x >= '0' && x <= '9') ? true : false)
    
    int main()
    {
    	char hj;
    	
    	hj = '9';
    	printf("test->") && is_bugit(hj++) && printf("ok\n") || puts("no");
    
    	hj = '9';
    	printf("test->") && is_digit(hj++) && printf("ok\n") || puts("no");
    }

    Запостил: e113c08d6cf14afb, 07 Мая 2011

    Комментарии (43) RSS

    Добавить комментарий