Чтобы ответить на ваши конкретные вопросы:
Learn C ++ 0x
Вам определенно нужно это сделать.Так что, возможно, у вас есть ваш ответ прямо здесь ...
Узнайте, какой код сборки генерируется для различных типов конструкций, может быть, для x86
Я бы сказал, узнать, какчтобы понять язык ассемблера, который генерирует компилятор, в общих чертах, если не подробно.Однако вам определенно не следует пытаться предсказать, что будет делать компилятор.
Забудьте языковые нюансы и получите основы - теорию автоматов из таких мест, как Sipser или Papadimitriou
Если это вас заводит, я полагаю ...
Если вы знаете ООП или, по крайней мере, думаете, что знаете, подумайте, как объединить навыки функционального программирования с C ++
Из всех парадигм, поддерживаемых C ++, функциональное программирование, вероятно, поддерживается хуже всего - если вы хотите изучать FP, изучать Haskell (или что-то еще), а не C ++.
Работайте над чем-то вроде строккомпилятор и открытый исходный код, такие как LLVM или GNU Toolchain
GNU написан на C, поэтому вряд ли он улучшит ваши навыки C ++ - я мало знаю о LLVM.
Вся идея разрушена - следующий уровень означает более сложные структуры данных.Так что, если вы знаете AVL, подумайте о том, чтобы научиться изучать левые красные черные деревья и т. Д.
Деревья RB не намного сложнее, чем деревья AVL - та же базовая концепция.Если вы понимаете основные структуры, описанные в учебнике по структурам данных, я не вижу необходимости копать дальше, если предмет не особенно вас интересует.