Вчера полдня прикидывал, как можно реализовать хитрый контейнер для хранения упорядоченных по ключу данных. Чтобы при малом количестве элементов данные хранились в vector-е, а при большом -- в set-е или map-е. Но чтобы наружу выставлялись обычные итераторы (или их жалкие подобия), дабы пользователь такого контейнера мог вызвать, скажем, for_each(begin(c),end(c)) и не думать о том, будут ли итерироваться элементы vector-а или set-а. Появилось пару соображений, как это сделать на основе union-ов. Сейчас сел писать тестовый прототип...
И тут до меня доходит, что в MSVS2013 нет поддержки т.н. descriminated unions. Т.е. для VC++12.0 все, что я придумал, не реализуемо. В принципе :(
В общем, с большим удовольствием в январе 2016-го откажусь от поддержки этого компилятора. А оставшиеся полтора месяца нужно как-то дотерпеть :)