Является ли std неквалифицированным идентификатором?C++

Программы на C++. Форум разработчиков
Ответить Пред. темаСлед. тема
Anonymous
 Является ли std неквалифицированным идентификатором?

Сообщение Anonymous »

Я просматривал главу 7 Шаблоны книги Бьярна Экскурсия по C++, 3-е издание [Глава 7 посвящена шаблонам, но там есть только объявление. Пришлось перейти к Главе 5, с. 59, чтобы получить реализацию], и я попытался написать код для вектора с помощью std::initializer_list. Я получил эту ошибку

Код: Выделить всё

error: expected unqualified-id before ‘static_cast’
47 |     elem{new T[lst.size()]}, sz{std::static_cast(lst.size())}
^~~~~~~~~~~
при компиляции этого дополнения

Код: Выделить всё

template 
Vector::Vector(std::initializer_list lst):
elem{new T[lst.size()]}, sz{std::static_cast(lst.size())}
{

std::copy(lst.begin(), lst.end(), elem); // copy from lst into elem (§13.5)

}
У меня сложилось впечатление, что std:: будет «квалифицировать» все, что идет после него. Ошибка подразумевает, что сам std не является квалифицированным, но разве он не находится в глобальной области и его нельзя отличить от других переменных, включенных в глобальную область?
Примечание: код из главы 5 нет std::. Однако автор написал другие функции, возможно, используя директивы или объявления для методов std, чтобы избежать беспорядка. Я только что добавлял везде std и сегодня обнаружил, что static_cast в нем не нуждается.

Подробнее здесь: https://stackoverflow.com/questions/790 ... alified-id
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «C++»