Re[3]: Размер char в битах
От: _nn_ www.nemerleweb.com
Дата: 28.06.04 14:02
Оценка:
Здравствуйте, Sir Wiz, Вы писали:

SW>Здравствуйте, _nn_, Вы писали:


SW>>>Внимание, вопрос! Как узнать сколько бит в char?


__>>Можно так :

__>>
__>>char x=-1;
__>>int n=0;
__>>while(x>>1)
__>> n++;

__>>n - количество бит в char.
__>>

SW>Нет, так нельзя. Это не работает.

SW>Во-первых вы, наверное, имели в виду while(x >>= 1).

Да, конечно.
SW>Во-вторых, правый сдвиг отрицательных чисел implementation-defined, стандарт, 5.8/3.
Левый сдвиг значит надо сделать
SW>Например, VC6 на правый сдвиг -1 на 1 бит возвращает -1, получаем бесконечный цикл.
SW>В-третьих, неплохо бы в данном случае уточнять signed char x=-1. знаковость или беззнаковость char implementation-defined, стандарт, 3.9.1/1
Это пропущенно для краткости.

SW>Я писал пример рабочего кода.
http://rsdn.nemerleweb.com
http://nemerleweb.com
Re[4]: Размер char в битах
От: _nn_ www.nemerleweb.com
Дата: 28.06.04 14:21
Оценка:
Здравствуйте, _nn_, Вы писали:

__>Здравствуйте, Sir Wiz, Вы писали:


SW>>Здравствуйте, _nn_, Вы писали:


SW>>>>Внимание, вопрос! Как узнать сколько бит в char?


Поторопился...
__>>>Можно так :
__>>>
__>>>char x=+1;
__>>>int n=0;
__>>>while(x>>1)
__>>> n++;

__>>>n - количество бит в char.
__>>>

SW>>Нет, так нельзя. Это не работает.

SW>>Во-первых вы, наверное, имели в виду while(x >>= 1).

__>Да, конечно.
SW>>Во-вторых, правый сдвиг отрицательных чисел implementation-defined, стандарт, 5.8/3.
__>Левый сдвиг значит надо сделать
SW>>Например, VC6 на правый сдвиг -1 на 1 бит возвращает -1, получаем бесконечный цикл.
SW>>В-третьих, неплохо бы в данном случае уточнять signed char x=-1. знаковость или беззнаковость char implementation-defined, стандарт, 3.9.1/1
__>Это пропущенно для краткости.

SW>>Я писал пример рабочего кода.

Заметил позже...
http://rsdn.nemerleweb.com
http://nemerleweb.com
Re[5]: Размер char в битах
От: Павел Кузнецов  
Дата: 29.06.04 00:57
Оценка:
Вадим Никулин:

> 'specialization' : a partial specialization cannot have a dependent non-type template parameter

>
>
> int i;
> int ai[5];
>
> template<class T, T t>
> struct A
> {
> };
>
> template<class T>
> struct A<T,5>
> {
> };   // C2754
>

>
> Не понимаю трудностей

Чтобы это компилировать, комплятору придется как-то кодировать литералы. В самом деле: какого типа второй параметр?
Posted via RSDN NNTP Server 1.9 beta
Легче одурачить людей, чем убедить их в том, что они одурачены. — Марк Твен
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.