Using TaskCPP.h, Getting Error

groger57 wrote on Thursday, June 23, 2016:


I have written an application previously in ansi C that is using FreeRTOS and works 100%.
Now, I have converted the code to C++ and ready to try using the C++ wrappers and add in the calls to FreeRTOS. At this point it’s tasks and queues. I’m using IAR EWARM 7.5.

Just including the TaskCPP file has caused a silicon slip in the compiler. The 2 errors I am getting are :
Error[Pe265]: member “Task::handle” (declared at line 169) is inaccessible C:\Users\grr\Documents\IAR Embedded Workbench\FreeRTOSV8.2.0\FreeRTOS\Source\include\TaskCPP.h 223
Error[Pe245]: a nonstatic member reference must be relative to a specific object C:\Users\grr\Documents\IAR Embedded Workbench\FreeRTOSV8.2.0\FreeRTOS\Source\include\TaskCPP.h 223

As you can see, both are at the same line. What is causing this error, and better yet, are there any basic examples to be found on using these wrappers?

Thank you,

rtel wrote on Thursday, June 23, 2016:

Where did you get the wrapper files from?

groger57 wrote on Thursday, June 23, 2016:


Is it bad?

rtel wrote on Thursday, June 23, 2016:

Is it bad?

No - not at all - quite the opposite - I’ve not used it myself but heard
good things about it. It’s just that there are a few wrappers around
and I was wondering which you were using to see if it was something that
can be supported on this forum. Richard Damon is a regular poster here
so hopefully he will see your question and be able to provide some advise.

groger57 wrote on Thursday, June 23, 2016:

Ok, thanks. For some reason, I was under the impression that Richard Damon worked (or contributed time to) for FreeRTOS.
Yes, I hope he, or someone that may have used them before can provide some insight.

Maybe it would have been better to keep ansi-C and FreeRTOS in it’s “home state”, and lib the C++ stuff.

richard_damon wrote on Friday, June 24, 2016:

That’s my wrapper, I don’t “work” for FreeRTOS but been around a while helping where I can. I will need to look at that error on my machine with the code. Sounds a bit like an error that I remember working on, maybe I got a commit at the wrong time or missed a commit.

Looking at the code on GitHub, a quick fix would be to convert the private on line 168 to protected (and best to add a private again after line 169.

richard_damon wrote on Saturday, June 25, 2016:

I’ve committed a small patch which looks to fix these issues. I have a bigger update in the work, but haven’t tested it enough.

groger57 wrote on Wednesday, June 29, 2016:

Ok, thanks for the information and update.