Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Специализация шаблона. Ступор о_о
|
|||
|---|---|---|---|
|
#18+
Вот тут дан ответ , который у меня не работает. Если я в одном cpp файле объявляю класс и два его шаблонных метода, потом в main всё это зову, всё ок. Но стоит мне нормально написать код, вынести класс в *.h, как линкер перестаёт дружить с компилятором >_< C.h Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. специализацию надо вынести в cpp, всё же таки это "живой" код (иначе при нескольких вложениях линкер выдаёт ошибку). C.cpp Код: sql 1. 2. 3. далее App.cpp Код: plaintext 1. 2. линкер на App.obj выдаёт ошибку, про то, что f<int> уже определена в С.obj, т.е. при встрече в коде c.f(1); компилятор берёт шаблон и генерирует ещё один метод f для int-а. Потом линкер находит его же копию в C.obj и выдаёт эту ошибку. Что я делаю не так? Среда: MS VS 2013 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.06.2016, 06:21 |
|
||
|
Специализация шаблона. Ступор о_о
|
|||
|---|---|---|---|
|
#18+
млин, когда написал, допёрло подсказать компилятору: C.h Код: plaintext 1. 2. 3. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.06.2016, 06:23 |
|
||
|
Специализация шаблона. Ступор о_о
|
|||
|---|---|---|---|
|
#18+
ну вот, только приготовлися ответить,как оказалось что товарисч тс уже усе знает :( дико обломался чего-то не осталось интересных тем в этом топике :( кстати, с шаблонами иногда помогает extern, у меня, помню, какие-то шаблоны без этого не компилились (когда я хотел вынести опренделение в cpp файл). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.06.2016, 10:01 |
|
||
|
Специализация шаблона. Ступор о_о
|
|||
|---|---|---|---|
|
#18+
alexy_blackну вот, только приготовлися ответить,как оказалось что товарисч тс уже усе знает :( дико обломался чего-то не осталось интересных тем в этом топике :( Ну, так получилось :) Времени не очень много, поэтому интересные темы убиваются на корню по принципу: "сделать, чтоб было просто и чтоб работало". Даже этот проблема была решена изначально отказом использовать нереализованные шаблонные функции класса. Точнее, совсем в начале проблема была в другом, был класс и в нём шаблонная функция GetParam<T>(const String& name), которая выдавала на выходе парам в типе шаблона. Было 3 специализации, а как оказалось, сам шаблон не использовался по коду, и тут вдруг оказалось, что GetParam<String>(...) не работает... в попытке разобраться быстро, выяснилось, что что-то не так, что не помню, но в результате всё свелось к вот этой задаче (а коде быстрое решение было примерно такое: String(GetParam<float>(...)) ...) такие дела =( PS: а в 11/14 вроде есть более простой способ получения результата по типу переменной слева ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.06.2016, 06:34 |
|
||
|
|

start [/forum/topic.php?fid=57&msg=39256054&tid=2018499]: |
0ms |
get settings: |
9ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
69ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
43ms |
get tp. blocked users: |
1ms |
| others: | 41ms |
| total: | 194ms |

| 0 / 0 |
