В C ++ есть разные вещи, которые считаются современными .
Прежде всего, я думаю, это необычное появление шаблонов.Не только сам STL, но и менее «регулярное» использование шаблонов, которое привело к разработке шаблонного метапрограммирования.Например, обратите внимание на наличие enable_if
в следующей версии стандарта.
Это наиболее замечательная черта, которую я считаю движением программиста на C ++, стремящегося обеспечить корректность по построению:
- предпочитаю ошибки компилятора ошибкам времени выполнения> шаблоны / безопасность типов вместо многоточия /
void*
- используйте Scope Bound Resource Management (он же RAII, но немного более явный)
Это исследование высокого качества также привело к повсеместному использованию:
- STL (алгоритмы и структуры данных, которые были тщательно протестированы, даже несмотря на то, что STL, к сожалению, довольно небезопасны по своей конструкции)
- библиотеки Boost (проверенные опытными программистами, почти без ошибок, очень переносимые)
Анализ этих библиотек также демонстрирует, что программисты на C ++ больше не имеют комплекса неполноценности по отношению к этим OOязыки: теперь освобожденные от этого комплекса, мы без колебаний смешиваем различные парадигмы (OO, generic, процедурныйral) для достижения нашей цели.
В целом, я думаю, что Modern C ++ - это скорее образ мышления.Мы (программисты на C ++) пытаемся освободиться от страшного неопределенного поведения , которое мучает нас так долго, и пытаемся также освободить его от наших пользователей (определяя интерфейсы, которые этого не позволяют).Мы также принимаем тот факт, что другие были раньше, и что повторное использование существующих библиотек НЕ является признаком слабости.