David
Not Really understanding what you are suggesting is there another c++ compiler
on z/os I should be using ?
As I am using CCNDRVR
Are you saying that the standard template libraries functions such as map wont
work with CNNDRVR
As an aside the following statement compiled fine under MSVC or visual studio
auto ret = procpointer->extsymcollector->insert({ *s, *exsympointer });
while I had problems with CNNDRVR seems like it didn’t didn’t like the '{'
c89 which seems to run from a unix shell is the only other compiler I am aware
of
Thanks
-------Original Message-----
From: IBM Mainframe Discussion List <[email protected]> On Behalf Of
David Crayford
Sent: Monday, January 30, 2023 9:17 PM
To: [email protected]
Subject: Re: XL C\C+ strange compile errors
On 30/1/23 07:31, Joseph Reichman wrote:
> Please accept my apologies the program consisted of hundreds of lines
> which I complied cleanly using Visual studio.
>
>
>
> Obviously, there are difference not in ANSI C++ which I Think XL is at
> 20 but in the window types.
There are three IBM C/C++ compiler products that run on z/OS. XL C/C++ is
practically moribund. XL C++ implements a small subset of C++11 such as R-value
references but not the standard library. That's what you're using as it's the
only compiler with a JCL batch interface. All the others ship z/OS UNIX
binaries only. You can still compile programs in PDS libraries but nobody in
their right minds would want to do that in 2023.
xlclang/xlclang++ is a Clang/LLVM front end to the XL C++ back-end. It
implements the C11 and C++14 standards. It's 64-bit only.
Open XL C/C++ is a full blown port of Clang/LLVM and has partial support for
C++20 https://clang.llvm.org/cxx_status.html.
>
>
>
> To make the program compatible with types like DWORD I added typedef due to
> my oversight I forgot to end one with a semi colon which was right before
> the includes which caused one long error.
>
>
>
> Hope I didn't waste any one time.
>
>
The only person whose time you're wasting is your own by using the wrong
compiler (and IDE). Why are you pulling in all of the Windows API header
file crap? Visual Studio Community is an amazing product for writing
Windows programs in a multitude of languages but it's complete overkill
for editing a program to be run on z/OS. If you really must use VS then
configure it to use clang/LLVM
https://learn.microsoft.com/en-us/cpp/build/clang-support-msbuild?view=msvc-170.
You will then have a standard C/C++ environment without all the Windows
garbage. Extra features such as clang-tidy will lint your code for
errors as you type. My advice is to ditch VS for the much lighter weight
VS Code which supports more languages and is designed from the get-go to
be cross-platform.
>
> Thanks you.
>
>
>
> From: [email protected] <[email protected]>
> Sent: Wednesday, January 25, 2023 2:28 PM
> To: 'IBM Mainframe Discussion List' <[email protected]>
> Subject: XL C\C+ strange compile errors
>
>
>
> Hi
>
>
>
> I have a very short C++ program compiling as /CXX which all it does is
> basically open a file
>
>
>
> I am getting a whole slew of errors but they are not from my program they
> are standard includes CEE.SCEEH.H(STDDEF) and in fact I didn't explicitly
> include them (maybe they got included by 2 includes that I included in my
> program of <string> and <map>
>
>
>
> Thing is I don't know why I am getting these errors they would seem to be
> okay for C++ such as "extern" and size_t
>
>
>
> Here is a screen shot of some of the errors
>
>
>
> "//'CEE.SCEEH.H(STDDEF)'", line 39.4: CCN5063 (S) The text "extern" is
> unexpecte"
>
> "//'CEE.SCEEH.H(STRING)'", line 119.51: CCN5063 (S) The text "size_t" is
> unexpec"
>
> "//'CEE.SCEEH.H(STRING)'", line 120.54: CCN5063 (S) The text "size_t" is
> unexpec"
>
> "//'CEE.SCEEH.H(STRING)'", line 121.60: CCN5063 (S) The text "size_t" is
> unexpec"
>
> "//'CEE.SCEEH.H(STRING)'", line 122.45: CCN5063 (S) The text "size_t" is
> unexpec"
>
> "//'CEE.SCEEH.H(STRING)'", line 125.14: CCN5040 (S) The text "__strlen" is
> unexpa
>
> ambiguous.
> "
>
> "//'CEE.SCEEH.H(STRING)'", line 130.58: CCN5063 (S) The text "size_t" is
> unexpec"
>
> "//'CEE.SCEEH.H(STRING)'", line 131.58: CCN5063 (S) The text "size_t" is
> unexpec"
>
> "//'CEE.SCEEH.H(STRING)'", line 132.64: CCN5063 (S) The text "size_t" is
> unexpec"
>
> "//'CEE.SCEEH.H(STRING)'", line 144.51: CCN5063 (S) The text "size_t" is
> unexpec"
>
> "//'CEE.SCEEH.H(STRING)'", line 146.57: CCN5063 (S) The text "size_t" is
> unexpec"
>
> "//'CEE.SCEEH.H(STRING)'", line 148.43: CCN5063 (S) The text "size_t" is
> unexpec"
>
>
>
>
>
> Here is partial list of my compile JCL
>
>
>
> ***************************** Top of Data *****************************
>
> //JOER$ JOB 'ADCD V2R9','SYSPROG',NOTIFY=&SYSUID,REGION=0M
>
> //*
>
> //*-------------------------------------------------------------------
>
> //* COMPILE STEP:
>
> //*-------------------------------------------------------------------
>
> //COMPILE EXEC PGM=CCNDRVR,REGION=192M,PARM=('/CXX LIST,OBJ,DEBUG(FORMA
>
> // T(DWARF),HOOK(LINE,NOBLOCK,PATH),SYMBOL,FILE(OPENFIL))')
>
> //STEPLIB DD DSN=CEE.SCEERUN2,DISP=SHR
>
> // DD DSN=CBC.SCCNCMP,DISP=SHR
>
> // DD DSN=CEE.SCEERUN,DISP=SHR
>
>
>
> Not sure why I am these are errors
>
>
>
> If anyone can point me in the right direction would appreciate it
>
>
>
> Thanks
>
>
> ----------------------------------------------------------------------
> For IBM-MAIN subscribe / signoff / archive access instructions,
> send email to [email protected] with the message: INFO IBM-MAIN
----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to [email protected] with the message: INFO IBM-MAIN
----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to [email protected] with the message: INFO IBM-MAIN