- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
I am using Intel Compiler 15.0 update 1 to compile the PCL(PointCouldLibrary 1.7.2, https://github.com/PointCloudLibrary/pcl)
Using VS2013 default compiler toolset, no issue with compilation.
When I switch to intel compiler, I got such a compilation error.
pcl-1.7.2\features\include\pcl/features/impl/board.hpp(131): error : declaration is incompatible with "void pcl::BOARDLocalReferenceFrameEstimation<PointInT, PointNT, PointOutT>::planeFitting(const Eigen::Matrix<float, Eigen::Dynamic, 3, <expression>, Eigen::Dynamic, 3> &, Eigen::Vector3f &, Eigen::Vector3f &)" (declared at line 301 of "pcl-1.7.2\features\include\pcl/features/board.h") 1> pcl::BOARDLocalReferenceFrameEstimation<PointInT, PointNT, PointOutT>::planeFitting ( 1>
Please notice the bolden text.
The declaration of this planeFitting function in board.h
template<typename PointInT, typename PointNT, typename PointOutT = ReferenceFrame> class BOARDLocalReferenceFrameEstimation : public FeatureFromNormals<PointInT, PointNT, PointOutT> { public: void planeFitting (Eigen::Matrix<float, Eigen::Dynamic, 3> const &points, Eigen::Vector3f ¢er, Eigen::Vector3f &norm); };
The implementation in board.hpp
template<typename PointInT, typename PointNT, typename PointOutT> void pcl::BOARDLocalReferenceFrameEstimation<PointInT, PointNT, PointOutT>::planeFitting ( Eigen::Matrix<float, Eigen::Dynamic, 3> const &points, Eigen::Vector3f ¢er, Eigen::Vector3f &norm) { ...... }
I don't know why intel compiler wrongly expanded the first parameter of this function.
Eigen::Matrix<float, Eigen::Dynamic, 3> const &points to const Eigen::Matrix<float, Eigen::Dynamic, 3, <expression>, Eigen::Dynamic, 3> &,
Link Copied
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Would it be possible for you to get a preprocessed .i file for this file "impl/board.hpp(131)" by adding "/EP /P"? It would save us time to duplicate the issue.
Thanks,
Jennifer
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Any progress on this issue? I'm having the same problem in addition to a few other problems compiling tpcl::registration::TransformationEstimationSVD<PointSource, PointTarget, Scalar>::getTransformationFromCorrelation. I have compiled PCL many times on VC2010, 2013, and Clang, but can't quite get there on intel yet.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
I suspect that this is the same as our DPD200368856 which was a regression introduced on 8/6/2014 and fixed on 5/27/2015.
See description below. What was the build date for 15.0 update 1?
5/18/15
Spurious error on out-of-class-template member definition in Microsoft mode
In Microsoft mode, the front end sometimes issued a spurious error on a member
function definition appearing outside its parent class template definition if
the return type or a parameter of the member function involves a nontype
template argument expressed using a constant-valued variable. For example:
int const K = 0xfff;
template<typename T> struct D {
template<int> struct N { typedef int Type; };
typename D::template N<K>::Type f(); // (d)
};
template<typename T>
typename D<T>::template N<K>::Type D<T>::f() { // (D)
return 3;
}
Previously, in Microsoft mode, the front end failed to connect definition (D)
with declaration (d), and that triggered a spurious error. This is now fixed.
If this is the same issue then 15.0 Update 4 should be available shortly and contain a fix for this regression. Sorry for the inconvenience.
Judy

- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page