- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
The following code is failing on ICC 18.0.3, while it works fine on gcc 4.8.5, clang 3.4.2, MS Visual Studio 2017:
- file.h
template<typename HeadNodeType> static void addFetaCoefficientsForHeadNodes( HeadNodeType const &headNode, Path const &path, std::string const &attributeName, Coefficients const &coeffs, FetaTuplesMap<HeadNodeType, Path> &fetaHeadNodeMap);
- file_impl.h (Implementation is made in a separate header file to keep the main header cleaner)
template<typename HeadNodeType> void Objective::addFetaCoefficientsForHeadNodes( HeadNodeType const &headNode, Path const &path, std::string const &attributeName, Coefficients const &coeffs, FetaTuplesMap<HeadNodeType, Path> &fetaHeadNodeMap)
- file.cpp (using the previous)
void Objective::addFetaCoefficients( SourceNode const &sourceNode, Path const &path, std::string const &attributeName, Coefficients const &coeffs) { addFetaCoefficientsForHeadNodes(sourceNode, path, attributeName, coeffs, m_fetaSourceNodeMap); }
void Objective::addFetaCoefficients( StockpileNode const &stockpileNode, Path const &path, std::string const &attributeName, Coefficients const &coeffs) { addFetaCoefficientsForHeadNodes(stockpileNode, path, attributeName, coeffs, m_fetaStockpileNodeMap); }
The issue is:
file.cpp(31): error: no instance of function template "Objective::addFetaCoefficientsForHeadNodes" matches the argument list
argument types are: (const SourceNode, const Path, const std::string, const Coefficients, FetaMapSourceNode)
addFetaCoefficientsForHeadNodes(sourceNode, path, attributeName, coeffs, m_fetaSourceNodeMap);
^
file_impl.h(16): note: this candidate was rejected because at least one template argument could not be deduced
void Objective::addFetaCoefficientsForHeadNodes(
As explained, this works fine on any other of the named compilers. It doesn't even work by expliciting the types in the functions calls in the cpp file, as:
addFetaCoefficientsForHeadNodes<SourceNode>(sourceNode, path, attributeName, coeffs, m_fetaSourceNodeMap); ... addFetaCoefficientsForHeadNodes<StockpileNode>(stockpileNode, path, attributeName, coeffs, m_fetaStockpileNodeMap);
- Tags:
- CC++
- Development Tools
- Intel® C++ Compiler
- Intel® Parallel Studio XE
- Intel® System Studio
- Optimization
- Parallel Computing
- Vectorization
Link Copied
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Can you please provide your command line options and show us how to compile your test case?
Thanks,
Viet
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
The command line used to compile is this:
/opt/intel/compilers_and_libraries/linux/bin/intel64/icc -I/usr/local/include -I/home/apalma/MinePlanner/CMPicc/OPP/include -I/opt/ibm/ILOG/CPLEX_Studio128/cplex/include/ilcplex -I/opt/gurobi801/linux64/include -fmax-errors=1 -Wextra -march=native -std=c++11 -DTIMING -pedantic-errors -Wall -Werror -O3 -DNDEBUG -s -fPIC -o CMakeFiles/opp_static.dir/opp_objective.cpp.o -c /home/apalma/MinePlanner/CMPicc/OPP/src/opp_objective.cpp
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Can you provide us a complete test case? I am having other compilation issues with those files you provided on Friday.
Or you can give us a preprocess file by running the below command:
/opt/intel/compilers_and_libraries/linux/bin/intel64/icc -I/usr/local/include -I/home/apalma/MinePlanner/CMPicc/OPP/include -I/opt/ibm/ILOG/CPLEX_Studio128/cplex/include/ilcplex -I/opt/gurobi801/linux64/include -fmax-errors=1 -Wextra -march=native -std=c++11 -DTIMING -pedantic-errors -Wall -Werror -O3 -DNDEBUG -fPIC -E /home/apalma/MinePlanner/CMPicc/OPP/src/opp_objective.cpp >& testcase.i
Thanks,
Viet
- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page