Правильно так "vector< vector<int> >",

Модераторы: Hawk, Romeo, Absurd, DeeJayC, WinMain

Ответить
Lev
Сообщения: 45
Зарегистрирован: 14 фев 2005, 11:17

template<class T>
class sss
{

};


template<class T>
class addr{

};

class addr2{

};


void main()
{
// нет проблем
sss<addr2> obj1;

// вот это уже не хочет компилиться
// пишет: error C2146: syntax error : missing ',' before identifier 'obj2'
sss<addr<int>> obj2;

// но мне нужно вприниципе вот это (оно также не компилиться)
sss<sss<int>> obj3;
}

// Как самого из-под себя заставить?
Absurd
Сообщения: 1228
Зарегистрирован: 26 фев 2004, 13:24
Откуда: Pietari, Venäjä
Контактная информация:

На входе компилятора стоит теголовка, которая воспринимает ">>" как символ побитового сдвига вправо.
Теголовка тупа, но в этом и ее определенное достоинство. Ее решили не усложнять.
Чтобы ее отучить воспринимать ">>" как символ сдвига влево надо поставить пробел между символами - "> >".
2B OR NOT(2B) = FF
Lev
Сообщения: 45
Зарегистрирован: 14 фев 2005, 11:17

Спасибо большое. Такая подстава была. Я бы без Вас долго напрягался. Теперь буду знать. Этот совет нужно включить в сборник советов "Что делать, если алгоритм правильный, а программа не компилируется или работает не правильно". Я бы в него также включил ещё и такой пример:

int i=0;
// условие скомпилируется верно, но оно неправильно логически
if(i=0)
{
// подразумевалось if(i==0)
}

// многие начинающие программеры часами могут искать ошибку и не подазревая насколько она каверзна и в тоже время мелка.

ПЕРВОНАЧАЛЬНАЯ ТЕМА ЗАКРЫТА
Eugie
Сообщения: 708
Зарегистрирован: 17 фев 2004, 23:59
Откуда: SPb

Теголовка :)
Гугл и Яндекс отдыхают. Зачот!

Lev, против if(i=0) есть хорошее правило: слева писать константу, т.е. if(0==i). В случае if(0=i) компилятор заругается.
Lev
Сообщения: 45
Зарегистрирован: 14 фев 2005, 11:17

Да, я в курсе. Стараюсь так делать. Но, (точно не знаю), возможно могут возникать иногда проблемы с недогруженностью операторов, в случае своего типа вместо int.
Sera
Сообщения: 38
Зарегистрирован: 03 мар 2005, 17:23
Откуда: Симферополь

невтему:
а знаете, что можно писать так:
if (int i=0)
{

}
? бывает очень удобно
Lev
Сообщения: 45
Зарегистрирован: 14 фев 2005, 11:17

знаем. Я в "форе" так часто делаю:
#include <iostream>
void main()
{
for(int i=0;i<10;i++) std::cout << i << "\n";
}
Ответить