LINUX.ORG.RU

История изменений

Исправление kvpfs, (текущая версия) :

Но несколько жаль, что string_view и optional, variant требуют рантайма, хотя и не требуют аллокаций :(

Так это же шаблоны, просто не вызываем throw’ие методы и вся обвязка для исключений и не нужна. Такое скомпилил без libstdc++

#include <string_view>
using namespace std;

extern "C" void __gxx_personality_v0() {}

int main() {
	const char *c = "djfkdjfk";
	string_view v(c);
	int sz = v.size();
}

$ gcc 1.cc

Вставил заглушку __gxx_personality_v0() - видимо где-то в недрах есть catch блок (но throw нет, иначе нужна __cxa_throw).

Ну а если свои аллокаторы, то можно и vector заюзать. Если памяти не хватает, то можно попробовать сохранять образ процесса через CRUI, ну а там «втыкай RAM» и пробуй снова.

Исходная версия kvpfs, :

Но несколько жаль, что string_view и optional, variant требуют рантайма, хотя и не требуют аллокаций :(

Так это же шаблоны, просто не вызываем и вся обвязка для исключений и не нужна. Такое скомпилил без libstdc++

#include <string_view>
using namespace std;

extern "C" void __gxx_personality_v0() {}

int main() {
	const char *c = "djfkdjfk";
	string_view v(c);
	int sz = v.size();
}

$ gcc 1.cc

Вставил заглушку __gxx_personality_v0() - видимо где-то в недрах есть catch блок (но throw нет, иначе нужна __cxa_throw).

Ну а если свои аллокаторы, то можно и vector заюзать. Если памяти не хватает, то можно попробовать сохранять образ процесса через CRUI, ну а там «втыкай RAM» и пробуй снова.