Ich habe eine Klasse definiert in Executer.hpp
und Executer.cpp
aufgeteilt.C++ - Eclipse - Organisieren include
In Executer.hpp
ist der Code:
static std::unique_ptr<Executer> mInstance;
static std::once_flag mOnceFlag;
In Executer.cpp
ist der Code:
std::unique_ptr<Executer> Executer::mInstance;
std::once_flag Executer::mOnceFlag; // without this apparently
// useless line of code, the program using this shared lib
// claims: undefined reference to `Executer::mOnceFlag'
Danach versuche ich Eclipse zu lassen meine Importe organisieren.
Was ich erhalte, ist:
//------------------------------- Executer.hpp
#include <memory>
#include <stdexcept>
#include <string>
namespace std {
struct once_flag;
} /* namespace std */
//------------------------------- Executer.cpp
#include "Executer.hpp"
#include <mutex>
Was erwarte ich (und auch richtig kompiliert wird):
//------------------------------- Executer.hpp
#include <memory>
#include <mutex>
#include <stdexcept>
#include <string>
//------------------------------- Executer.cpp
#include "Executer.hpp"
- Warum Eclipse-auf diese Weise verhält?
- Kann ich konfigurieren Eclipse so, dass ich meinen Weg der Organisation der umfasst (I die vielen Möglichkeiten gesehen haben, aber ich habe Dinge schlimmsten)