От:
Владик
Дата: 26.09.04 08:41
Оценка:
Привет!
Можно ли получить максимальное значение выравнивания для конкретной платформы?
Как все запущенно...
Re: Значение выравнивания
Здравствуйте, Владик, Вы писали:
В>Привет!
В>Можно ли получить максимальное значение выравнивания для конкретной платформы?
2**(CHAR_BIT * sizeof int )
---
С уважением,
Сергей Мухин
Re[2]: Значение выравнивания
От:
Владик
Дата: 26.09.04 09:16
Оценка:
Здравствуйте, Сергей Мухин, Вы писали:
СМ>СМ>2**(CHAR_BIT * sizeof int )
СМ>
СМ>
Ы? Я немного неправильно сформулировал. Как получить минимальное выравнивание для размещения всех возможных типов на конкретной платформе?
Как все запущенно...
Re[3]: Значение выравнивания
Здравствуйте, Владик, Вы писали:
В>Как получить минимальное выравнивание для размещения всех возможных типов на конкретной платформе?
#include "boost/type_traits/alignment_of.hpp"
#include "boost/type_traits/type_with_alignment.hpp"
boost::alignment_of<boost::detail::max_align>::value;
?
Re[4]: Значение выравнивания
Здравствуйте, korzhik, Вы писали:
K>Здравствуйте, Владик, Вы писали:
В>>Как получить минимальное выравнивание для размещения всех возможных типов на конкретной платформе?
K>K>#include "boost/type_traits/alignment_of.hpp"
K>#include "boost/type_traits/type_with_alignment.hpp"
K> boost::alignment_of<boost::detail::max_align>::value;
K>
K>?
boost кошек не ловит.
Этот код на IC++8.0 под Windows выдает почему-то странное число 8, хотя SSE требует выравнивания данных на 16 байт.
#include "boost/type_traits/alignment_of.hpp"
#include "boost/type_traits/type_with_alignment.hpp"
#include <iostream>
__declspec (align(16)) struct My_Cool_SSE_Vector
{
float m[4];
};
int main()
{
std::cout <<
boost::alignment_of<boost::detail::max_align>::value;
}
Правильно работающая программа — просто частный случай Undefined Behavior
Re: Значение выравнивания
Владик wrote:
> Можно ли получить максимальное значение выравнивания для конкретной платформы?
#include "boost/type_traits/type_with_alignment.hpp"
size_t const max_align = boost::alignment_of<boost::detail::max_align>::value;
--
Maxim Yegorushkin Posted via RSDN NNTP Server 1.9 gamma
Re[5]: Значение выравнивания
От:
folk
Дата: 26.09.04 11:02
Оценка:
+1
Здравствуйте, _Winnie, Вы писали:
В>>>Как получить минимальное выравнивание для размещения всех возможных типов на конкретной платформе?
K>>K>>#include "boost/type_traits/alignment_of.hpp"
K>>#include "boost/type_traits/type_with_alignment.hpp"
K>> boost::alignment_of<boost::detail::max_align>::value;
K>>
K>>?
_W>boost кошек не ловит.
_W>Этот код на IC++8.0 под Windows выдает почему-то странное число 8, хотя SSE требует выравнивания данных на 16 байт.
Не стреляйте в пианиста, он играет как умеет.
Можно сказать что 8 будет правильным значением для всех переносимых типов, а со всякими платформенно зависимыми штуками можно справиться только списком #ifdef для всех платформ. В бусте наверняка просто определяется alignment requirements объединения, содержащего объекты разных типов.
На самом деле, люди не читают газеты, они принимают их каждое утро, так же как ванну. ©Маршалл Мак-Льюэн
Пока на собственное сообщение не было ответов, его можно удалить.
Удалить