* C++ & Caml: name clash
[not found] <38FC05D8.61652265@in.ot.com.au>
@ 2000-04-18 8:08 ` Ohad Rodeh
2000-04-19 15:50 ` John Max Skaller
2000-04-19 17:40 ` Xavier Leroy
0 siblings, 2 replies; 3+ messages in thread
From: Ohad Rodeh @ 2000-04-18 8:08 UTC (permalink / raw)
To: caml-list
Hello,
First of all, I'd like to thank all the replies for my
first question.
My second problem has to do with a name clash between
the g++ standard library, and the alloc.h file from Caml.
It turns out that the function "alloc" is defined by g++
in file /usr/include/g++-2/stl_alloc.h as:
typedef class __default_alloc_template<true,0> alloc
In caml it is defined in include/alloc.h as:
value alloc(mlsize_t, tag_t)
This does not allow compiling a file that #includes both
Caml and g++ header files.
A simple solution is to recompile the Caml distribution
with a compiler flag that will modify alloc to, say, caml_alloc.
However, I will need to distribute, along with my code, a
different version of Caml. Since this code is included in a much
larger software distribution (Ensemble), this is not an option.
What do you suggest?
Thanks,
Ohad.
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: C++ & Caml: name clash
2000-04-18 8:08 ` C++ & Caml: name clash Ohad Rodeh
@ 2000-04-19 15:50 ` John Max Skaller
2000-04-19 17:40 ` Xavier Leroy
1 sibling, 0 replies; 3+ messages in thread
From: John Max Skaller @ 2000-04-19 15:50 UTC (permalink / raw)
To: Ohad Rodeh; +Cc: caml-list
Ohad Rodeh wrote:
>
> Hello,
> First of all, I'd like to thank all the replies for my
> first question.
>
> My second problem has to do with a name clash between
> the g++ standard library, and the alloc.h file from Caml.
> It turns out that the function "alloc" is defined by g++
> in file /usr/include/g++-2/stl_alloc.h as:
> typedef class __default_alloc_template<true,0> alloc
> In caml it is defined in include/alloc.h as:
> value alloc(mlsize_t, tag_t)
>
> This does not allow compiling a file that #includes both
> Caml and g++ header files.
All parts of the C++ library reside in namespace 'std'.
If there is a clash, it is a g++ bug.
--
John (Max) Skaller, mailto:skaller@maxtal.com.au
10/1 Toxteth Rd Glebe NSW 2037 Australia voice: 61-2-9660-0850
checkout Vyper http://Vyper.sourceforge.net
download Interscript http://Interscript.sourceforge.net
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: C++ & Caml: name clash
2000-04-18 8:08 ` C++ & Caml: name clash Ohad Rodeh
2000-04-19 15:50 ` John Max Skaller
@ 2000-04-19 17:40 ` Xavier Leroy
1 sibling, 0 replies; 3+ messages in thread
From: Xavier Leroy @ 2000-04-19 17:40 UTC (permalink / raw)
To: Ohad Rodeh, caml-list
> My second problem has to do with a name clash between
> the g++ standard library, and the alloc.h file from Caml.
> It turns out that the function "alloc" is defined by g++
> in file /usr/include/g++-2/stl_alloc.h as:
> typedef class __default_alloc_template<true,0> alloc
> In caml it is defined in include/alloc.h as:
> value alloc(mlsize_t, tag_t)
>
> This does not allow compiling a file that #includes both
> Caml and g++ header files.
The easiest solution, it seems, would be to split your source in two
files, one in plain C (or perhaps C++ but not using the STL)
containing just the Caml wrappers for your functions, and another one
defining your functions in C++ with STL without reference to the Caml
include files.
Hope this helps,
- Xavier Leroy
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2000-04-19 18:58 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
[not found] <38FC05D8.61652265@in.ot.com.au>
2000-04-18 8:08 ` C++ & Caml: name clash Ohad Rodeh
2000-04-19 15:50 ` John Max Skaller
2000-04-19 17:40 ` Xavier Leroy
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox