Commit Graph

232 Commits

Author SHA1 Message Date
Sylvain Pion 8573fe26ce Rename CGALi to internal. 2009-08-24 17:10:04 +00:00
Sylvain Pion ce09927822 Improve Default documentation. 2009-08-19 13:11:13 +00:00
Sylvain Pion 927b432b39 typo : mecanism -> mechanism. 2009-08-10 15:57:03 +00:00
Sylvain Pion 1948ac7df0 Add more information about make_array().
It's potentially removable, actually, apart from VC++ being too buggy as usual.
2009-08-04 15:03:23 +00:00
Laurent Rineau ac0017572a Fix a problem reported by a user and discussed on CGAL-develop:
Laurent Rineau (GeometryFactory) wrote:
> On Wednesday 29 July 2009 14:05:41 Sylvain Pion wrote:
>> Laurent Rineau (GeometryFactory) wrote:
>>> One GF customer reported the following issue:
>>>
>>> "For 64bit compilation, we get the disturbing warning
>>>
>>> ..\Third_Party_Libraries\CGAL\include\CGAL/Handle.h(90) : warning C4311:
>>> 'reinterpret_cast' : pointer truncation from 'CGAL::Rep *const ' to
>>> 'unsigned long'
>>>
>>> which looks like a real 64bit issue."
>>>
>>> and he is right. Here is the code:
>>>
>>> inline
>>> bool
>>> identical(const Handle &h1, const Handle &h2)
>>> { return reinterpret_cast<unsigned long>(h1.PTR) ==
>>>          reinterpret_cast<unsigned long>(h2.PTR); }
>>>
>>>
>>> "unsigned long" is not the right type! On 32 bits machine, that type is
>>> too long, and on x64 under Windows, that type is too short!
>> Indeed...
>>
>>> See http://en.wikipedia.org/wiki/LLP64#Specific_data_models
>>>
>>> We need uintptr_t from C99, because that type is defined as the fastest
>>> unsigned integral type that is convertible from void pointers and
>>> comvertible to void pointers, without truncation.
>>>
>>> However, that type is not yet in the C++ norm, and some platforms may not
>>> have it. We will probably need some macro stuff:
>>>   - use C++0x if possible,
>>>   - fallback to plain C99 headers,
>>>   - then fallback to platform specific typedefs.
>>>
>>> Is that the correct solution?
>> For the identical() function above, why don't we simply compare
>> the pointers without doing the casts to unsigned long at all ?
>>
>> Nevertheless, the problem exists in the id() function (and this
>> function is probably less useful...).
>> What about returning std::ptrdiff_t with {return h.PTR -
>> static_cast<Ref*>(0);} ?
> 
> Yes. That might be a good cross-platform solution for id(). I will commit that 
> in the trunk. And identical() will be a.id()==b.id().

Why not just h1.PTR == h2.PTR for identical() ?


