C++ 1MIT осень 1 2020

Материал из CSC Wiki
Версия от 12:51, 16 октября 2020; E.f.suvorov (обсуждение | вклад) (Установка clang и stdc++ на Ubuntu)
Перейти к:навигация, поиск

Общее

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

  • Дз 0: Lab 0: Hello, World! (попробовать классрум, необязательное, не на баллы)
  • Дз 1: Lab 1: BigInt
    • Общее для всех групп, обязательное.
    • Дедлайн: 1 октября (четверг) 23:59.

Софт

  • Основной компилятор: 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++20 и метапрограммирование

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

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

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

Телега: vasiliyalferov

GitHub: vasalf

Практика 2: Лапшин

Дмитрий Лапшин.

Контакт: au-cpp@ldvsoft.net

GitHub: LDVSOFT

Материалы: Github repo

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

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

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

Telegram: yeputons

GitHub: yeputons

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

Проверяющий: Малышева

Мария Малышева.

Telegram: isomethane

GitHub: isomethane

Проверяющий: Прокопцев

Дмитрий Прокопцев.