No, raw pointers are not out of date. Their use is usually discouraged, if necessary. Retaining ownership of an object using an unprocessed pointer is discouraged even more, because you must remember to delete
it, which can be difficult if there are exceptions.
Raw pointers are somewhat more efficient than smart pointers, so using them makes sense in some parts of the code that are performance-sensitive. In some areas, such as linear algebra, pointer arithmetic can be useful, and you should use the source pointers there [1] or create new abstractions on top of the source pointers, perhaps in combination with smart pointers, and not just use smart pointers.
[1]. to determine the type of sub-matrix
source share