|
|
|
Шаблоны в MinGW
|
|||
|---|---|---|---|
|
#18+
Всем привет! Занимаюсь переводом весьма крупного проекта с win32 на linux. Решил попробовать собрать под MinGW, пока серв с линухом не готов... не копмилируется простейший шаблон с внешними методами! Код: 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. Сыпется вот здесь и в аналогичных объявлениях: Код: plaintext 1. 2. 3. 4. Говорит, что у меня хрень написана перед 'allocator' (ожидается тип и т.п.). Если я код методов вставляю непосредственно в класс, то сжирает. Собственно вопрос: в g++ нельзя выносить методы шаблонов классов за пределы этих самих шаблонов? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.12.2007, 14:13:01 |
|
||
|
Шаблоны в MinGW
|
|||
|---|---|---|---|
|
#18+
а так? Код: plaintext 1. 2. 3. 4. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.12.2007, 14:43:41 |
|
||
|
Шаблоны в MinGW
|
|||
|---|---|---|---|
|
#18+
Помогло! спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.12.2007, 16:02:52 |
|
||
|
Шаблоны в MinGW
|
|||
|---|---|---|---|
|
#18+
Еще кое-что, чего я не могу понять: Код: 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. На это g++ выдает мне следующее: Код: plaintext 1. 2. Если я указываю явно A<T>::m_value, то сжирает. Практически та же херня с наследуемыми функциями (он их считает глобальными, но не объявленными). При явном указании, откуда что берется - все ок. Но ведь это ацки тупо каждый раз указывать область видимости! Есть ли разумное решение этой проблемы в g++? Заранее благодарен. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.12.2007, 00:56:56 |
|
||
|
Шаблоны в MinGW
|
|||
|---|---|---|---|
|
#18+
selinoth Код: plaintext 1. 2. 3. 4. 5. 6. На это g++ выдает мне следующее: Код: plaintext 1. 2. selinothЕсли я указываю явно A<T>::m_value, то сжирает. Практически та же херня с наследуемыми функциями (он их считает глобальными, но не объявленными). При явном указании, откуда что берется - все ок. Но ведь это ацки тупо каждый раз указывать область видимости!можно ещё указывать return this->m_value; return B<T>::m_value; class ... { using A<T>::m_value; ... { return m_value; } }; тоесть любым способом сделать обращение к m_value зависимым от параметра шаблона. ISO/IEC 14882:2003(E) Programming languages — C++ смотри главу 14.6.2 Dependent names selinothЕсть ли разумное решение этой проблемы в g++?угу, НЕ использовать язык С++... :) вообще есть ключик: Код: plaintext 1. 2. 3. вот ещё ссылки по теме: 10.8 Common Misunderstandings with GNU C++ раздел "Name lookup" http://gcc.gnu.org/bugs.html]раздел "Non-bugs" в самом конце - New in GCC 3.4.0 - ...This also affects members of base classes, see [14.6.2]... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.12.2007, 05:26:59 |
|
||
|
|

start [/forum/topic.php?fid=57&msg=35018066&tid=2027604]: |
0ms |
get settings: |
5ms |
get forum list: |
19ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
161ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
51ms |
get tp. blocked users: |
1ms |
| others: | 190ms |
| total: | 444ms |

| 0 / 0 |
