шаблоны с++ и dll

Тема в разделе "WASM.ZEN", создана пользователем alegordon, 21 июн 2006.

  1. alegordon

    alegordon New Member

    Публикаций:
    0
    Регистрация:
    7 янв 2006
    Сообщения:
    20
    кто знает есть ли возможность поставлять шаблонный код с++ через dll.
     
  2. green

    green New Member

    Публикаций:
    0
    Регистрация:
    15 июл 2003
    Сообщения:
    1.217
    Адрес:
    Ukraine
    можно поставлять инстанциированный (instantiated) шаблонный код через dll.
     
  3. IceStudent

    IceStudent Active Member

    Публикаций:
    0
    Регистрация:
    2 окт 2003
    Сообщения:
    4.300
    Адрес:
    Ukraine
    Теоретически - через экспорт шаблонов. Практически - это реализовано не везде.
     
  4. alegordon

    alegordon New Member

    Публикаций:
    0
    Регистрация:
    7 янв 2006
    Сообщения:
    20
    инстанцирование - это не есть хорошо. я поставляю вам std::vector<int> и т. д. а вот std::vector<class_xxx> я вам не поставлю.

    А что касается экспорта, то к.с. export нигде не реализовано. Если посмотреть хелп на это к.с. то везде будет написано - типа: оставлено для будущих версий (реализаций)
     
  5. RedLord

    RedLord Member

    Публикаций:
    0
    Регистрация:
    23 июн 2005
    Сообщения:
    183
    Адрес:
    Ukraine
    IceStudent



    экспорт не будет позволять этого делать.

    для шаблонов экспорт это нечто иное нежеле экспорт из DLL

    по крайней мере на данный момент в стандарте так.

    единственный компилятор поддерживающий экспорт шаблонов - Comeau (EDG ядро)
     
  6. alegordon

    alegordon New Member

    Публикаций:
    0
    Регистрация:
    7 янв 2006
    Сообщения:
    20
    т.е. я так понимаю шаблон в dll запихать никак нельзя. (а в будущей реализации с++???)
     
  7. RedLord

    RedLord Member

    Публикаций:
    0
    Регистрация:
    23 июн 2005
    Сообщения:
    183
    Адрес:
    Ukraine
    alegordon

    это уже вопрос не столько по плюсам, сколько по реализации того или иного компилера под Win.

    в таком виде в каком существуют шаблоны - большие сомнения.



    основная проблема - генерация кода.

    он генерируется в момент инстанцирования шаблона.способ предложенный green - единственный вариант. МелкоМягкие его и рекомендуют.



    кроме того неизвестно где проще разобрать алгоритм. посмотри на boost - там исходники открыты, но без водки хрен разберешься
     
  8. alegordon

    alegordon New Member

    Публикаций:
    0
    Регистрация:
    7 янв 2006
    Сообщения:
    20
    ну boost библиотека у меня последняя вся имеется в наличие. там нет dll-к а просто хидэр файлы. (что такое МелкоМягкие ???)
     
  9. green

    green New Member

    Публикаций:
    0
    Регистрация:
    15 июл 2003
    Сообщения:
    1.217
    Адрес:
    Ukraine
    alegordon



    :)

    Я думаю для начала надо решить более простую проблему: как запихнуть макросы в dll.
     
  10. RedLord

    RedLord Member

    Публикаций:
    0
    Регистрация:
    23 июн 2005
    Сообщения:
    183
    Адрес:
    Ukraine
    alegordon

    Microsoft.



    в boost'e почти ;) нет DLL.
     
  11. IceStudent

    IceStudent Active Member

    Публикаций:
    0
    Регистрация:
    2 окт 2003
    Сообщения:
    4.300
    Адрес:
    Ukraine
    alegordon



    После сборки буста появляются либы для статической и динамической линковки.





    Microsoft.



    В общем, ответом на поставленный вопрос ("есть ли возможность поставлять шаблонный код с++ через dll") будет "да, но только через явное инстанцирование". Других реально работающих сейчас способов нет.



    С другой стороны, можно, например, поставлять определения шаблонов в прекомпилированном виде (правда, не уверен насчёт обратной совместимости их среди версий одного компилятора).
     
  12. alegordon

    alegordon New Member

    Публикаций:
    0
    Регистрация:
    7 янв 2006
    Сообщения:
    20
    мдааа дела. спасибо за просвещение.
     
  13. alegordon

    alegordon New Member

    Публикаций:
    0
    Регистрация:
    7 янв 2006
    Сообщения:
    20
    так так - а что за сборка буста. я проста разархивил в папку и подключил хидеры. ии все.
     
  14. IceStudent

    IceStudent Active Member

    Публикаций:
    0
    Регистрация:
    2 окт 2003
    Сообщения:
    4.300
    Адрес:
    Ukraine
    alegordon

    А ты почитай boost/more/getting_started.html