Форум программистов, компьютерный форум CyberForum.ru

std::ios::hex или std::ios.hex - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 10, средняя оценка - 4.70
PointsEqual
ниначмуроФ
 Аватар для PointsEqual
832 / 516 / 33
Регистрация: 12.10.2009
Сообщений: 1,915
24.11.2011, 15:30     std::ios::hex или std::ios.hex #1
привет

в коде встретил вот такую строчку
C++
1
ss.setf(std::ios.hex, std::ios::basefield);
и на VS2008 это работает.

Разве это не синтаксическая ошибка?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.11.2011, 15:30     std::ios::hex или std::ios.hex
Посмотрите здесь:

STL std::set, std::pair, std::make_pair C++
C++ Не воспринимает ни std::cout, ни std::cin. Вобщем ничего из std. Также не понимает iostream
C++ что использовать std::cout или просто using namespace std?
ofstream std::ios::binary C++
Std::count << std::hex << (long) 0x0a; Как сделать, чтоб от HEX значения ноль при выводе не убирался? C++
C++ Std::ios::binary зачем нужно это для записи структур
Если HEX одного файла заменить на HEX другого, то изменится ли файл и будет ли работоспособным? C++
Как узнать, находится ли std::cout в hex-режиме? C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Сыроежка
Заблокирован
24.11.2011, 16:03     std::ios::hex или std::ios.hex #2
Цитата Сообщение от PointsEqual Посмотреть сообщение
привет

в коде встретил вот такую строчку
C++
1
ss.setf(std::ios.hex, std::ios::basefield);
и на VS2008 это работает.

Разве это не синтаксическая ошибка?
Да, это не должно работать, так как std::ios - это имя типа. Очевидно, что это баг компилятора.

Добавлено через 25 минут
PointsEqual,

Вообще-то, вопрос не такой простой, как мой первоначальный ответ.
Согласно стандарту ios определяется как

C++
1
typedef  basic_ios<char> ios;
Если бы ios был бы не именем typedef, а именем класса, то его можно переопределить. Например,

C++
1
2
3
4
5
struct A { static const int i = 10; };
 
A A;
 
int j = A.i;
Это соврешенно корректный код
Поэтому важно знать, как выглядет объявление ios в версии MS VC++ 2008 года.
Yandex
Объявления
24.11.2011, 16:03     std::ios::hex или std::ios.hex
Ответ Создать тему
Опции темы

Текущее время: 05:02. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru