Опыт нужен. Хотя бы лет 5. В общем, сеньйор даже не столько должен хорошо уметь писать код, сколько видеть риски и принимать решения, которые точно не повредят проекту. Я думаю, С++ программера можно считать сеньйором, когда он способен принимать решения типа:
1. Выбор IDE, компилятора, версии языка.
2. Написать с нуля или взять готовое.
3. Юзать STL\Boost\MFC\ATL\Qt или нет. Если да — что лучше в данном случае и почему.
4. Стоит отрефакторить код или нет.
5. Написать самому\отдать Juniory
и т.д.
Ах да, еще важный признак «сеньйорства» — осознание того факта, что для программиста на С++ не должно быть невозможных вещей. Какой-нибудь там Java или .NET программер может сказать что-то типа «это ограничения платформы.», «программа тут не может кушать меньше вот такого количества памяти», «это перехватить нельзя — код в недрах ОС\платформы». C++ сеньйор должен быть способен докопаться, разобрать и отладить всё — вплоть до системных библиотек, драйверов и BIOSа.