В недавних реализациях C++ есть много замечательных возможностей (и под «последними» я подразумеваю C++11 и выше), но я считаю, что в целом вы должны быть избирательны в отношении того, какие ингредиенты добавляются в суп, и это с любой язык.

Я наткнулся на Reddit, где обсуждалось использование std::Optional‹› по сравнению с выделением необработанного указателя. Одна разумная точка зрения заключалась в том, что использование std::Optional вместо простого использования необработанного указателя было безопаснее и могло избежать динамического распределения, которое теоретически должно быть быстрее, чем выделение и проверка указателя. Другой взгляд был…