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

    −34

    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
    29. 29
    30. 30
    31. 31
    32. 32
    33. 33
    34. 34
    35. 35
    int ConditionsTuple(const bool Condition1, const bool Condition2)
    {
    	return (Condition1<<1) + Condition2;
    }
    
    template <bool Condition1, bool Condition2>
    struct TConditionsTuple
    {
    	enum {Result = (Condition1<<1) + Condition2};
    };
    
    float SignedIf(const bool Condition)
    {
    	return Condition ? -1 : 1;
    }
    
    switch (ConditionsTuple(
    					bExpr1,
    					bExpr2
    					))
    	{
    		case TConditionsTuple<1, 1>::Result:
    			return PArc(new TArc(
    							CouplePointAtPrimitive1,
    							CouplePointAtPrimitive2,
    							ArcCoupleCenter,
    							Abs(arcCoupleRadius)
    							));
    		case TConditionsTuple<0, 1>::Result:
    			throw TPrimitive1HalfLengthExpiredException();
    		case TConditionsTuple<1, 0>::Result:
    			throw TPrimitive2HalfLengthExpiredException();
    		case TConditionsTuple<0, 0>::Result:
    			throw TAllPrimitivesHalfLengthExpiredException();			
    	}

    Запостил: Говногость, 04 Июня 2012

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

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