Andrei

Andrei wrote:
> Hallo Jean and other curlpp contributors,
> 
> I see the life around curlpp got more active the latest months. As a 
> result there are a number of issue requests around in the maillist. IMHO 
> there is a time to have an issue tracker for the project.
> 
> I do not see it is much work (for Jean?) to make formal issues out of 
> relevant discussions, however the whole project will significantly 
> benefit from this.
> 
> What do you think?

Thanks for your comments.
I agree it would be nice to have issue/bug tracker.

Jean is going to set up curlpp-devel as we miss it a much. Until then Jean 
asked to send devel posts directly to his email. It  was ok when there were 
lately only two of us making changes but as there are now three of us we should 
use this list until curlpp-devel is set up. Otherwise our communication would 
be very troublesome.

If you have 4 spare hours this weekend (great :)) I would like to invite you to 
share your opinion on problems mentioned in my posts during the last week. If 
you and Jean agree my ideas are good I'll try to spend some time implementig 
them.
Right now the biggest issue in my opinion is we can't use curlpp as a library 
:) What I mean saying this is we can only use it  in a source code version like 
many other template based libraries. If someone builds a .lib out of curlpp 
this .lib only have templates instantiated in any of .cpp files of library. 
Many are not instantiated and thus not included in the .lib file. If all code 
of curlpp needed by clients would be placed in a .lib file (as it should) then 
users' projects wouldn't need to include .inl files. Try to empty all .inl 
files of your curlpp and see if you can compile/link any of examples.

Below are my posts regarding this matter I sent lately to Jean. Please take a 
look at them.

Regards
Piotr Dobrogost

===========================================================================================================================
Jean

Have you ever tried to use curlpp as a dynamic library?
I think it's not possible with the current source but there are no reasons not 
to allow this.
The problem with using curlpp as a dynamic library are templates. But curlpp 
uses templates only as implementation tool and doesn't operate on user defined 
types. Am I right? If this is true then we could add explicit instantiations of 
each template with all types it supports and this will allow to compile and use 
curlpp as a dynamic library. We should then include inl files only if 
CURLPP_STATICLIB is defined as having definitions of dll import functions 
doesn't make sense and is not allowed.

Waiting to hear your opinion.
===========================================================================================================================
Piotr

I don't see why it wouldn't be possible to have curlpp as a dynamic library, 
since folks at my
office are using it that way. I admit that they are using it under linux but I 
don't see what would
be the difference in windows. Sorry, but I really don't see what it is the 
problem that forbid you
to use it as a dynamic library.
===========================================================================================================================
Jean

Jean-Philippe Barette-LaPierre wrote:
> I don't see why it wouldn't be possible to have curlpp as a dynamic library, 
> since folks at my office are using it that way. I admit that they are using 
> it under linux but I don't see what would be the difference in windows. 

How come? :) If they use it as a library (in fact doesn't matter wheather it's 
static or dynamic; the problem is the same) then make all inl files in their 
curlpp empty and let them compile and link their app. I think their app won't 
even compile anymore not to mention linking.
What they are really using as a library is only a small subset of curlpp 
without templates. Everything else is compiled right into _apps_ object files 
and not taken from the object file of the lib.

> Sorry, but I really don't see what it is the problem that forbid you to use 
> it as a dynamic library.

Curlpp uses templates. How could templates without explicit instantiation be 
placed in a library? In any library there always are only compiled entities not 
source code. That's why all libraries having templates are shipped in soure 
code only.
Take a look at this
http://social.technet.microsoft.com/Forums/en-US/vcgeneral/thread/0c457caa-1896-41d6-ab1c-53baf9d5bbf6

Pay attenion to
 //
 extern "C"
 {
  __DLL_SPEC_ double mod(double x, double y) throw();
 }
#endif

declaration in umath.h header (library's header) and
template  __DLL_SPEC_
double UMath::mod<double>(double x, double y) throw();

explicit instantiation of mod for T=double in umath.cpp source file (library's 
source).

Without the first declaration in library's header and without the second 
definition in library's source file there's no way to use mod template member 
function for any type in application code using this library. Without explicit 
instantiation there's no code for mod in library at all.

Take a look at this
http://www.codeproject.com/KB/cpp/MemberTemplateDLL.aspx
Don't bother it's MS.

Take a look at this
http://www.digitalmars.com/d/archives/digitalmars/D/learn/Function_Templates_in_DLL_11958.html
Don't bother it's D not C++ :) Problem is exactly the same in both languages.

Take a look at this
http://groups.google.com/group/microsoft.public.dotnet.languages.vc/browse_thread/thread/b7296845350c41de/5fa53f71da7f5e1f%25235fa53f71da7f5e1f?tvc=2
Don't bother it's MS. Don't bother with /CLR stuff.

Regards
Piotr
===========================================================================================================================

_______________________________________________
cURLpp mailing list
[email protected]
http://www.rrette.com/mailman/listinfo/curlpp

Reply via email to