|
|
|
дружественная функция шаблонного класса
|
|||
|---|---|---|---|
|
#18+
Стоит задача: создать шаблон класса A и производный от него шаблон класса B, при этом функция f1 шаблонного класса B должна быть дружественной шаблонному классу A. Пытаюсь делать так, ан нет, не компилится: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. Как сделать правильно? P.S. Не спрашивайте, зачем это надо. Такие странные задания дают в нашем институте. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.01.2007, 12:09 |
|
||
|
дружественная функция шаблонного класса
|
|||
|---|---|---|---|
|
#18+
vainПытаюсь делать так, ан нет, не компилится: Рассматривай темплеты как сильно усовершенствованные макросы, т.е. средство реализуемое ПРЕпроцессором. Фактически ты хочешь подружить метод МАКРОСА с реализацией своего класса, что заведомо обречено на неудачу. Если задание было ИМЕННО таким (исходных данных задачи не углядел), сочувстыую и ничем не могу помочь ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.01.2007, 12:47 |
|
||
|
дружественная функция шаблонного класса
|
|||
|---|---|---|---|
|
#18+
Рассматривай темплеты как сильно усовершенствованные макросы, т.е. средство реализуемое ПРЕпроцессором. Фактически ты хочешь подружить метод МАКРОСА с реализацией своего класса, что заведомо обречено на неудачу. очень странно такое слышать.. пример прекрасно компилируется на g++ (GCC) 3.2.3 2автор: какой используется компилятор? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.01.2007, 12:58 |
|
||
|
дружественная функция шаблонного класса
|
|||
|---|---|---|---|
|
#18+
И чему только вас там в школе учат..? Уши надо надрать тому кто тебе это задал. В реальной жизни такое извращение не встретишь. P.S. ms vc6 не компилит твой пример :( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.01.2007, 13:17 |
|
||
|
дружественная функция шаблонного класса
|
|||
|---|---|---|---|
|
#18+
msdnAlthough functions with global scope can be declared as friends prior to their prototypes, member functions cannot be declared as friends before the appearance of their complete class declaration. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.01.2007, 13:29 |
|
||
|
дружественная функция шаблонного класса
|
|||
|---|---|---|---|
|
#18+
подозреваю, что наследоваться от класса А можно тоже только после его полного объявления, поэтому придётся объявлять весь класс В френдом. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.01.2007, 13:31 |
|
||
|
дружественная функция шаблонного класса
|
|||
|---|---|---|---|
|
#18+
Голенков Владимир Рассматривай темплеты как сильно усовершенствованные макросы, т.е. средство реализуемое ПРЕпроцессором. Фактически ты хочешь подружить метод МАКРОСА с реализацией своего класса, что заведомо обречено на неудачу. очень странно такое слышать.. пример прекрасно компилируется на g++ (GCC) 3.2.3 2автор: какой используется компилятор? Странно слышать - не слушай. Я понимаю, что в лучшем из миров это ДОЛЖНО работать, но VCPP сего не поддерживает совершенно точно А я очень не люблю финтов, для которых надо спрашивать "какой компилятор". Преподавателя за такое драть однозначно, теоретик блинн ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.01.2007, 13:38 |
|
||
|
дружественная функция шаблонного класса
|
|||
|---|---|---|---|
|
#18+
Странно слышать - не слушай. ну вот горячиться точно не надо, это же не холивар :) мне показалось не слишком корректным смешивание языковых и надъязыковых средств (макросы и препроцессор), только и всего Я понимаю, что в лучшем из миров это ДОЛЖНО работать, но VCPP сего не поддерживает совершенно точно к слову сказать, vcpp 8 это скушал а вот unbound template members увы никто из доступных компиляторов не разумеет :( А я очень не люблю финтов, для которых надо спрашивать "какой компилятор". это не финт, а стандарт языка, который постоянно уточняется т.е. рано или поздно будет поддерживаться повсеместно возможно, сейчас использовать еще не время, но изучать стоит Преподавателя за такое драть однозначно, теоретик блинн это видимо учебный пример, на знание аспектов текущего стандарта.. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.01.2007, 14:57 |
|
||
|
дружественная функция шаблонного класса
|
|||
|---|---|---|---|
|
#18+
Я и не горячусь просто предпочитаю работать с тем, что РАБОТАЕТ сейчас, а не в прекрасном далеко. Можешь предложить пример когда нельзя обойтись без подобного уродства ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.01.2007, 15:05 |
|
||
|
дружественная функция шаблонного класса
|
|||
|---|---|---|---|
|
#18+
Можешь предложить пример когда нельзя обойтись без подобного уродства ? обойтись можно, не вопрос, даже без виртуальных функций ;) а так да, используется, в библиотеках шаблонов например ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.01.2007, 15:46 |
|
||
|
дружественная функция шаблонного класса
|
|||
|---|---|---|---|
|
#18+
boost рулит, теперь понятно аочему сие заработало в VC8 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.01.2007, 15:54 |
|
||
|
дружественная функция шаблонного класса
|
|||
|---|---|---|---|
|
#18+
Я смотрю, не только мне это задание показалось странным. Это действительно просто учебный пример, который должен быть выполнен именно в такой формулировке. Пробовал компилить в VC++ 6.0, VC++ .NET 2003, C++ Builder 2006. Ни в одном не получилось. Только что попробовал в gcc 3.3.3 – все отлично компилится и правильно работает. В связи с этим возник вопрос: правилен ли мой код в соответствии со стандартом языка и проблема заключается в компиляторах от Microsoft и Borland, ограниченно поддерживающих стандарт? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.01.2007, 17:19 |
|
||
|
дружественная функция шаблонного класса
|
|||
|---|---|---|---|
|
#18+
Голенков Владимир пишет: > мне показалось не слишком корректным смешивание языковых и надъязыковых > средств (макросы и препроцессор), только и всего МАКРОСЫ НАДЪЯЗЫКОВОЕ СРЕДСТВО ? Дааа. А ничего, что язык без этого средства вообще не работает и не существует ? Posted via ActualForum NNTP Server 1.3 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.01.2007, 18:01 |
|
||
|
дружественная функция шаблонного класса
|
|||
|---|---|---|---|
|
#18+
МАКРОСЫ НАДЪЯЗЫКОВОЕ СРЕДСТВО ? ну да, фазы препроцессирования и компиляции четко разнесены т.е. легко отчуждаемы (гипотетически) Дааа. А ничего, что язык без этого средства вообще не работает и не существует ? .. как и без редактора исходных текстов %) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.01.2007, 18:15 |
|
||
|
|

start [/forum/topic.php?fid=57&msg=34261944&tid=2029641]: |
0ms |
get settings: |
10ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
146ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
44ms |
get tp. blocked users: |
1ms |
| others: | 218ms |
| total: | 449ms |

| 0 / 0 |
