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) { if(view->language) {
auto language_id=view->language->get_id(); auto language_id=view->language->get_id();
if(language_id=="markdown") 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") 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") 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") 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 else
build=get_build(Directories::get().path); build=get_build(Directories::get().path);
if(dynamic_cast<CMake*>(build.get())) 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 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() { std::pair<std::string, std::string> Project::Clang::get_run_arguments() {

12
src/project.h

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

Loading…
Cancel
Save