On 2/2/23 21:25, Joseph Reichman wrote:
Thanks
First off, I am assembler programmer by trade I did learn C/C++ doing some
TCP/IP stuff from an Assembler Server Started task.
There's a skill to reading documentation. For XL C++ C++11 compatability
see https://www.ibm.com/docs/en/zos/2.3.0?topic=xcle-c11-compatibility.
Note that the C++ standard library is *not* mentioned. We'll get to that
later.
It would display the data program listing from a sysadata on Windows.
Why? Are you writing a GUI? I can understand you wanting to use an IDE
as opposed to ISPF but why run anything on Windows that can run on z/OS?
I would like to use that code on z/os.
If you say clang, is the way to go okay.
You also say use the clang compiler instead of MSVC I hope I don’t end up with
a millon more compile errors using clang as everything compiles cleanly using
MSVC.
How can you write a cross platform program using MSVC++ without having
to resort to #ifdef pre-processor nonsense? That's just bonkers.
I debug under Unix.
You are not making any sense. You want to edit/compile/run on windows
and then debug on Unix? What Unix, z/OS Unix?
Since I am going to run this from z/os its going to be LE with runtime option
POSIX(ON) ? right ?
Now as far as the doc for OPEN XL C++
I got a compile error using map::insert invalid call.
CCN5218 (S) The call does not match any parameter list for "insert".
Is referenced the following statement.
auto ret = procpointer->extsymcollector->insert({ *s, *exsympointer });
You are attempting to insert a record using an rvalue-reference with an
initializer list. That's not supported by the XL C++ standard library
which does not support C++11. I already told you that two posts back.
The function prototype is like so:
template< class P >
std::pair<iterator, bool> insert( P&& value );
Check the doc https://en.cppreference.com/w/cpp/container/map/insert
the compiler initially gave me a problem with '{'
I took it out.
auto ret = procpointer->extsymcollector->insert( *s, *exsympointer );
That's also wrong. You need to pass a single lvalue-reference such as
std::pair (please read the docs).
auto ret = procpointer->extsymcollector->insert( std::pair(*s, *exsympointer) );
I'm not picking holes but the code snippet you posted concerns me. It's
heavy on pointers and the de-referencing alone makes me think it's poor
quality. C++ is not C, it has reference types which are absolutely
essential for RAII. If you have found you are using raw pointers
allocated with "new" then that's a code smell.
then I got the above error
My question is if I got to Open XL C++
Regarding documentation for let's say map::inset I would reference Clang/LLVM
link you sent me earlier.
I hope I don’t open a pandoras box if I change to clang and re-compile all my
windows code.
The question you should be asking yourself is "should I use C++?". C++
is a large and complex language and in my experience with colleagues of
mine who are excellent assembler programmers it can be a struggle to
become proficient. Why don't you use a simpler language like Python
which is easy to use and doesn't have portability issues? I'm an
experienced C/C++ programmer and I certainly wouldn't entertain using
C++ to process ADATA, when I can do it faster, with less code and less
bugs in Python.
----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN