Трабла с шаблоном....
От: Proteus Россия  
Дата: 21.01.08 11:43
Оценка:
template<class T>class test{
public:
    struct st{T v;};
    st *my(st*);
};


template<class T>test<T>::st test<T>::my(st*)
{
    return 0;
}


Вот такая вот штука. На старом вижул си работает. В gcc или новом компиляторе не собирается.

Как решить такую проблему?
Re: Трабла с шаблоном....
От: rg45 СССР  
Дата: 21.01.08 11:47
Оценка:
Здравствуйте, Proteus, Вы писали:

P>
P>template<class T>class test{
P>public:
P>    struct st{T v;};
P>    st *my(st*);
P>};


P>template<class T>test<T>::st test<T>::my(st*)
P>{
P>    return 0;
P>}
P>


P>Вот такая вот штука. На старом вижул си работает. В gcc или новом компиляторе не собирается.


P>Как решить такую проблему?

template<class T>
typename test<T>::st test<T>::my(st*)
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
--
Не можешь достичь желаемого — пожелай достигнутого.
Re[2]: Трабла с шаблоном....
От: Proteus Россия  
Дата: 21.01.08 11:50
Оценка:
сенкс
Re[2]: Трабла с шаблоном....
От: Proteus Россия  
Дата: 21.01.08 12:07
Оценка:
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]
Re[3]: Трабла с шаблоном....
От: rg45 СССР  
Дата: 21.01.08 12:14
Оценка:
Здравствуйте, Proteus, Вы писали:

P>
P>template<typename T>class test{
P>public:
P>    struct st{T v;};
P>    union {
P>        st  array[2];
P>        char data[500];
P>    };
P>};
P>



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>>
--
Не можешь достичь желаемого — пожелай достигнутого.
Re[4]: Трабла с шаблоном....
От: Proteus Россия  
Дата: 21.01.08 12:20
Оценка:
R>Это — баг MSVC. Провоцирует этот баг безымянный union. Просто дай этому юниону имя и все пройдет

В моём нагромождении проще массив через задницу юзать))
Re[5]: Трабла с шаблоном....
От: rg45 СССР  
Дата: 21.01.08 12:23
Оценка:
Здравствуйте, Proteus, Вы писали:

R>>Это — баг MSVC. Провоцирует этот баг безымянный union. Просто дай этому юниону имя и все пройдет


P>В моём нагромождении проще массив через задницу юзать))


А какая задача вообще? Может можно найти более цивилизованное решение?
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
--
Не можешь достичь желаемого — пожелай достигнутого.
Re[6]: Трабла с шаблоном....
От: Proteus Россия  
Дата: 21.01.08 12:27
Оценка:
R>А какая задача вообще? Может можно найти более цивилизованное решение?

Нашёл.. У меня в этой структуре ничего кроме объединения небыло. А имя структуры было. Короче поправил.
Просто тупо манагер памяти для фиксированных элементов сочиняю. Могу показать, если надо (хотя не знаю куда его сунуть)...
Re[7]: Трабла с шаблоном....
От: rg45 СССР  
Дата: 21.01.08 12:34
Оценка:
Здравствуйте, Proteus, Вы писали:

R>>А какая задача вообще? Может можно найти более цивилизованное решение?


P>Нашёл.. У меня в этой структуре ничего кроме объединения небыло. А имя структуры было. Короче поправил.

P>Просто тупо манагер памяти для фиксированных элементов сочиняю. Могу показать, если надо (хотя не знаю куда его сунуть)...

Ты эту
Автор(ы): Андрей Александреску

В книге изложена новая технология программирования, представляющая собой сплав обобщенного программирования, метапрограммирования шаблонов и объектно- ориентированного программирования на С++. Настраиваемые компоненты, созданные автором, высоко подняли уровень абстракции, наделив язык С++ чертами языка спецификации проектирования, сохранив всю его мощь и выразительность. В книге изложены способы реализации основных шаблонов проектирования. Разработанные компоненты воплощены в библиотеке Loki, которую можно загрузить с Web-страницы автора. Книга предназначена для опытных программистов на С++.
книженцию не читал? Если нет, то рекомендую, там как раз похожая задача рассматривается.
А так же книжки, на которые есть ссылки в комментариях Валерия Лаптева к этой книге.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
--
Не можешь достичь желаемого — пожелай достигнутого.
Re[8]: Трабла с шаблоном....
От: Proteus Россия  
Дата: 21.01.08 12:43
Оценка:
R>Ты эту
Автор(ы): Андрей Александреску

