template<typename T>class test{
public:
struct st{T v;};
union {
st array[2];
char data[500];
};
};
c:\temp\1.cpp(5) : error C2621: member 'test<T>::array' of union 'test<T>::<unnamed-tag>' has copy constructor
Чем можно объяснять это сообщение, если T конструктора и деструктора не имеет?
Если я array объявляю не как массив, то работает. Приходится юзать так (&item->array)[index]
P>c:\temp\1.cpp(5) : error C2621: member 'test<T>::array' of union 'test<T>::<unnamed-tag>' has copy constructor
P>Чем можно объяснять это сообщение, если T конструктора и деструктора не имеет? P>Если я array объявляю не как массив, то работает. Приходится юзать так (&item->array)[index]
Это — баг MSVC. Провоцирует этот баг безымянный union. Просто дай этому юниону имя и все пройдет
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
--
Не можешь достичь желаемого — пожелай достигнутого.
Здравствуйте, Proteus, Вы писали:
R>>Это — баг MSVC. Провоцирует этот баг безымянный union. Просто дай этому юниону имя и все пройдет
P>В моём нагромождении проще массив через задницу юзать))
А какая задача вообще? Может можно найти более цивилизованное решение?
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
--
Не можешь достичь желаемого — пожелай достигнутого.
R>А какая задача вообще? Может можно найти более цивилизованное решение?
Нашёл.. У меня в этой структуре ничего кроме объединения небыло. А имя структуры было. Короче поправил.
Просто тупо манагер памяти для фиксированных элементов сочиняю. Могу показать, если надо (хотя не знаю куда его сунуть)...
Здравствуйте, Proteus, Вы писали:
R>>А какая задача вообще? Может можно найти более цивилизованное решение?
P>Нашёл.. У меня в этой структуре ничего кроме объединения небыло. А имя структуры было. Короче поправил. P>Просто тупо манагер памяти для фиксированных элементов сочиняю. Могу показать, если надо (хотя не знаю куда его сунуть)...
книженцию не читал? Если нет, то рекомендую, там как раз похожая задача рассматривается.
А так же книжки, на которые есть ссылки в комментариях Валерия Лаптева к этой книге.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
--
Не можешь достичь желаемого — пожелай достигнутого.
книженцию не читал? Если нет, то рекомендую, там как раз похожая задача рассматривается. R>А так же книжки, на которые есть ссылки в комментариях Валерия Лаптева к этой книге.
Читал)) Даже 30 перечитывал. Но там на эту тему как я понял мало полезного. Во первых похожая вещь у меня куда попроще написана. Банки памяти, как я заметил, лучше затачивать под размер страниц, не под колисчетсво элементов. А тому меня фишка, как я понял выгодно отличается тем что выделяет элементы из наиболее заполненных банков и удаляет те банки которые освободились, без каких-либо затрат по времени. Да и вообще я не сижу над какой-то одной проблемой. Я просто экспререментиру. Проверяю где-то уже 10-тую по счёту фантазию....
Но а вот эти шаблоны и struct union по 10 раз вложенные друг в друга... их как понимаешь очень получается много....
R>>А так же книжки, на которые есть ссылки в комментариях Валерия Лаптева к этой книге.
Вообще вот про шаблоны хочу сейчас почитать. А в целом, то что там в ссылках, не знаю читать или нет. Книг и там слишком много покупаю.
Решение сложных задач, например просто не знаю. Стоит ли тратить время и деньги чтобы её достать. PDF немного полистал, почитал, помойму не очень интересно.
Здравствуйте, Proteus, Вы писали:
R>>Это — баг MSVC. Провоцирует этот баг безымянный union. Просто дай этому юниону имя и все пройдет
P>))) В одном из вариантов убрал все безымянные объединения и структуры. Но даже после этого он массив есть не захотел)))
Да вижуал в этом примере лажает конкретно. Я вынес тему в отдельный топик: Бага MSVC 2005.
Здравствуйте, Proteus, Вы писали:
R>>>А так же книжки, на которые есть ссылки в комментариях Валерия Лаптева к этой книге.
P>Вообще вот про шаблоны хочу сейчас почитать. А в целом, то что там в ссылках, не знаю читать или нет.
Про шаблоны вроде ничего лучше http://www.amazon.com/Templates-Complete-Guide-David-Vandevoorde/dp/0201734842
не придумали