does_not_support_comparisons is a private member of libecap::Area

Bug #1453630 reported by Alex Rousskov
14
This bug affects 2 people
Affects Status Importance Assigned to Milestone
eCAP
Fix Released
High
Unassigned

Bug Description

The clang compiler cannot compile libecap v1.0.0 due to the following error:

/usr/include/libecap/common/area.h:60:77: error: 'does_not_support_comparisons' is a private member of 'libecap::Area'
template <typename T> bool operator ==(const Area &a, const T &) {
return a.does_not_support_comparisons(); }

GCC does not exhibit this problem.

Alex Rousskov (rousskov)
description: updated
Revision history for this message
Alex Rousskov (rousskov) wrote :

Libecap uses a defective (not portable enough) implementation of the C++ Safe Bool idiom. That attached patch from the FreeBSD libecap package fixes the problem. I have not yet tested this patch and the final fix may be different.

description: updated
Alex Rousskov (rousskov)
Changed in ecap:
milestone: none → 1.0.1
status: New → Fix Released
Revision history for this message
Alex Rousskov (rousskov) wrote :

The attached official fix is similar to the one in the FreeBSD package but should work better during Area development because it protects _internal_ Area code from accidentally using the unsupported Area comparison operator.

To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Duplicates of this bug

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.