даже при одной такой переменной?
Конечно.
Тогда как эта проблема обходится в реализации std::basic_string для npos?
Она существует тогда, когда в программе существует более одного определения любого символа.
Определением в cpp, или inline.
До С++17 это решается определением в CPP?
по всей видимости тем, что оно константа
Стандарт для inline не помню, но да.
Так у меня оба поля тоже константы
There can be more than one definition of <...> static data member of a class template. <...> Given such an entity named D defined in more than one translation unit, then — each definition of D shall consist of the same sequence of tokens; and <...>
Оберните код в теги: 3 символа ` до и после кода (в случае одиночной конструкции достаточно 1 ` с обеих сторон). Спасибо!
Перенеси назад в шаблон обе константы, будет тебе аналог inline.
Назад в шаблон? В какой, если я разговор начал с того, что у меня поля в обычном классе?
Можно, но от ODR violation не спасёт.
Почему? Ведь объявляют же константы в хедерах.
Объявлять никто не мешает. А вот определять — другое дело.
почему, с const будет ок
Не будет
будет
Вот и я о том же
Обсуждают сегодня