Browse Source

Now properly uses std::move in get_language

merge-requests/365/head
eidheim 10 years ago
parent
commit
4a3eb43ebb
  1. 12
      src/project.cc
  2. 12
      src/project.h

12
src/project.cc

@ -106,22 +106,22 @@ std::unique_ptr<Project::Language> Project::get_language() {
if(view->language) {
auto language_id=view->language->get_id();
if(language_id=="markdown")
return std::unique_ptr<Project::Language>(new Project::Markdown(build));
return std::unique_ptr<Project::Language>(new Project::Markdown(std::move(build)));
if(language_id=="python")
return std::unique_ptr<Project::Language>(new Project::Python(build));
return std::unique_ptr<Project::Language>(new Project::Python(std::move(build)));
if(language_id=="js")
return std::unique_ptr<Project::Language>(new Project::JavaScript(build));
return std::unique_ptr<Project::Language>(new Project::JavaScript(std::move(build)));
if(language_id=="html")
return std::unique_ptr<Project::Language>(new Project::HTML(build));
return std::unique_ptr<Project::Language>(new Project::HTML(std::move(build)));
}
}
else
build=get_build(Directories::get().path);
if(dynamic_cast<CMake*>(build.get()))
return std::unique_ptr<Project::Language>(new Project::Clang(build));
return std::unique_ptr<Project::Language>(new Project::Clang(std::move(build)));
else
return std::unique_ptr<Project::Language>(new Project::Language(build));
return std::unique_ptr<Project::Language>(new Project::Language(std::move(build)));
}
std::pair<std::string, std::string> Project::Clang::get_run_arguments() {

12
src/project.h

@ -27,7 +27,7 @@ namespace Project {
class Language {
public:
Language(std::unique_ptr<Build> &build): build(std::move(build)) {}
Language(std::unique_ptr<Build> &&build): build(std::move(build)) {}
virtual ~Language() {}
std::unique_ptr<Build> build;
@ -59,7 +59,7 @@ namespace Project {
private:
Dispatcher dispatcher;
public:
Clang(std::unique_ptr<Build> &build) : Language(build) {}
Clang(std::unique_ptr<Build> &&build) : Language(std::move(build)) {}
~Clang() { dispatcher.disconnect(); }
std::pair<std::string, std::string> get_run_arguments() override;
@ -89,7 +89,7 @@ namespace Project {
class Markdown : public Language {
public:
Markdown(std::unique_ptr<Build> &build) : Language(build) {}
Markdown(std::unique_ptr<Build> &&build) : Language(std::move(build)) {}
~Markdown();
boost::filesystem::path last_temp_path;
@ -98,21 +98,21 @@ namespace Project {
class Python : public Language {
public:
Python(std::unique_ptr<Build> &build) : Language(build) {}
Python(std::unique_ptr<Build> &&build) : Language(std::move(build)) {}
void compile_and_run() override;
};
class JavaScript : public Language {
public:
JavaScript(std::unique_ptr<Build> &build) : Language(build) {}
JavaScript(std::unique_ptr<Build> &&build) : Language(std::move(build)) {}
void compile_and_run() override;
};
class HTML : public Language {
public:
HTML(std::unique_ptr<Build> &build) : Language(build) {}
HTML(std::unique_ptr<Build> &&build) : Language(std::move(build)) {}
void compile_and_run() override;
};

Loading…
Cancel
Save