Compilation problem MSVC with recent 'sort' implementation
John W. Eaton
jwe at bevo.che.wisc.edu
Sun Feb 3 15:00:22 CST 2008
On 3-Feb-2008, Michael Goffioul wrote:
| On 2/3/08, Michael Goffioul <michael.goffioul at gmail.com> wrote:
| > Unfortunately, this is not enough to make it compilable with
| > MSVC. At link stage of liboctave, I get duplicated symbols
| > error (see below). This seems logical to me to have duplicated
| > symbols as Array-C.cc includes Array.cc and that the assign
| > instantiation also instantiates Array<double>. However, as
| > Array-d.cc also perform explicit specialization, I guess the
| > compiler cannot determine which one it has to export in the
| > DLL (I also wonder how gcc resolves this).
| >
| > I don't know how to handle this.
|
| The attached patch solves the problem.
|
| Michael.
|
|
| liboctave/ChangeLog
|
| 2008-02-03 Michael Goffioul <michael.goffioul at gmail.com>
|
| * Array.cc (ascending_compare, descending_compare,
| Array<T>::sort): Declare explicit specialization for T=double
| to avoid symbol duplication error at link time.
| * Array-d.cc: ascending_compare and descending_compare
| are not part of Array<T> class.
I applied this patch and checked it in.
Thanks,
jwe
More information about the Octave-maintainers
mailing list