AnsweredAssumed Answered

Why can't std::size_t be resolved by CCES?

Question asked by aneves on Jul 27, 2018
Latest reply on Aug 6, 2018 by Reva@14



I've just started using CCES for a new project. I'm using the ADZS-SC584-EZLITE evaluation kit right now before we spin a prototype. I'm using v2.8.0.0 of CCES on Windows 10 64-bit.


I've got a few .cpp files which use std::size variables. While the code compiles fine, I have this pretty annoying error that gets reported by the indexer within the IDE. It reads that std::size_t could not be resolved even though I've included the correct header. After some digging around I think I've narrowed it down to the fact that the C++ system headers typedef the result of expanding the __SIZE_TYPE__ macro. This macro is never explicitly defined in any header, rather, it is internally defined by the compiler as an unsigned int. The issue is that the IDE seems to be unable to pick up on the fact that the compiler has this defined.


When I look at my project properties and I look at the symbols that were automatically defined by the "CrossCore ARM Bare Metal Builtin Specs Detector" (whose job it is to query the compiler in use to discover these internally defined symbols) I see this:

The macro __SIZE_TYPE__ is defined but is missing the value so the macro expansion results in __SIZE_TYPE__ being replaced by nothing. However, when I configure the "CrossCore ARM Bare Metal Builtin Specs Detector" to allocate a console when it runs so I can see the output I see this along with everything else:

#define __SIZE_TYPE__ unsigned int

I've attached the entire output as a text file to this post.


So it looks like there is a disconnect somewhere and I don't know how to get the specs detector to see that this symbol is in fact defined with a value. As a test, I manually defined __SIZE_TYPE__ as an unsigned int and those annoying IDE errors went away. However, my concern is that there are other symbols that are not being picked up correctly. I do find the code analysis/indexer messages useful (when they are correct), so I'd hate to have to completely turn those off.


Does anyone have an idea on how to resolve this?