News:

As usual while waiting for the next release - don't forget to check the nightly builds in the forum.

Main Menu

CC with namespaces

Started by Alpha, July 31, 2012, 03:41:03 AM

Previous topic - Next topic

Alpha

I have been doing some work with OpenCV, and noticed that code completion appears to fail when namespaces are used.
For example:

cv::Mat myMat;
myMat. // CC works here


But:

using namespace cv;
Mat myMat;
myMat. // CC fails to launch


Is this a known shortcoming of the parser?  Is there a setting somewhere that I am missing?
(Code::Blocks rev 8160, OpenCV 2.4.2, Windows XP and Vista)

ollydbg

Both of the code snippet works here, they give the same suggestion list.
OpenCV 2.1, C::B nightly build, WinXP.

You can help to debug it by enable the smartsense log message, see:
8.4 Debug Smart Sense log output
If some piece of memory should be reused, turn them to variables (or const variables).
If some piece of operations should be reused, turn them to functions.
If they happened together, then turn them to classes.

Alpha

Strange... I cannot seem to reproduce the behavior now.  I will post again if I figure out in what situations it used to occur.

(I wonder what I changed?!)

Alpha

If the using namespace line is placed in a header file, code completion fails within source files including it (but not specifying the namespace themselves).

Also, these typedef's from opencv2/core/core.hpp are not picked up:

/*!
  \typedef

  shorter aliases for the most popular cv::Point_<>, cv::Size_<> and cv::Rect_<> specializations
*/
typedef Point_<int> Point2i;
typedef Point2i Point;
typedef Size_<int> Size2i;
typedef Size2i Size;
typedef Rect_<int> Rect;
typedef Point_<float> Point2f;
typedef Point_<double> Point2d;
typedef Size_<float> Size2f;
typedef Point3_<int> Point3i;
typedef Point3_<float> Point3f;
typedef Point3_<double> Point3d;


Quote from: ollydbg on July 31, 2012, 04:29:16 AM
You can help to debug it by enable the smartsense log message
I enabled it, and now there is a lot of output; but what do I do with the log?  Is there something specific I should be looking for?

MortenMacFly

Quote from: Alpha on August 01, 2012, 04:57:28 AM
Quote from: ollydbg on July 31, 2012, 04:29:16 AM
You can help to debug it by enable the smartsense log message
I enabled it, and now there is a lot of output; but what do I do with the log?  Is there something specific I should be looking for?
For the things with the typedefs you can also use the cc_test tool - a project within the CC plugin's sources. Then post the log here. These typedefs actually should work. What are your settings in CC?
Compiler logging: Settings->Compiler & Debugger->tab "Other"->Compiler logging="Full command line"
C::B Manual: [url="https://www.codeblocks.org/docs/main_codeblocks_en.html"]https://www.codeblocks.org/docs/main_codeblocks_en.html[/url]
C::B FAQ: [url="https://wiki.codeblocks.org/index.php?title=FAQ"]https://wiki.codeblocks.org/index.php?title=FAQ[/url]