|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
02.03.2010, 01:04 | #1 |
Пользователь
Регистрация: 13.08.2009
Сообщений: 37
|
Шаблоны классов
Не могу понять: Почему компилятор матерится на следующее:
Код:
|
02.03.2010, 02:15 | #2 |
Форумчанин
Регистрация: 07.01.2010
Сообщений: 141
|
С объявлением порядок.
Выкладывайте определение методов, контекст, в котором используется этот шаблонный класс (полный контекст, со всеми инклудниками) и все ошибки компиляции. |
02.03.2010, 17:26 | #3 |
Пользователь
Регистрация: 13.08.2009
Сообщений: 37
|
Ну... например так:
Код:
Код:
Код:
[BCC32 Error] iosfwd(129): E2102 Cannot use template 'streampos' without specifying specialization parameters Full parser context Unit1.cpp(8): #include C:\Program Files\Embarcadero\RAD Studio\7.0\include\boost_1_39\boost \tr1\tr1\iostream iostream(16): #include C:\Program Files\Embarcadero\RAD Studio\7.0\include\boost_1_39\boost/tr1/detail/config_all.hpp config_all.hpp(151): #include c:\program files\embarcadero\rad studio\7.0\include\../include/dinkumware/utility utility(5): #include c:\program files\embarcadero\rad studio\7.0\include\dinkumware\iosfw d iosfwd(9): namespace std [BCC32 Error] iosfwd(129): E2040 Declaration terminated incorrectly Full parser context Unit1.cpp(8): #include C:\Program Files\Embarcadero\RAD Studio\7.0\include\boost_1_39\boost \tr1\tr1\iostream iostream(16): #include C:\Program Files\Embarcadero\RAD Studio\7.0\include\boost_1_39\boost/tr1/detail/config_all.hpp config_all.hpp(151): #include c:\program files\embarcadero\rad studio\7.0\include\../include/dinkumware/utility utility(5): #include c:\program files\embarcadero\rad studio\7.0\include\dinkumware\iosfw d iosfwd(9): namespace std [BCC32 Error] iosfwd(251): E2238 Multiple declaration for 'char_traits<>' Full parser context Unit1.cpp(8): #include C:\Program Files\Embarcadero\RAD Studio\7.0\include\boost_1_39\boost \tr1\tr1\iostream iostream(16): #include C:\Program Files\Embarcadero\RAD Studio\7.0\include\boost_1_39\boost/tr1/detail/config_all.hpp config_all.hpp(151): #include c:\program files\embarcadero\rad studio\7.0\include\../include/dinkumware/utility utility(5): #include c:\program files\embarcadero\rad studio\7.0\include\dinkumware\iosfw d iosfwd(9): namespace std [BCC32 Error] iosfwd(133): E2344 Earlier declaration of 'char_traits<>' Full parser context Unit1.cpp(8): #include C:\Program Files\Embarcadero\RAD Studio\7.0\include\boost_1_39\boost \tr1\tr1\iostream iostream(16): #include C:\Program Files\Embarcadero\RAD Studio\7.0\include\boost_1_39\boost/tr1/detail/config_all.hpp config_all.hpp(151): #include c:\program files\embarcadero\rad studio\7.0\include\../include/dinkumware/utility utility(5): #include c:\program files\embarcadero\rad studio\7.0\include\dinkumware\iosfw d iosfwd(9): namespace std [BCC32 Error] iosfwd(346): E2238 Multiple declaration for 'char_traits<>' Full parser context Unit1.cpp(8): #include C:\Program Files\Embarcadero\RAD Studio\7.0\include\boost_1_39\boost \tr1\tr1\iostream iostream(16): #include C:\Program Files\Embarcadero\RAD Studio\7.0\include\boost_1_39\boost/tr1/detail/config_all.hpp config_all.hpp(151): #include c:\program files\embarcadero\rad studio\7.0\include\../include/dinkumware/utility utility(5): #include c:\program files\embarcadero\rad studio\7.0\include\dinkumware\iosfw d iosfwd(9): namespace std [BCC32 Error] iosfwd(133): E2344 Earlier declaration of 'char_traits<>' |
02.03.2010, 17:29 | #4 |
C++ hater
СтарожилДжуниор
Регистрация: 19.07.2009
Сообщений: 3,333
|
2__Demon__
шаблонные классы не разделяются на h/cpp, все в h. дальше не смотрел
I invented the term Object-Oriented, and I can tell you I did not have C++ in mind. (c)Alan Kay
My other car is cdr. Q: Whats the object-oriented way to become wealthy? A: Inheritance |
02.03.2010, 17:42 | #5 |
Пользователь
Регистрация: 13.08.2009
Сообщений: 37
|
Учту. Но всеравно даже если перенести всё в .h ошибки не пропадают.
|
02.03.2010, 17:43 | #6 | |
C/C++, Asm
Участник клуба
Регистрация: 02.03.2010
Сообщений: 1,323
|
может я и ошибаюсь, но если в качестве параметра теплейта будут использоваться integral types, то может разумнее обьявить template <typename T> ..., плюс сильно сомневаюсь что билдер сможет вкурить, что за copy-constructor нужен для param1
Цитата:
|
|
02.03.2010, 17:48 | #7 |
C++ hater
СтарожилДжуниор
Регистрация: 19.07.2009
Сообщений: 3,333
|
2__Demon__
header.h Код:
Код:
I invented the term Object-Oriented, and I can tell you I did not have C++ in mind. (c)Alan Kay
My other car is cdr. Q: Whats the object-oriented way to become wealthy? A: Inheritance |
02.03.2010, 17:49 | #8 |
Пользователь
Регистрация: 13.08.2009
Сообщений: 37
|
Такое чувство что компилятор плевать хотел на template<class T> или template<typename T>. Он выдаёт одни и теже ошибки.
|
02.03.2010, 19:48 | #9 |
Eclipse Foundation
Старожил
Регистрация: 19.09.2007
Сообщений: 2,604
|
А какой проект вы создаете?
|
02.03.2010, 21:41 | #10 |
Форумчанин
Регистрация: 07.01.2010
Сообщений: 141
|
Студия такой код компилит. Но у меня родная стл, нет буста. Какие настройки в вашей среде - вам виднее.
Единственное, что приходит в голову - вы заюзали using namespace std; в h-файле. Далее, в зависимости от порядка включения всяких инклюдников эта директива может поаффектить на вашу стл или буст, поэтому компилятор сходит с ума. Общее правило - не использовать using директив в h файлах. И еще раз запостите все файлики вашего проекта со всеми переделками, которые вы сделали. + еще попробуйте сделать ф-ию Print пустой и скомпилить. какие будут ошибки? |
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Шаблоны С++ | Secc | Помощь студентам | 4 | 27.12.2009 17:35 |
Создание классов и использование объектов классов при написании программ в среде C++. | Frozen inside | Помощь студентам | 0 | 16.04.2009 23:18 |
Шаблоны | bondik | Общие вопросы C/C++ | 10 | 04.05.2008 09:50 |
Шаблоны пользовательских классов | MaTBeu | Общие вопросы C/C++ | 2 | 23.03.2008 19:02 |