News:

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

Main Menu

Code Completion fails to show tips .

Started by hooluupog, March 25, 2012, 07:48:32 AM

Previous topic - Next topic

hooluupog

I am using Code::Blocks nightly build 7789(update from stable build 10.05).  FYI, mingw gcc -version gcc (tdm-1) 4.6.1,gdb 7.3
The code completion always fails in such cases: :'(
Case 1:
//--------------MyException.h-----------------
#include <string>
class MyException
{
   public:
       virtual std::string getwhat() = 0;
};

class MyDivideZero : public MyException{
   public:
       std::string getwhat()
       {
           return "Divide By Zero.";
       }
};

class MyTooLarge : public MyException{
   public:
       std::string getwhat()
       {
           return "Too Large Number.";
       }
};

//-------------------------main.cpp-----------------
#include "MyException.h"
#include <iostream>
using namespace std;
int main(){
       try{
             cout<<"It's a test."<<endl;
       }catch(MyException& e)
       {
           cout<<e.getwhat()<<"\n"; //       code completion fails showing getwhat() method.  After i write 'e.' ,it shows nothing.
       }
   }


Case 2:

//-----------------------StrInt.h-----------------
#include <iostream>
#include <string>
class StrInt{
       std::string _num;
   public:
       StrInt(const std::string& a = "0");
};

//--------------------StrInt.cpp-----------------
#include "StrInt.h"
StrInt::StrInt(const std::string& a) : _num(a)
{
   if (a.length()==0) ;  //     code completion fails showing length() method. After i write 'e.' ,it shows nothing.
}

ollydbg

Hi, thanks for the example, can you please file a bug report in our berliOS site?

Thus, I can track it and manage it. (the bug won't lost in our forum)

Thank you!
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.

hooluupog

OK. i will do that. Wish the next stable release have a handy CC. :)
BTW,is there a real-time syntax error checking function(just like the eclipse cdt does) for C::B in the near future? It will be amazing.

ollydbg

Quote from: hooluupog on March 27, 2012, 05:50:37 AM
OK. i will do that. Wish the next stable release have a handy CC. :)
Thanks.

Quote
BTW,is there a real-time syntax error checking function(just like the eclipse cdt does) for C::B in the near future? It will be amazing.
I don't think it is easy to implement. Currently no such plan is made. Can you help us?  :)
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.

arprog

#define String std::string

String str;
str. < fail

and

typedef std::string String;

String str;
str. < fail

[CodeBlocks svn 7789]

P.S. CodeBlocks the best!

ollydbg

Quote from: arprog on March 27, 2012, 02:21:27 PM
#define String std::string

String str;
str. < fail

and

typedef std::string String;

String str;
str. < fail

[CodeBlocks svn 7789]

P.S. CodeBlocks the best!

Ok, I test it and find that it does not work. (I presume it should work)

So, please file another bug. Thanks.
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.