Преобразование кода C ++ 11 в C ++ 98

0

Код:

while ((row = mysql_fetch_row(pRes))) {
        TMPTable temp = {};
        if (row[0]) temp.con = strtoul(row[0], NULL, 10);
        std::vector<MATable>.push_back(temp);
}

Ошибка в строке с TMPTable temp = {}; :

in C++98 'temp' must be initialized by constructor, not by '{...}'

Другая проблема:

std::ostringstream query;

Предоставление ошибки:

aggregate 'std::ostringstream query' has incomplete type and cannot be defined

Я пробовал решения в google, но havent нашел любой рабочий... Всегда заканчивая ошибкой. Не могли бы вы, ребята, указать мне в правильном направлении?

  • 0
    Второй выглядит так, как будто вы не включили заголовок (который также подвержен ошибкам в C ++ 11).
  • 0
    Этот первый пример имеет синтаксическую ошибку.
Теги:
c++11
c++98

1 ответ

6
Лучший ответ

Вам нужно включить <sstream> чтобы получить определение std::ostringstream. Чтобы обратиться к инициализации, вы можете просто использовать

TMPtable tmp = TMPtable();
  • 0
    Yaay! У меня болела голова, обе ошибки исчезли, спасибо, Дитмар! <может принять ответ в течение 6 минут)
  • 2
    Если TMPtable имеет конструктор по умолчанию, вы можете просто написать TMPtable tmp; и он будет правильно инициализирован.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню