Sorry, but I cannot drop the issues I'm having with the V7R3 C++ compiler.

On our new system, ixlc points to this

/bin/ixlc -> /qsys.lib/qdevtools.lib/qczcxlc.pgm

Everytime I run it, a QPRINT spool file gets created which contains the
following, which I assume is debug statements:

Bytes_Return = 35
Bytes_Avail = 35
Libs_In_Syslibl = 0
Prod_Libs = 0
Curr_Libs = 0
Libs_In_Usrlibl = 0
Lib_Name = 'BEAK '

That's it. I also can't use the compile option "-qlanglvl=..." like the
following:

ixlc -+ QUSRJOBI_0400.cpp -omother -qprint -prtmsgid -qlanglvl=*extended0x
INVALID COMPILING OPTIONS:-qlanglvl=*extended0x

This, however, works fine

CRTBNDCPP PGM(BEAK/MOTHER)
SRCSTMF('/home/beak/QUSRJOBI_0400.cpp')
OUTPUT(*print)
LANGLVL(*EXTENDED0X)
TGTRLS(V7R3M0)

If I am reading the V7R3 C++ reference manual correctly, I should be
getting more print statements out than I am. This program code

#include <iostream>
#include <string>
#include <sstream>
#include <iomanip>
#include <unistd.h>
using namespace std;

void function()
{
cout << __FUNCTION__ << ": I will do nothing sir, and like it!" << endl;
}


int main(int argc, char* argv[])
{
#if defined(__C99_FUNC__)
cout << "__C99_FUNC__ yes" << endl;
#endif
cout << __IBMCPP__ << endl;
#if defined(__IBMCPP_NULLPTR)
cout << "__IBMCPP_NULLPTR yes" << endl;
#endif
#if defined(__IBMCPP_CONSTEXPR)
cout << "__IBMCPP_CONSTEXPR yes" << endl;
#endif
cout << __C99_MAX_LINE_NUMBER << endl;
cout << __FUNCTION__ << endl;
function();
}

Doesn't print anything in regards to __C99_FUNC__, __IBMCPP_NULLPTR or
__IBMCPP_CONSTEXPR. I thought that they should if the *EXTENDED0X option
is specified.


On Fri, Feb 3, 2017 at 2:09 PM, Justin Taylor <JUSTIN@xxxxxxxxxxxxx> wrote:

Thanks

-----Original Message-----
From: Aaron Albertson [mailto:albertaa@xxxxxxxxxx]
Sent: Friday, February 03, 2017 12:50 PM
To: Bare Metal Programming IBM i (AS/400 and iSeries) <c400-l@xxxxxxxxxxxx

Subject: Re: [C400-L] V7R3 C++ questions


Hi Justin,

My apologies for misremembering the original question. I looked
at the 7.1 version of the supported language extensions, and as you said,
C++
11 does not appear in that list. That means that either C++ 11 is
entirely unsupported or only a small subset of C++ 11 features are
supported. You can assume that any set of compiler features that does not
appear in the list is either not supported or only partially supported.

IBM i 7.1 GA'ed in 2010, prior to the ratification of C++ 11 in
2011.
There might be some limited subset of the functionality in the compiler,
implemented with the assumption that they would become part of the standard
when it was ratified. If there is a particular function that you are
interested in you should try it to see if it is part of the compiler.

Thanks,

Aaron Albertson



--
This is the Bare Metal Programming IBM i (AS/400 and iSeries) (C400-L)
mailing list
To post a message email: C400-L@xxxxxxxxxxxx
To subscribe, unsubscribe, or change list options,
visit: http://lists.midrange.com/mailman/listinfo/c400-l
or email: C400-L-request@xxxxxxxxxxxx
Before posting, please take a moment to review the archives
at http://archive.midrange.com/c400-l.





This thread ...

Follow-Ups:
Replies:

Follow On AppleNews
Return to Archive home page | Return to MIDRANGE.COM home page

This mailing list archive is Copyright 1997-2019 by midrange.com and David Gibbs as a compilation work. Use of the archive is restricted to research of a business or technical nature. Any other uses are prohibited. Full details are available on our policy page. If you have questions about this, please contact [javascript protected email address].