On 3/9/2017 8:36 AM, degski via Boost wrote:
On 8 March 2017 at 11:47, Edward Diener via Boost
wrote: Thanks for the link, but it hardly qualifies as documentation for that product. If it is like clang for Windows targeting VC++ it has a broken emulation of the non-standard VC++ preprocessor which makes it more than useless to me.
... about as useless as cl.exe (C1/C2) itself, I guess...
You have missed the point in regard to Boost. The point is: 1) VC++, although having a non-standard C++ preprocessor, will work with Boost PP/VMD because of the workarounds programmed in those libraries to deal with that compiler. 2) Clang targeting VC++ has a broken emulation of the non-standard VC++ preprocessor, which means it will not work with Boost PP/VMD. 3) Many Boost libraries use Boost PP for their preprocessing tasks. 4) Therefore many Boost libraries will not work with clang targeting VC++. 5) I have reported to clang bugs regarding their broken emulation of the non-standard VC++ preprocessor, and they have completely ignored those bug reports. 6) Therefore if clang/C2, or whatever is the latest name Microsoft has given to their largely undocumented product, also contains the broken emulation of the non-standard VC++ preprocessor, it will not work with Boost. 7) If there is a mode by which clang/C2 does not use the broken emulation of the non-standard VC++ preprocessor, but instead implements clang's usual C++ standard preprocessor, as Peter Dimov has suggested, there is no Boost Build support for clang/C2 AFAICS to test this. 8) I am not willing to try to change Boost PP/VMD to work with clang's broken emulation of the non-standard VC++ preprocessor. If anyone else would like to do it, please go ahead. Getting Boost PP/VMD to work with the non-standard VC++ preprocessor was enough work, as I am pretty sure that Paul Mensonides who did that for Boost PP will attest also. This is what I mean when I say that clang/C2 is currently useless to me as someone who programs using Boost libraries. Personally it may be great for VC++ developers despite its almost total lack of documentation, but it is not ready for programming using Boost.
The only usefullness of the Clang/C2 combo is the better debugging support it provides (as compared to Clang/LLVM)... Clang/C2 cannot beat Clang/LLVM, at best it's on par (but often not) and it's released version is lagging the clang/LLVM release schedule.... As/when used from the IDE, Clang/LLVM integrates and works well... makes programming in C++ on Windows much more pleasant (more comprehensible error messages, although the M$ STL doesn't always help in this regard) and often generates better code...
As to docs: the exe's do have (clang) help screens, accessible from the command-line. General Clang/LLVM docs on the web-site...
As to vapourware: I guess it is, since AFAIK it (Clang/C2) is still an 'experimental' project, and as such not supported (as in 'don't use in production code').
degski