Fix missing template parameter for overloaded functions that use PointVector. #1232
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
🎉 🍻 Happy New Year to all the DGtal team ! 🍻 🎉
PR Description
The hint comes from a compilation test of DGtal using Intel Compiler 17. It raises errors in display-related classes (
Display[23]DFactory
,Viewer3DFactory
, ...) about overloaded functions/methods not found.A minimal example is:
that fails to compile with error:
The problem comes from the different integer type in template parameters (
int
versusunsigned int
) that leadsicpc
to ignore the defaultTContainer
type when searching for overloaded functions/methods.In DGtal, it corresponds to the
Dimension
typedef that is a signed integer versus the unsignedstd::size_t
that is used to specify the size of astd::array
(the default container forPointVector
).It is probably a bug since
g++
andclang++
doesn't matter about this issue, but anyway, theTContainer
template parameter is actually missing from those overloaded functions/methods in order to acceptPointVector
with non-standard value container, thus leading to this PR submission.Intel Compiler 17 now compiles without error, but still some warnings about deprecated use of
std::binder2nd
(see #1221) and another warning about an invalid usage ofauto
(probably another bug). Version 16 still fails to compile DGtal (default options) but on a clearly validC++11
syntax.Checklist
[ ] Unit-test of your feature with Catch.[ ] Doxygen documentation of the code completed (classes, methods, types, members...)[ ] Documentation module page added or updated.cmake
mode (otherwise, Travis C.I. will fail).