User forums > Help

When will Code::Blocks support "noexcept" specifier?

<< < (2/3) > >>

Alpha:

--- Quote from: Yamakuzure on January 15, 2014, 11:17:39 am ---
--- Quote from: Alpha on November 08, 2013, 02:57:31 pm ---Our parser for codecompletion does not handle C++11 constructs (or templates) very well currently.  There are plans to eventually incorporate Clang, which would bring full support for C++11, however there is no estimated timeline.

--- End quote ---
What does the C language family frontend for LLVM have to do with this? I'm just curious.

--- End quote ---
It means that in about a thousand lines of code, there is fully functional codecompletion that gives results of greater accuracy than our current CC plugin (which has over 20 thousand lines of code).
Using the frontend from a fully functioning compiler gives the benefit of all the precise knowledge the compiler has about parsing source code.

Yamakuzure:

--- Quote from: Alpha on January 15, 2014, 09:05:57 pm ---
--- Quote from: Yamakuzure on January 15, 2014, 11:17:39 am ---
--- Quote from: Alpha on November 08, 2013, 02:57:31 pm ---Our parser for codecompletion does not handle C++11 constructs (or templates) very well currently.  There are plans to eventually incorporate Clang, which would bring full support for C++11, however there is no estimated timeline.

--- End quote ---
What does the C language family frontend for LLVM have to do with this? I'm just curious.

--- End quote ---
It means that in about a thousand lines of code, there is fully functional codecompletion that gives results of greater accuracy than our current CC plugin (which has over 20 thousand lines of code).
Using the frontend from a fully functioning compiler gives the benefit of all the precise knowledge the compiler has about parsing source code.

--- End quote ---
So for 1K lines for code completion, one has to install (and on source based distributions like Gentoo Linux compile) the full LLVM and CLANG suites? Sweet.

What do people using Visual C/C++ gain? Is it compatible? What about gcc, icc and such? As far as I understand it, it will only give precise results for LLVM, won't it?

Don't understand me wrong, I really like the idea, I am just yet unable to see how this benefits non-LLVM-users.

EnterTheNameHere:
I would welcome a mature and refined Lexer/Parser/AST/"Give me tokens and the most information about them you can" tool I can then use to make advanced features like enabling proper CC for variable like following:
--- Code: (c++) ---auto window = std::make_shared<InterfaceWindow>(); // only example
--- End code ---

ATM the only way (I am aware of) to get CC for window variable is to declare it's type:

--- Code: ---std::shared_ptr<InterfaceWindow> window = std::make_shared<InterfaceWindow>();
--- End code ---

So if
1) Alpha will be able to get it running (fingers crossed)
2) the use of LLVM/CLang will be only to compile Parser plugin for Code::Blocks - it won't be necessary for user to have these in their enviroment
3) Windows!

then the plugin should work for any C/C++/"what CLang language is supported" file, because it only parses the files and gives us AST with all the information about tokens we can then use to make smart Code Completion. The Parser doesn't have to touch user's compiler at all. Although it should ask it for defines.

BTW that's how current CC works too, unfortunately with all it's flaws and "how the hell I'm supposed to implement that without making it worse" features we would like to see in CC - no offense intended, authors did a great job and they even were not paid for it. C++11 (and the following C++14) moved C++ to a new century (I know about C++03, not the point here) and I doubt CC was made minding that in advance (no crystal ball) and now the requirements for CC Parser are enormous - so why not use Parser used by compiler?

If it would work like this, then it's fantastic.

(note: I'm not experienced in parsing/code completion and terminology, so what you've just read is only my understanding of how it works)

MortenMacFly:

--- Quote from: Yamakuzure on January 15, 2014, 11:17:39 am ---http://pastebin.com/Cj4GmAkb Contains a patch that adds noexcept.

--- End quote ---
Looks good - committed to SVN, thank you!

oBFusCATed:

--- Quote from: Yamakuzure on January 20, 2014, 10:47:10 am ---So for 1K lines for code completion, one has to install (and on source based distributions like Gentoo Linux compile) the full LLVM and CLANG suites? Sweet.

--- End quote ---
On the source based distros you get llvm/clang compiled for you automagically, at least if you're using some smart source based distro.
And by the way the chance that you won't have llvm/clang installed in the future is getting smaller and smaller.


--- Quote from: Yamakuzure on January 20, 2014, 10:47:10 am ---Don't understand me wrong, I really like the idea, I am just yet unable to see how this benefits non-LLVM-users.

--- End quote ---
You'll have better codecompletion, more precise, supporting the latest standard supported by clang (most of the time well ahead of the competition).
clang is almost compatible to gcc and they are trying to make it compatible to vc++.
C++ parsers build by non-compiler writers are not good in the long term, because they have:
1. missing parts of the standard
2. missing parts of the future standards

With clang or any other compiler that provides and API to its parser you get this for "free".

Navigation

[0] Message Index

[#] Next page

[*] Previous page

Go to full version