К списку форумов К списку вопросов
Почему нельзя вынести определение за объявление класса...
Уп
22.04.2004 - 21:36
Опять встречаю эту лажу(Vc++ 7)...
Типа вот этого(всё дело в h файле)
template<class SomeClass>
class A{
public:
 class B{
  void some_function();
 };
};
Теперь при попытке определить функцию за пределами класса пишет, что так нельзя...
template<class SomeClass>
void A<SomeClass>::B::some_function()//причём можно и inline(всё равно не пашет)
{
    to do...
}
А только так
template<class SomeClass>
class A{
public:
 class B{
  void some_function()
         {
             to do...
         }
};
};
Чё за подвох?
LF
1 - 22.04.2004 - 23:00
ХЗ, вроде все правильно.
еще раз проверь
Сергей
2 - 23.04.2004 - 09:41
В VC 6, насколько я помню, этот момент упоминался в справке, в разделе "несоответствие стандарту". Возможно, в VC7 то же самое.
Тигренок
3 - 23.04.2004 - 11:20
хм. а VC7.1 компилит спокойно и ничего не говорит по этому поводу...
LF
4 - 23.04.2004 - 13:10
просто в VC7 с++ компилятор НЕ переделывался и они его просто с 6ки взяли, поэтому и не компилится. В свете стандарта с++ в коде нет ошибки.
В VC7.1 компилятор был сильно подтянут к стандарту
Уп
5 - 24.04.2004 - 22:41
Во блин новости.
Люди запишите VC7.1 за пиво , a?
Уп
6 - 24.04.2004 - 22:42
...
Уп
7 - 27.04.2004 - 16:25
LF:), я знаю, что ты ето сделать можешь:)
ну за болванки...пиво...? Please
lesha
8 - 28.04.2004 - 19:57
VC7 все же отличается от VC6, в семерке по крайней мере уже есть шаблонные параметры шаблонов
LF
9 - 28.04.2004 - 22:13
3RW устроит?
Уп
10 - 28.04.2004 - 23:06
2LF давай мыло:надо уточнить детали.
LF
11 - 28.04.2004 - 23:08
или ася 37116204
ScrewDriver
12 - 29.04.2004 - 09:55
http://www.comizdat.com/3/4/90/2850/2857/
ближе к концу статьи объяснение

К списку вопросов на форуме Программирование

>>