1. Список говнокодов пользователя ASD_77

    Всего: 17

  2. Куча / Говнокод #23256

    −2

    1. 1
    ethereum

    кто нить зарабатывает майнингом ethereum?

    Хочу себе фарму сделать, а то скучно мне

    ASD_77, 10 Августа 2017

    Комментарии (0)
  3. C# / Говнокод #23243

    0

    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
    internal static object CreateDefaultEqualityComparer(Type type)
            {
                Debug.Assert(type != null && type is RuntimeType);
    
                object result = null;
                var runtimeType = (RuntimeType)type;
    
                // Specialize for byte so Array.IndexOf is faster.
                if (type == typeof(byte))
                {
                    result = new ByteEqualityComparer();
                }
                // If T implements IEquatable<T> return a GenericEqualityComparer<T>
                else if (typeof(IEquatable<>).MakeGenericType(type).IsAssignableFrom(type))
                {
                    result = CreateInstanceForAnotherGenericParameter((RuntimeType)typeof(GenericEqualityComparer<int>), runtimeType);
                }
                // Nullable does not implement IEquatable<T?> directly because that would add an extra interface call per comparison.
                // Instead, it relies on EqualityComparer<T?>.Default to specialize for nullables and do the lifted comparisons if T implements IEquatable.
                else if (type.IsGenericType)
                {
                    if (type.GetGenericTypeDefinition() == typeof(Nullable<>))
                    {
                        result = TryCreateNullableEqualityComparer(runtimeType);
                    }
                }
                // The equality comparer for enums is specialized to avoid boxing.
                else if (type.IsEnum)
                {
                    result = TryCreateEnumEqualityComparer(runtimeType);
                }
                
                return result ?? CreateInstanceForAnotherGenericParameter((RuntimeType)typeof(ObjectEqualityComparer<object>), runtimeType);
            }

    Код взят из CoreCLR mscorlib сырцов.

    Внимание вопрос. Нахерна было писать эту обосгость когда данный метод легко делается генериком без какого либо вызова "невидимого" кода?

    вот пример как все должно было быть

    ```
    internal static object CreateDefaultEqualityComparer<T>()
    {
    // Specialize for byte so Array.IndexOf is faster.
    if (typeof(T) == typeof(byte))
    {
    result = new ByteEqualityComparer();
    }
    // If T implements IEquatable<T> return a GenericEqualityComparer<T>
    else if (typeof(IEquatable<T>).IsAssignableFrom( typeof(T)))
    {
    result new GenericEqualityComparer<T>();
    }
    // Nullable does not implement IEquatable<T?> directly because that would add an extra interface call per comparison.
    // Instead, it relies on EqualityComparer<T?>.Default to specialize for nullables and do the lifted comparisons if T implements IEquatable.
    else if (typeof(T).IsGenericType)
    {
    if (typeof(T).GetGenericTypeDefinition() == typeof(Nullable<>))
    {
    result = new NullableEqualityComparer<T>();
    }
    }
    // The equality comparer for enums is specialized to avoid boxing.
    else if (typeof(T).IsEnum)
    {
    result = TryCreateEnumEqualityComparer<T>();
    }

    return result ?? new ObjectEqualityComparer<T>();
    }
    ```

    ASD_77, 07 Августа 2017

    Комментарии (10)
  4. C++ / Говнокод #23221

    −2

    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
    #include <iostream>
    #include <typeinfo>
    
    class S
    {
    public:
    	S* _next;
    };
    
    int main (int argc, char **argv)
    {
        for (S* sw1 = new S(), sw2 = sw1->_next;;)
    	{
    		std::cout << typeid(sw1).name() << std::endl;  
    		std::cout << typeid(sw2).name() << std::endl;  
    		break;
    	}
    
        return 0;
    }

    какого хрена этот говнокод не хочет скомпилиться :)

    ASD_77, 26 Июля 2017

    Комментарии (23)
  5. C++ / Говнокод #23220

    0

    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
    #include <iostream>
    
    template < typename T >
    struct Static
    {
        T t;
    };
    
    template < typename T >
    struct Test
    {
        static Static<Test<T>> t;
    };
    
    template < typename T >
    Static< Test<T> > Test<T>::t;
    
    int main (int argc, char **argv)
    {
        Test<int> t;
        return 0;
    }

    Попробуйте скопилять этот код на G++ (даю подсказку - Test is fully defined type - потому что static не в ходит в размер структуры)

    ASD_77, 26 Июля 2017

    Комментарии (1)
  6. C++ / Говнокод #22806

    −12

    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
    using System;
    
    namespace TestIssue
    {
    	interface Iface1
    	{
    		int _get(int i);
    	}
    
    	interface Iface2
    	{
    		int _get(int i);
    	}
    
    	class S : Iface1, Iface2
    	{
    		int Iface1._get(int i) { return i; }
    		int Iface2._get(int i) { return i * 2; }
    	}
    
    	class Program
    	{
    		public static int Main ()
    		{
    			S s = new S();
    			var f1 = (Iface1)s;
    			var f2 = (Iface2)s;
    			Console.WriteLine(f1._get(10));
    			Console.WriteLine(f2._get(20));
    			return 0;
    		}
    	}
    }

    Задача:

    Имеем код на С#. Нужно написать тоже самое только на С++ (я имею ввиду ближайшие варианты по имплементации явных интерфейсов.

    ASD_77, 13 Апреля 2017

    Комментарии (31)
  7. C++ / Говнокод #22805

    −12

    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
    cmake_minimum_required (VERSION 2.8.10 FATAL_ERROR)
    
    file(GLOB Test_SRC
        "*.cpp"
    )
    
    if (CMAKE_BUILD_TYPE STREQUAL "Debug")
        SET(BUILD_TYPE "debug")
    else()
        SET(BUILD_TYPE "release")
    endif()
    
    include_directories("./")
    link_directories("./")
    
    SET(EXTRA_CXX_FLAGS "-std=gnu++14 -march=native")
    SET(BUILD_ARCH "mingw32")
    
    SET(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -O0 -ggdb -fvar-tracking-assignments -gdwarf-4 -DDEBUG ${EXTRA_CXX_FLAGS}")
    SET(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -O2 ${EXTRA_CXX_FLAGS} -Wno-invalid-offsetof")
    
    add_executable (Test "${Test_SRC}")
    
    target_link_libraries (Test "stdc++")

    cmake на все случаи в жизни. Делаем файл CMakeLists.txt. Ложим в папку где есть C++ файлы.

    юзаем:

    md __build_mingw32_debug
    cd __build_mingw32_debug
    cmake -f .. -G "MinGW Makefiles" -DCMAKE_BUILD_TYPE=Debug -Wno-dev
    mingw32-make -j 8 2>log

    ASD_77, 13 Апреля 2017

    Комментарии (12)
  8. Куча / Говнокод #22772

    −13

    1. 1
    github/govnokod

    как сделать так что бы проект на github-е был популярен?

    ASD_77, 10 Апреля 2017

    Комментарии (3)
  9. C# / Говнокод #22754

    −141

    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
    using System;
    
    namespace AsStringProblem
    {
    	class MainClass
    	{
    		public static void Main ()
    		{
    			object o = "Hello World";
    			Console.WriteLine (o is string + "blah");
    		}
    	}
    }

    вот такая прога больше не работает в C# 7

    ASD_77, 07 Апреля 2017

    Комментарии (11)
  10. C++ / Говнокод #22747

    −141

    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
    36. 36
    37. 37
    template <typename T> struct convert_primitive_type_to_class
    {
    	typedef
    		typename std::conditional< std::is_same< T, void >::value, Void, 
    		typename std::conditional< std::is_same< T, int8_t >::value, SByte, 
    		typename std::conditional< std::is_same< T, uint8_t >::value, Byte, 
    		typename std::conditional< std::is_same< T, int16_t >::value, Int16, 
    		typename std::conditional< std::is_same< T, uint16_t >::value, UInt16, 
    		typename std::conditional< std::is_same< T, char16_t >::value, Char, 
    		typename std::conditional< std::is_same< T, int32_t >::value, Int32, 
    		typename std::conditional< std::is_same< T, uint32_t >::value, UInt32, 
    		typename std::conditional< std::is_same< T, int64_t >::value, Int64, 
    		typename std::conditional< std::is_same< T, uint64_t >::value, UInt64, 
    		typename std::conditional< std::is_same< T, float >::value, Single, 
    		typename std::conditional< std::is_same< T, double >::value, Double, 
    		T 
    		>::type>::type>::type>::type>::type>::type>::type>::type>::type>::type>::type>::type type;
    };
    
    template <typename T> struct convert_class_to_primitive_type
    {
    	typedef
    		typename std::conditional< std::is_same< T, Void >::value, void, 
    		typename std::conditional< std::is_same< T, SByte >::value, int8_t, 
    		typename std::conditional< std::is_same< T, Byte >::value, uint8_t, 
    		typename std::conditional< std::is_same< T, Int16 >::value, int16_t, 
    		typename std::conditional< std::is_same< T, UInt16 >::value, uint16_t, 
    		typename std::conditional< std::is_same< T, Char >::value, char16_t, 
    		typename std::conditional< std::is_same< T, Int32 >::value, int32_t, 
    		typename std::conditional< std::is_same< T, UInt32 >::value, uint32_t, 
    		typename std::conditional< std::is_same< T, Int64 >::value, int64_t, 
    		typename std::conditional< std::is_same< T, UInt64 >::value, uint64_t, 
    		typename std::conditional< std::is_same< T, Single >::value, float, 
    		typename std::conditional< std::is_same< T, Double >::value, double, 
    		T 
    		>::type>::type>::type>::type>::type>::type>::type>::type>::type>::type>::type>::type type;
    };

    мапирование типов в C++ через шаблоны.

    пример юза:

    convert_primitive_type_to_class<uint16_t >::type - вернет "UInt16" type

    ASD_77, 06 Апреля 2017

    Комментарии (17)
  11. C# / Говнокод #22728

    −149

    1. 1
    (класный там говнокодец)

    https://www.microsoft.com/net

    А вы давно открывали этот сайт?

    ASD_77, 03 Апреля 2017

    Комментарии (0)