сыпаются ошибки от нарушения ODR из-за одинаковых названий внутри анонимных неймспейсов.
Есть ли какой-нибудь плагин/настройка (компилятор clang), которые в процессе сборки переделывают такой код
namespace {
int foo;
}
cout << foo;
На такой:
namespace {
namespace NDJFNNDFJ {
int foo;
}
}
cout << NDJFNNDFJ::foo;
?
вот такая попытка была, но вроде бросили https://lists.llvm.org/pipermail/cfe-dev/2018-April/057579.html может удастся доделать или заиспользовать
fastbuild умеет решать такие конфликты
Не видел такого, а как решает?
Честно говоря не знаю как реализовано, мы используем его как билдтул для юнити билдов. Скорее всего генерит уникальные имена. Был когда то баг с возможными конфликтами при распределенной сборке, не знаю решили они или нет, но у нас сейчас не стреляет
юнити он генерит на препроцессоре, это да. не видел просто чтобы он вмешивался в компиляцию как-то, хм
Обсуждают сегодня