Ну тут проблема будет как минимум в стандартной библиотеке. Вы в общем можете собрать с фичами C++11, но со старой рантайм либой, будет работать, но не будут доступны элементы стандартной библиотеки. Вы можете попробовать привести код на использование std::tr1, но тут нет гарантий, что тоже будет всё нормально работать. Использование одновременное нескольких рантаймов, не есть хорошо, падения могут быть где угодно.
Единственное что может спасти, если вы не используете никаких сторонних библиотек на C++, в этом случае вы можете попробовать собрать со статической линковкой стандартной библиотеки.
Ну да, если вы хотите сослаться на данные в Shared memory, то храните смещение, например относительно начала блока. ОС замапить может в любое свободное место доступной процессу виртуальной памяти.
1. Грубо говоря, выигрыша вообще не будет
2. Ну в тот же PHP встроить тот еще геморой
3. Качество кода программистов, содержание которых обходится дешевле содержания разработчиков C++ ниже плинтуса.
GUID и сам-то не гарантирует строгой уникальности в целом, только в определенной замкнутой системе. Ну и к примеру для шардинга всё куда как проще может быть. Если знаете какое хранилище использовать, то спокойно заводите счетчик для каждого хранилища и выставляете нужное кол-во старших бит, чтобы точно идентифицировать нужную ноду. В вашем случае всего 1 бит. Или даже грубо можно использовать знаковое число, для одной ноды плюсовать от 1, для другой минусовать от -1.
Можно, сделать одиночные индексы на каждое поле и вытаскивать через OR, но увы, не всегда вменяемо это может работать (в плане использования индексов).
Ну уж так категорично говорить, что std::string, вообще в C++ нет понятия строки, есть понятие указатель на блок памяти, я могу адрес и в long запихать или long long. И адрес будет указывать на начало блока строки, а еще могу и память иначе организовать и будет указывать на конец.
Единственное что может спасти, если вы не используете никаких сторонних библиотек на C++, в этом случае вы можете попробовать собрать со статической линковкой стандартной библиотеки.
Вы так же можете покрасноглазить с установкой более свежего тулчейна на CentOS 6, которого из коробки там нет. Как вариант можете попробовать superuser.com/questions/381160/how-to-install-gcc-... .