So, let's go and break the trunk! ;-)
I have a least compiled and run test/Kernel_23/Lazy_kernel.cpp
2009-07-29 13:27:47 +00:00
Sylvain Pion 6335879bb6 Properties. 2009-07-20 08:52:20 +00:00
Sylvain Pion 33d29c586d Update properties. 2009-07-20 08:51:01 +00:00
Andreas Fabri 1fcaf88533 Suppress warning 2009-07-07 15:56:20 +00:00
Andreas Fabri ffe2933f8c fix warning number 2009-07-06 09:30:22 +00:00
Andreas Fabri 8292c85884 Suppress warning 547 for VC++ 2009-07-05 18:56:20 +00:00
Sébastien Loriot 4104106c84 Work around for intel compiler 11 EDG and Dispatch_or_drop_output_iterator non-variadic case 2009-07-02 13:53:52 +00:00
Laurent Rineau bc6974d68d A probably temporarily fix for Intel Compiler (EDG frontend). 2009-07-01 15:42:50 +00:00
Sébastien Loriot ac1b06a265 add 1 parameter version of Dispatch_*_iterator in non-variadic case 2009-05-05 21:05:58 +00:00
Sylvain Pion 916ba2c342 Consistent naming :
Iterators_tuple   -> Iterator_tuple
Value_types_tuple -> Value_type_tuple
2009-05-05 07:38:27 +00:00
Sylvain Pion 64ed32dc80 Add missing CGALi:: . 2009-05-03 18:30:27 +00:00
Sylvain Pion b75a57f5b8 g++ 4.3 has variadics but not deleted functions. 2009-04-30 21:18:13 +00:00
Sébastien Loriot 8ea30fa091 Expand the non-variadic version of Dispatch_*_output_iterator and Is_in_tuple for up to 7 parameters 2009-04-30 17:28:55 +00:00
Sylvain Pion f0ed774e37 Move CGAL::array to namespace CGAL::cpp0x, like tuple. 2009-04-30 14:03:52 +00:00
Sylvain Pion 6792be2fa7 Move tuple & co under the sub-namespace CGAL::cpp0x, to avoid name clashes
(e.g. for make_tuple() already used for Triple/Quadruple).
2009-04-30 13:32:03 +00:00
Sylvain Pion 697721a5b6 Minor renaming to avoid possible confusion. 2009-04-30 09:30:39 +00:00
Sylvain Pion 12374d6cef Dispatch_*_output_iterator : document the derivation from the tuple. 2009-04-30 09:26:12 +00:00
Sylvain Pion eebefbbee6 Add test program for Dispatch_output_iterator. 2009-04-29 22:07:03 +00:00
Sylvain Pion 4ba60d051f Document CGAL::tuple. 2009-04-29 21:57:38 +00:00
Sylvain Pion ba6d615d05 Document Dispatch_output_iterator and Dispatch_or_drop_output_iterator. 2009-04-29 21:42:13 +00:00
Sylvain Pion a4c173d9dd Add Is_in_tuple<>, Dispatch_or_drop_output_iterator<> and Dispatch_output_iterator<>. 2009-04-29 20:48:45 +00:00
Sylvain Pion 2eb44d3596 tuple compatibility layer. 2009-04-29 19:45:41 +00:00
Sylvain Pion a29850cb8d Add comment 2009-04-21 18:00:27 +00:00
Sylvain Pion 9aff782550 doc+example for CGAL::Default. 2009-04-12 10:58:10 +00:00
Sylvain Pion f55c8e9a2f Renaming before documenting: Default_argument -> Default. 2009-04-10 21:55:24 +00:00
Sylvain Pion 560452cf04 I'm told this fixes the test-suite.
-- 
Sylvain, aka mail2svncommitconverter
2009-03-05 20:41:46 +00:00
Sylvain Pion da0da4cbc6 Add functions iterator_to and s_iterator_to that construct an iterator from
a reference to an object supposedly stored in a Compact_container.
This is inspired from Boost.Intrusive:
http://www.boost.org/doc/libs/1_38_0/doc/html/intrusive/obtaining_iterators_from_values.html
2009-03-03 02:47:23 +00:00
Sylvain Pion 7cb67c5d20 Document that the Compact_container::iterator's default constructed value
is not singular, but is usable like NULL.
2009-03-03 00:05:25 +00:00
Sylvain Pion 4252f94722 Remove various \ccTexHtml{\thispagestyle{empty}}{} . 2009-01-03 14:01:34 +00:00
Andreas Fabri 60bdf1c3eb Add illustration 2008-12-11 08:04:55 +00:00
Andreas Fabri f64b5e9e2c Undo of Rev 46756 and 46737 2008-11-25 17:17:06 +00:00
Sylvain Pion 6f5963131b Fix comment. 2008-11-21 16:47:39 +00:00
Sylvain Pion 8eab7e07dd Split <CGAL/assertions.h> in 2 files, by moving the assertion behaviour
changing functions to a separate header, not included by default
(<CGAL/assertions_behaviour.h>).  The motivation is to hide the enum
values with risky names (ABORT, EXIT, CONTINUE) to a header file which
is most probably not used by any user (or very few).
(breaks backward compatibility for an expected very few, for the sake
of erasing random surprises for "many" ?)
2008-11-21 16:42:02 +00:00
Laurent Rineau ec9f2e29e5 Update citations (s/07/08/).
Let us hope that CGAL-3.4 will be release before 2009!
2008-11-20 22:19:28 +00:00
Andreas Fabri 308b6ae9c0 Remove _noheader file suffix from examples 2008-11-17 14:59:59 +00:00
Andreas Fabri fe441c60d1 Remove _noheader file suffix from examples 2008-11-17 14:57:59 +00:00
Andreas Fabri 0f9ed11e99 Turn operator== into a member function 2008-11-08 11:35:40 +00:00
Andreas Fabri 06f25ea9e6 turn operator==(Filter_iterator, Filter_iterator) into a member function 2008-11-07 09:47:54 +00:00
Andreas Fabri 85bf7d2def Add PkgDescription 2008-11-06 13:17:37 +00:00
Andreas Fabri e354f7ce4d Include boost header file, as we use a boost macro 2008-10-13 14:18:24 +00:00
Andreas Fabri f4e89cf427 suppress VC++ warning 2008-10-13 13:11:05 +00:00
Sylvain Pion 4aa1cb057a Remove my email adress from header files. 2008-10-11 20:21:08 +00:00
Andreas Fabri 2b2edb51e4 Capitalized and changed CGAL to \cgal\ 2008-10-02 08:12:16 +00:00
Sylvain Pion 6aba449434 Replace Nef's custom Object_handle by CGAL::Object.
There were some differences :
- CGAL::Object has no template constructor, so using make_object() was required.
- CGAL::Object had no comparison with NULL to check emptyness.  I added
  such comparison operators to CGAL::Object as *deprecated*.
2008-09-09 16:03:25 +00:00
Sylvain Pion a565db4da9 Apply std::remove_reference *before* std::remove_cv... 2008-08-28 12:38:14 +00:00
Sylvain Pion d79048ab40 Add comment. 2008-08-27 17:31:06 +00:00