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

    +1

    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
    import std.io;
    import std.string;
    import calendar.month;
    
    module calendar.date;
    
    namespace Chrono
    {
        export
        struct Date {
            Date(int, Month, int);
            int day() const
            {
                return d;
            }
            Month month() const
            {
                return m;
            }
            Int year() const
            {
                return y;
            }
        private:
            int d;
            Month m;
            int y;
        };
        export
        std::ostream &operator<<(std::ostream &, const Date &);
        export
        std::string to_string(const Date &);
    }

    По мотивам: http://habrahabr.ru/company/infopulse/blog/267781/
    зы. https://github.com/isocpp/CppCoreGuidelines/blob/master/talks/Large-Scale-C%2B%2B-With-Modules.pdf

    Запостил: CriDos, 27 Сентября 2015

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

    • export
      export
      export
      export
      export
      export

      Не могли что-то более удобное придуать? Глаза же режет, а каждый раз это ручками писать...
      Ответить
      • Ниче, жабисты же пишут public, public, public и не ворчат.

        Всё лучше, чем всякое говно типа __declspec(dllexport) или __attribute__((dllexport)).
        Ответить
        • это говно в макрос обычно заворачивают всё ж таки
          чтобы тот же заголовок потом и заимпортить
          Ответить
          • LIBHUIPIZDA_API void Djigurda() тоже не особо няшно ;(

            Да и между разными компиляторами толком не работает без extern "C"...
            Ответить
        • Я читал гугловый пропозал для модулей, там одна секция export на модуль, которая, по сути, превращается в хедер.
          Мелкософт, как всегда, решил сделать всё по своему.
          Ответить
    • 2015-й год. В С++ наконец-то обещают добавить то, что Никлаус Вирт реализовал в своей Модуле сорок лет тому назад.
      Ответить
      • Леонардо да Винчи тоже подводную лодку изобрел. Но до ХХ века она была никому ненужна.
        Ответить
      • Когда уже запретят этот с++... он же так скоро все технологии в себя включит и поработит мир
        Ответить
        • До порабощения мира крестами мы уже дожили. А до включения в кресты всех технологий, боюсь, не доживём.
          Ответить
          • (
            Ответить
          • Кресты прогрессивные. Закон Мура к ним можно применить (насколько это возможно), только график будет экспотенциальным. Имено поэтому Бйарн Страуструп так заботливо вводит ктулху-конструкции и прочую ересь, чтоб не дать злым разрастающимся крестам еще и включить в себя все технологии.
            Ответить
    • с этими модулями паблик морозов работать не будет поди
      нафиг-нафиг
      Ответить

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