Fix of compilation on OSX and Linux. By the standard, a temporary

value cannot be passed to a reference.
This commit is contained in:
bubnikv 2018-01-03 17:57:37 +01:00
parent b292554fd8
commit 9d98a27b98
2 changed files with 7 additions and 9 deletions

View file

@ -84,7 +84,7 @@ public:
return end;
}
template<typename Callback>
void parse_line(const std::string &line, Callback &callback)
void parse_line(const std::string &line, Callback callback)
{ GCodeLine gline; this->parse_line(line.c_str(), gline, callback); }
void parse_file(const std::string &file, callback_t callback);

View file

@ -156,12 +156,10 @@ namespace Slic3r {
void GCodeTimeEstimator::calculate_time_from_lines(const std::vector<std::string>& gcode_lines)
{
auto action = [this](GCodeReader &reader, const GCodeReader::GCodeLine &line)
{ this->_process_gcode_line(reader, line); };
for (const std::string& line : gcode_lines)
{
_parser.parse_line(line,
[this](GCodeReader &reader, const GCodeReader::GCodeLine &line)
{ this->_process_gcode_line(reader, line); });
}
_parser.parse_line(line, action);
_calculate_time();
reset();
}
@ -178,11 +176,11 @@ namespace Slic3r {
{
PROFILE_FUNC();
GCodeReader::GCodeLine gline;
auto action = [this](GCodeReader &reader, const GCodeReader::GCodeLine &line)
{ this->_process_gcode_line(reader, line); };
for (; *ptr != 0;) {
gline.reset();
ptr = _parser.parse_line(ptr, gline,
[this](GCodeReader &reader, const GCodeReader::GCodeLine &line)
{ this->_process_gcode_line(reader, line); });
ptr = _parser.parse_line(ptr, gline, action);
}
}