В книге изложена новая технология программирования, представляющая собой сплав обобщенного программирования, метапрограммирования шаблонов и объектно- ориентированного программирования на С++. Настраиваемые компоненты, созданные автором, высоко подняли уровень абстракции, наделив язык С++ чертами языка спецификации проектирования, сохранив всю его мощь и выразительность. В книге изложены способы реализации основных шаблонов проектирования. Разработанные компоненты воплощены в библиотеке Loki, которую можно загрузить с Web-страницы автора. Книга предназначена для опытных программистов на С++.
книженцию не читал? Если нет, то рекомендую, там как раз похожая задача рассматривается.

R>А так же книжки, на которые есть ссылки в комментариях Валерия Лаптева к этой книге.

Читал)) Даже 30 перечитывал. Но там на эту тему как я понял мало полезного. Во первых похожая вещь у меня куда попроще написана. Банки памяти, как я заметил, лучше затачивать под размер страниц, не под колисчетсво элементов. А тому меня фишка, как я понял выгодно отличается тем что выделяет элементы из наиболее заполненных банков и удаляет те банки которые освободились, без каких-либо затрат по времени. Да и вообще я не сижу над какой-то одной проблемой. Я просто экспререментиру. Проверяю где-то уже 10-тую по счёту фантазию....

Но а вот эти шаблоны и struct union по 10 раз вложенные друг в друга... их как понимаешь очень получается много....
Re[9]: Трабла с шаблоном....
От: Proteus Россия  
Дата: 21.01.08 12:50
Оценка:
R>>А так же книжки, на которые есть ссылки в комментариях Валерия Лаптева к этой книге.

Вообще вот про шаблоны хочу сейчас почитать. А в целом, то что там в ссылках, не знаю читать или нет. Книг и там слишком много покупаю.
Решение сложных задач, например просто не знаю. Стоит ли тратить время и деньги чтобы её достать. PDF немного полистал, почитал, помойму не очень интересно.
Re[4]: Трабла с шаблоном....
От: Proteus Россия  
Дата: 21.01.08 13:16
Оценка:
R>Это — баг MSVC. Провоцирует этот баг безымянный union. Просто дай этому юниону имя и все пройдет

))) В одном из вариантов убрал все безымянные объединения и структуры. Но даже после этого он массив есть не захотел)))
Re[5]: Трабла с шаблоном....
От: rg45 СССР  
Дата: 21.01.08 13:20
Оценка:
Здравствуйте, Proteus, Вы писали:

R>>Это — баг MSVC. Провоцирует этот баг безымянный union. Просто дай этому юниону имя и все пройдет


P>))) В одном из вариантов убрал все безымянные объединения и структуры. Но даже после этого он массив есть не захотел)))


Да вижуал в этом примере лажает конкретно. Я вынес тему в отдельный топик: Бага MSVC 2005.
Автор: rg45
Дата: 21.01.08
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
--
Не можешь достичь желаемого — пожелай достигнутого.
Re[10]: Трабла с шаблоном....
От: Sergey Chadov Россия  
Дата: 21.01.08 16:56
Оценка:
Здравствуйте, Proteus, Вы писали:

R>>>А так же книжки, на которые есть ссылки в комментариях Валерия Лаптева к этой книге.


P>Вообще вот про шаблоны хочу сейчас почитать. А в целом, то что там в ссылках, не знаю читать или нет.

Про шаблоны вроде ничего лучше http://www.amazon.com/Templates-Complete-Guide-David-Vandevoorde/dp/0201734842
не придумали
--
Sergey Chadov

... << RSDN@Home 1.2.0 alpha rev. 685>>
Re[11]: Трабла с шаблоном....
От: Proteus Россия  
Дата: 21.01.08 19:26
Оценка:
SC>Про шаблоны вроде ничего лучше http://www.amazon.com/Templates-Complete-Guide-David-Vandevoorde/dp/0201734842
SC>не придумали

Вот как раз её заказал. Надеюсь на почте не потеряют и родаки ивзещение не выкинут....
Тогда почитаю с радостью)))
Re: Трабла с шаблоном....
От: Proteus Россия  
Дата: 22.01.08 08:20
Оценка:
http://files.rsdn.ru/45400/memory2m1.cpp

Вот кстати промежуточная версия.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.