C++ 1MIT весна 1 2021 — различия между версиями

Материал из CSC Wiki
Перейти к:навигация, поиск
(Практика 2: Соснин)
Строка 98: Строка 98:
  
 
Материалы: https://github.com/hse-spb-2020-cpp/practice-suvorov
 
Материалы: https://github.com/hse-spb-2020-cpp/practice-suvorov
 +
 +
== Проверяющий: Краско ==
 +
Евгений Краско.
 +
 +
Почта: [mailto:krasko.evgeniy@gmail.com?subject=%5bhse%5d%20%5bcpp%5d%20Вопрос '''krasko.evgeniy@gmail.com'''], в теме письма обязательно указывать <code>[hse] [cpp]</code> и слово "вопрос", если там вопрос.
 +
 +
Telegram: [https://t.me/kraskoes kraskoes]
 +
 +
GitHub: [https://github.com/krasko/ krasko]

Версия 22:27, 14 февраля 2021

Общее

Организация курса на GitHub: https://github.com/hse-spb-2020-cpp

Софт

  • Основной компилятор: gcc со стандартной библиотекой libstdc++ под Linux. С добавлением Address Sanitizer, Memory Sanitizer, UB Sanitizer, Valgrind.
  • Также должно собираться clang со стандартной библиотекой libc++ под Linux.
  • По-хорошему должно собираться gcc/clang/visual studio на Windows, но не у всех есть, поэтому не требуем жёстко.

На Windows можно использовать Visual Studio, но в любом случае требуется поставить GCC/Clang. Для этого можно либо поставить WSL 1 + Ubuntu (и внутри будет обычная линуксовая консоль), либо msys2] с пакетом mingw-w64-x86_64-gcc (это будет gcc, который компилирует под Windows). Егор использует оба варианта, чтобы показывать поведение и под Windows, и под Linux.

Установка clang и stdc++ на Ubuntu

  1. До Ubuntu 20.04: добавляем в конец /etc/apt/sources.list две строчки, соответствующие вашей версии Ubuntu (смотри /etc/lsb-release). Например, для Ubuntu 16.04.1 LTS:
deb http://apt.llvm.org/xenial/ llvm-toolchain-xenial-10 main
deb-src http://apt.llvm.org/xenial/ llvm-toolchain-xenial-10 main
  1. sudo apt update
  2. sudo apt install clang-10 libc++-10-dev libc++abi-10-dev

Можно установить на Ubuntu 18.04 после этих шагов.

Потом можно компилировать при помощи команды clang++-10 -stdlib=libc++ main.cpp -o main. Почти все флаги как у GCC, включая warnings.

Лекции

Лектор: Суворов Егор Федорович (egor_suvorov@mail.ru]), в теме письма обязательно указывать [hse] [cpp] и слово "вопрос", если там вопрос.

Также есть Telegram: yeputons

Базовые материалы

Материалы с лекций: https://github.com/hse-spb-2020-cpp/lectures

Просто хорошие учебники

Тут может быть другое изложение, другие примеры, не хватать большого количества деталей. Но базовая картинка должна сложиться такая же: язык один и тот же, стараемся использовать только общепринятые термины и явно подчёркивать отсебятину.

Общее развитие

Обращайте внимание, для какого стандарта вы читаете рекомендации. Минимальный — C++11, C++03 — это совсем другой язык. Следующие огромные изменения ожидаются в C++20.

Дополнительные материалы

C++20 и метапрограммирование

Практика 1: Алфёров

Василий Алфёров.

Почта: vasily.v.alferov@gmail.com

Телега: vasiliyalferov

GitHub: vasalf

Материалы: https://github.com/hse-spb-2020-cpp/practice-alferov

Практика 2: Соснин

Антон Соснин.

Почта: antsosnin@yandex.ru

Телега: @antonso- предпочтительно

GitHub: mrfeod

Материалы: https://github.com/hse-spb-2020-cpp/practice-sosnin

Практика 3: Суворов

Егор Суворов.

Почта: egor_suvorov@mail.ru, в теме письма обязательно указывать [hse] [cpp] и слово "вопрос", если там вопрос.

Telegram: yeputons

GitHub: yeputons

Материалы: https://github.com/hse-spb-2020-cpp/practice-suvorov

Проверяющий: Краско

Евгений Краско.

Почта: krasko.evgeniy@gmail.com, в теме письма обязательно указывать [hse] [cpp] и слово "вопрос", если там вопрос.

Telegram: kraskoes

GitHub: krasko