Публикации по теме 'cpp'
Имя ведущего типа, «точечный шаблон» и почему они необходимы
Любой, кто имеет дело с шаблонами, рано или поздно столкнется с чем-то вроде этого
Но подождите, ошибка единственного оператора в f()
В данном случае ошибка gcc очень хороша, поскольку нам нужно добавить ведущее имя типа, чтобы это получилось:
typename Obj<T>::type var;
Ведущее имя сообщает компилятору, что Obj<T>::type является типом. Но зачем нам это нужно? Мы знаем, что Obj<T> является зависимым типом, потому что он зависит от T.
Во-первых, вы..
Понимание приведений C ++
C ++, будучи строго типизированным языком, строг со своими типами. И всегда бывают случаи, когда нужно преобразовать один тип в другой, что называется приведением. Иногда приведение выполняется неявно. Например -
int a = 10;
long b = a;
Это называется неявным преобразованием. Более конкретно, приведенный выше пример представляет собой стандартное преобразование, которое происходит автоматически между основными типами ( int в short , int в float , int в bool и т. Д.) И..
C++ Type Erasure: перенос любого типа
Понимание того, как написать оболочку любого типа в классе на C++, чтобы повысить уровень абстракции в нашем коде.
Введение
Мы начнем с некоторых основ универсального программирования, объектно-ориентированного программирования и концепций Duck Typing, чтобы понять, какие проблемы пытается решить этот метод. Мы рассмотрим детали шаг за шагом в конце этого поста.
Общее программирование
Универсальное программирование относится к стилю программирования, в котором функции или..
Итераторы в C ++ - Meetup Cpp
Всем привет!
Эта статья представляет собой резюме моей презентации, объясняющей тему итератора на языке C ++, 18.07.2018 на Встрече по C ++ из Барселоны .
Прежде чем продолжить, хочу поблагодарить всех, кто заходит и проявляет интерес к этой теме. Пойдем!.
Итератор - что, зачем и основы
Как указывает Википедия, итератор - это объект, который позволяет программисту перемещаться по контейнеру, не зная, как этот контейнер реализован .
Причина того, что контейнеры и алгоритмы STL..
Простой массив
Описание проблемы: мы хотим разработать простой массив, размер которого можно определить во время выполнения, а его многомерный эквивалент можно будет легко передать функциям.
Предпосылки: Общие алгоритмы, требующие использования 2-х или более многомерных контейнеров, могут быть трудны для написания, если мы полагаемся исключительно на массив C-стиля по умолчанию, предоставляемый C++.
Проблема с этим кодом заключается в том, что я должен явно определить размер столбца массива..
Размещение матриц в C/C++ и как сделать их быстрее
Матрицы широко используются в компьютерных науках, но их не так просто реализовать/создать на C++ по сравнению с другими языками, такими как Python.
Матрица — это, по сути, двумерный массив.
Каждую строку матрицы можно рассматривать как массив данных.
Например,
{9, 13, 5, 2} сам по себе является массивом и оказывается первой строкой матрицы.
Точно так же вся матрица может быть записана как;
{
{9, 13, 5, 2},
{1, 11, 7, 6},
{3, 7, 4, 1},
{6, 0, 7, 10}
}
Это..
Статический анализ как часть процесса разработки в Unreal Engine
Автор: Андрей Карпов
Unreal Engine продолжает развиваться по мере добавления нового кода и изменения ранее написанного кода. Каковы неизбежные последствия постоянного развития проекта? Появление в коде новых ошибок, которые программист хочет выявить как можно раньше. Один из способов уменьшить количество ошибок - использование статического анализатора типа PVS-Studio . Более того, анализатор не только развивается, но и постоянно учится искать новые паттерны ошибок, некоторые из..