Сообщение Re[5]: Список целых на этапе компиляции с проверкой от 27.12.2017 12:08
Изменено 27.12.2017 12:32 rg45
Re[5]: Список целых на этапе компиляции с проверкой
Здравствуйте, Marty, Вы писали:
W>>Общее направление: пусть "использование" инстанциирует экземпляр примерно такой переменной: template <int n> int once = -1;, где значение параметра шаблона (это, кстати, не обязательно int) зависит от типа ресурса (или прямо им и является).
W>>Тогда, хотя все единицы трансляции и скомпилируются успешно, линкер не сможет собрать программу, если в ней будут совпадения.
M>Спасибо, идея годная
Сразу обрати внимание на ограничение: такие специализации можно сделать либо в том же, либо в обрамляющем пространстве имен (с явной спецификацией пространства имен). Если окажется, что "использование" происходит в каком-то несвязанном пространстве имен, то это серьезно осложняет задачу, если вообще делает возможной.
W>>Общее направление: пусть "использование" инстанциирует экземпляр примерно такой переменной: template <int n> int once = -1;, где значение параметра шаблона (это, кстати, не обязательно int) зависит от типа ресурса (или прямо им и является).
W>>Тогда, хотя все единицы трансляции и скомпилируются успешно, линкер не сможет собрать программу, если в ней будут совпадения.
M>Спасибо, идея годная
Сразу обрати внимание на ограничение: такие специализации можно сделать либо в том же, либо в обрамляющем пространстве имен (с явной спецификацией пространства имен). Если окажется, что "использование" происходит в каком-то несвязанном пространстве имен, то это серьезно осложняет задачу, если вообще делает возможной.
Re[5]: Список целых на этапе компиляции с проверкой
Здравствуйте, Marty, Вы писали:
W>>Общее направление: пусть "использование" инстанциирует экземпляр примерно такой переменной: template <int n> int once = -1;, где значение параметра шаблона (это, кстати, не обязательно int) зависит от типа ресурса (или прямо им и является).
W>>Тогда, хотя все единицы трансляции и скомпилируются успешно, линкер не сможет собрать программу, если в ней будут совпадения.
M>Спасибо, идея годная
Сразу обрати внимание на ограничение: такие специализации можно сделать либо в том же, либо в обрамляющем пространстве имен (с явной спецификацией пространства имен). Если окажется, что "использование" происходит в каком-то несвязанном пространстве имен, то это серьезно осложняет задачу.
W>>Общее направление: пусть "использование" инстанциирует экземпляр примерно такой переменной: template <int n> int once = -1;, где значение параметра шаблона (это, кстати, не обязательно int) зависит от типа ресурса (или прямо им и является).
W>>Тогда, хотя все единицы трансляции и скомпилируются успешно, линкер не сможет собрать программу, если в ней будут совпадения.
M>Спасибо, идея годная
Сразу обрати внимание на ограничение: такие специализации можно сделать либо в том же, либо в обрамляющем пространстве имен (с явной спецификацией пространства имен). Если окажется, что "использование" происходит в каком-то несвязанном пространстве имен, то это серьезно осложняет задачу.