| Hello all, 
 I've been working on a project and the blot of red eclipse CDT is
    showing me is driving me insane / winning.
 
 I'd really like help getting rid of two kinds of "errors"
 
 Firstly:
 Things it should recognise.
 
 CTD hates this line:
 
 Node* newNode = new Node(::std::forward<T>(what));
 
 it believes the part I have underlined to be an error. I have
    included <utility> of course.
 
 I've refreshed, cleaned, restarted, checked for updates (nothing by
    the way) several times.
 
 Ptr(::std::nullptr_t pointer) {
 
 This one need not be included - it should be present always - it is
    the type of nullptr.
 
 That's all the c++11 stuff (I've used) that it thinks are errors.
 
 So still in the first section, it doesn't like it when I use a
    much older C++ feature, implict construction.
 
 messages.append(newMessage);
 
 In this line I expect C++ to do something along the lines of: messages.append(PtrWrapper(newMessage));
    as PtrWrapper<whatever newMessage is> is the type
    messages is a list of.
 
 There are a lot of those.
 
 Otherwise it is really good, weirdly it correctly interprets listeners[k]
      != nullptr - in this case the nullptr is used to
    construct a Ptr that can then be compared to listeners[k]
    (you can see the constructor as the 2nd error in this list) and
    identifies the overloaded !=.
 
 Secondly
 I'm using wxWidgets and it seems to have only found parts of it.
    Some stuff is recognised correctly other things it is convinced are
    errors. - inconsistently
 
 class GameFrame: public wxFrame {
 public:
 GameFrame(Core*);
 
 DECLARE_EVENT_TABLE()
 private:
 Del<Core> game;
 };
 
 
 Here it has correctly identified DECLARE_EVENT_TABLE as a macro
 
 However in the .cpp file that goes with it:
 
 GameFrame::GameFrame(Core* game):
 wxFrame(nullptr,wxID_ANY,wxString(_("Game!"))),
 game(game)
 {
 wxSizer* sizer = new wxBoxSizer(wxVERTICAL);
 SetSizer(sizer);
 sizer->Add(new
      LogView(this,game->getLog()),1,wxEXPAND);
 
 game->getLog().append(_("Installed
      the log viewer"));
 }
 
 BEGIN_EVENT_TABLE(GameFrame,wxFrame)
 
 END_EVENT_TABLE()
 
 It is convinced the macros are errors, it also doesn't recognise the
    _ macro (surrounding "Game!")
 
 It also can't resolve <wx/wx.h> - so it claims anyway.
 
 Yet weirdly:
 
 MyApp::MyApp() { }
 bool MyApp::OnInit() {
 Core* core = new Core();
 wxFrame* frame = new GameFrame(core);
 core->getLog().append(_("Hello?"));
 frame->Show();
 return true;
 }
 
 It correctly recognises the _ macro here.
 
 
 In this code, it doesn't recognise the _ (and thus not the
    InsertColumn) and such
 
 LogView::LogView(wxWindow* parent,Utils::Log& log):
 wxPanel(parent,wxID_ANY) {
 listenToLog(log);
 
 listCtrl = new
      wxListCtrl(this,wxID_ANY,wxDefaultPosition,wxDefaultSize,wxLC_REPORT);
 wxSizer* sizer = new wxBoxSizer(wxHORIZONTAL);
 SetSizer(sizer);
 
 sizer->Add(listCtrl,1,wxEXPAND);
 
 listCtrl->InsertColumn(0,_("Time"));
 listCtrl->InsertColumn(1,_("Type"));
 listCtrl->InsertColumn(2,_("Message"));
 }
 
 But it correctly recognises listCtrl->SetItem(itemId,2,message.getMessage());
    (getMessage returns a const wxString&) - it also doesn't
    recognise wxLC_REPORT
 
 All of this compiles and runs.
 
 The only thing that has changed (maybe) is that my Make output is a
    bit more verbose
 
 For example:
 
 COMPILE        build/Utils/Log.o (Due to changes: [huge list
      of files omitted])
 g++ -Wextra -Wall --std=c++11
      -I/usr/lib/x86_64-linux-gnu/wx/include/gtk2-unicode-release-2.8
      -I/usr/include/wx-2.8 -D_FILE_OFFSET_BITS=64 -D_LARGE_FILES
      -D__WXGTK__ -pthread -g -gdwarf-2 -c src/Utils/Log.cpp -o
      build/Utils/Log.o
 
 
 In previous projects the first line (COMPILE) was omitted. I checked
    Eclipse's settings just in case and this SHOULD NOT trigger the rule
    it uses to match compiler invokations
 
 It is also shown the linking command just with "[tab]LINK (some
    info)" above it - Eclipse should also ignore. There are no new lines
    or anything!
 
 What is wrong?
 
 I hate to complain a lot of stuff works really really well but I
    don't know how else I can guide CDT into finding stuff.
 
 Alec
 
 BTW the project is an IDE for creating blobs that can be fed to an
    engine, incase you are curious.
 
 
 
 |