Недавно я опубликовал вопрос об издержках памяти из-за виртуальности на С++. Ответы позволяют мне понять, как работает vtable и vptr. Моя проблема заключается в следующем: я работаю над суперкомпьютерами, у меня есть миллиарды некоторых объектов, и поэтому я должен заботиться о нехватке памяти из-за виртуальности. После некоторых мер, когда я использую классы с виртуальными функциями, каждый производный объект имеет свой 8-байтовый vptr. Это не является незначительным вообще.
Интересно, имеет ли intel icpc или g++ некоторую конфигурацию/параметр/параметры, чтобы использовать "глобальные" vtables и индексы с регулируемой точностью вместо vptr. Поскольку такая вещь позволила бы мне использовать 2-байтовый индекс (unsigned short int) вместо 8-байтных vptr для миллиардов объектов (и хорошее сокращение служебных данных памяти). Есть ли способ сделать это (или что-то в этом роде) с параметрами компиляции?
Большое спасибо.