Asher |
Отправлено: 20.06.2005, 16:14 |
|
Мастер участка
Группа: Модератор
Сообщений: 550
|
Привет.
Так как текущие реализации компиляторов не поддерживают разделение интерфейса и реализации шаблонов по разным единицам трансляции, то вполне естественным выглядит желание писать шаблон как единую структутру, т.е. интерфейс сразу с реализацией.
При Release-компиляции компилятор на многие из функций жалуется, что не может сделать их inline, хотя спецификатор inline в объявлении отсутствует.
Как следствие этого сообщения подозреваю, что те шаблонные функции, на которые нет варнинга компилятором были сделаны inline.
A мне не надо их делать inline.
Да и в такой толпе варнингов тяжело искать те, которые действительно важны.
Может есть какая опция к компилятору, запрещающая делать inline, если это не указано явно в спецификации функции?
|
|
Gedeon |
Отправлено: 21.06.2005, 12:23 |
|
Ветеран
Группа: Модератор
Сообщений: 1742
|
м.б.
CODE |
#pragma intrinsic [-]function-name |
|
|
Asher |
Отправлено: 21.06.2005, 13:15 |
|
Мастер участка
Группа: Модератор
Сообщений: 550
|
Привет.
Я видел эту прагму, но так и не смог заставить ее работать с методом класса.
Да и как-то нездорово это — к каждой функции подписывать лишнюю строку для исправления непрошенного инлайна.
|
|
olegenty |
Отправлено: 21.06.2005, 19:02 |
|
Ветеран
Группа: Модератор
Сообщений: 2412
|
блин, натыкался где-то на рашение, но в упор не помню где...
|
|
olegenty |
Отправлено: 10.11.2006, 16:33 |
|
Ветеран
Группа: Модератор
Сообщений: 2412
|
2 Asher
ты эту проблему решил? чё-то я не могу, и от этого как-то мне грустно...
|
|
Asher |
Отправлено: 13.11.2006, 10:17 |
|
Мастер участка
Группа: Модератор
Сообщений: 550
|
Привет.
Нет не решил.
Пока каждый раз оборачиваю шаблон вCODE |
#ifdef __BCPLUSPLUS__
#pragma warn -8026
#endif |
ну и соответственно CODE |
#ifdef __BCPLUSPLUS__
#pragma warn +8026
#endif |
То есть просто давлю warning.
#ifdef __BCPLUSPLUS__ присутствует в коде по причине плавной миграции на MS VC
Там это нормально реализовано — в ключах компиляции.
|
|
olegenty |
Отправлено: 13.11.2006, 10:23 |
|
Ветеран
Группа: Модератор
Сообщений: 2412
|
а как вариант — тупо объявить все шаблонные методы как virtual? (отдавая себе отчёт, к чему это приведёт)
виртуальные методы экспортируются с гарантией, ибо они есть неотъемлемая часть интерфейса класса...
|
|