as long as you can find a compiler that supports that instruction set, you can write C++ code for it easily.
You could even wrap the registers in classes, so instead of saying
DDRB |= _BV(3);
you might say
Port portB(PINB, PORTB, DDRB);
portB.setDir(3, OUTPUT);
which makes it more C++-y and less C-y