is_negative = d < 0
was_negative = is_negative
was_negative = d < 0
while d >= -xx:
d = x - y
x = d
is_negative = d < 0
if is_negative != was_negative:
print('Marked!')
was_negative = is_negative
print(d)
for(unsigned i; i < len; i++)
уже не определено. С самой первой же итерации этого цикла, если неопределенному поведению вообще заблагорассудится начать хоть одну итерацию этого цикла.Я не понимаю что я делаю не так
std::future
и std::async
рекомендовали?extern
решает проблему.Могу ошибаться
extern
ты прав. Он дает выражению характеристику внешнего связывания, а у глобальных констант без этого спецификатора связывание внутреннее. мне не помогает, я уже во все папки скопировал и ничего все-равно ошибка
Для решения задачи у тебя есть два множества: множество "A" и множество "B". И есть интерфейс с функцией "virtual B Intf::Foo(A) = 0";
В базе кода уже присутствует полсотни имплементаций этого интерфейса и больше тысячи мест использования имплементаций по интерфейсу.
Твоя задача - создать еще одну имплементацию "Intf::Foo", для работы которой потребуется сперва как-то изменить как множество "A", так и множество "B".
Вопрос: какие ограничения уже имеющийся код накладывает на твои возможности по изменению множеств "A" и "B"?
Никак. ODR непреложно.
У тебя терминология плывет. Тебя люди сейчас не понимают. Имеющиеся ответы тому только подтверждение.
Что такое "экспортирует"? C++ оперирует только объявлениями и определениями. Исправь свой вопрос согласно терминологии языка.
Если менять нельзя, просто выкинь весь этот код. Он не достоин использоваться если в нем нельзя исправлять фундаментальные нарушения стандарта языка.
В ином случае подобные помойки каждое свое определение заключают в условную компиляцию. Тогда тебе нужно знать макрос, который выключит код определения ненужного тебе типа.