Обновить
137
1.3

Пользователь

Отправить сообщение
Да. Там говорится «должны выполняться вот эти условия». То условие, что вы подчеркнули, первое в списке. Дальше идут еще несколько условий. В самом конце параграфа говорится «Если определения D удовлетворяют всем этим требованиям, программа должна вести себя так, как если бы сущность D была определена один раз. Если определения D не удовлетворяют этим требованиям, поведение не определено.»

Именно о последнем предложении и говорится в посте. Определения D не удовлетворяют тем требованиям, поэтому поведение не определено.

Спасибо за сообщение, сейчас будем разбираться
Вы поставили ссылку рекурсивно сюда же. Хотели поставить ссылку сюда?
Это нарушение стандарта, а не ODR. Поскольку inline-функции с одинаковой сигнатурой должны иметь одинаковые реализации в различных единицах трансляции. И то, что пример удачно компилируется, является скорее отступлением компилятором MSVC от стандарта.

Это не нарушение стандарта и не отступление от стандарта. Стандарт говорит, что в этом случае поведение не определено. Соответственно, никаких ограничений не накладывается.

Все попытки «объяснить» неопределенное поведение — пустая трата времени.
Вся кухня с выявлением множественных символов работает только для не-inline функций. К inline функциям эта кухня не применяется. Об этом первые четыре абзаца. Так что да, вы правы насчет множественных символов, межмодульной оптимизации и ключей типа muldefs, но все это не имеет никакого отношения к предмету поста.

Более того, комментарий ниже, в общем полностью справедлив, но не очень полно сформулирован. Если о какой-либо ситуации в стандарте говорится «поведение не определено», то все попытки «объяснить», «доказать» или «обосновать» действия компилятора и поведение программы обречены — в лучшем случае после кропотливого анализа всех исходников конкретного компилятора и C++ runtime вы сможете сделать вывод о конкретной версии компилятора и C++ runtime. Эти выводы будут справедливы только для этой версии. Стоит обновить компилятор или runtime или перейти на другой компилятор — и «анализ» нужно проводить заново. Естественно, код с неопределенным поведением автоматически оказывается непереносимым между разными компиляторами и разными реализациями C++ runtime. Оно того не стоит.
Простое совпадение — в одном заголовке один разработчик написал функцию с какой-то сигнатурой и каким-то именем, в другом другой разработчик — другую функцию с теми же сигнатурой и именем. Это крайне маловероятно, если использовать разумный подход к выбору имен функций, но тем не менее возможно.
Да, /W4 в сочетании c /WX помогает найти кучу проблем. Например, C4930 — такой дефект легко посадить, не так-то просто заметить, а последствия крайне неприятные.
А вы пробовали распознавать формы, заполненные от руки, или сплошной рукописный текст?
Это лучше спросить у менеджера, с которым будете работать. Цена зависит от большого количества параметров: количества страниц, которые планируете обрабатывать в месяц, количество точек ввода, территориальная распределенность системы, необходимость дорабатывать шаблоны под ваши задачи. Пытаться это прикидывать наобум – бессмысленно.
Сделали апдейт, постарались ответить на все вопросы
Ну зачем так категорично? Просто пробуйте сразу ту версию, в которой эта функция будет
Может, просто у себя опубликуете и ссылку пришлёте? Ну или в личку. Up to you :)
В первой версии переносить слова нужно будет с помощью Copy/Paste, в следующих версиях планируется сделать импорт слов из Лингво в Тьютор по нажатию на специальную кнопку.

Спасибо за замечания и идеи! Учтём при доработке!
Скоро выйдет ABBYY Tutor для Apple iOS, это обучающая программа, там можно будет учить слова

Возможность нажать на любое слово в статье и получить его перевод планируется добавить в следующих версиях программы.
скорее всего, будет. мы сейчас расширяем контакты с зарубежными издательствами, так что словарей будет больше
подгрузится! :)
да, она предложит сделать апдейт, бесплатно

Информация

В рейтинге
1 554-й
Откуда
Россия
Зарегистрирован
Активность