C++0x syntax question

Kelly Beard <[email protected]>
Newsgroups gmane.comp.lang.as400.c
Message-ID <CAOvM2Ss8Gkk4qVtryor2Ozb4yVa4haKapNn4AcPortEqpkYVfg@mail.gmail.com>
I am attempting to compile the following code under the newer compiler
under V7R3 and the LANGLVL *EXTENDED0X option enabled.  I am using the
5799PTL 'icc' compiler front-end to do this.  The command default for
CRTCPPMOD has been altered to always have *EXTENDED0X on by default.  I am
getting this:

"testme.cpp", line 14.18: CZP0130 (30) "start" is not declared.

The offending line looks like:

T::size_type start = 0;

So, is there a change to the C++11 syntax here?  Thanks in advance, as
always.  Here is the test program.

#include <iostream>
#include <string>
#include <sstream>
#include <iomanip>
#include <vector>
#include <unistd.h>

using namespace std;


template<typename T> vector<T> split(const T & str, const T & delimiters)
{
    vector<T> v;
    T::size_type start = 0;
    size_t pos = str.find_first_of(delimiters, start);
    while (pos != T::npos) {
        if (pos != start) { // ignore empty tokens
            v.push_back(str.substr(start, pos - start));
        }
        start = pos + 1;
        pos = str.find_first_of(delimiters, start);
    }
    if (start < str.length()) { // ignore trailing delimiter
        v.push_back(str.substr(start, pos - start));
    }
    return v;
}


int main(int argc, char* argv[])
{
    string str = "this,is,a,test, of whatever, like, ok.";
    vector<string> v = split<string>(str, ", ");
    for (int i = 0; i < v.size(); ++i) {
        cout << v[i] << endl;
    }
}


-- 
Kelly Beard
-- 
This is the Bare Metal Programming IBM i (AS/400 and iSeries) (C400-L) mailing list
To post a message email: C400-L-Zwy7GipZuJhWk0Htik3J/[email protected]
To subscribe, unsubscribe, or change list options,
visit: https://lists.midrange.com/mailman/listinfo/c400-l
or email: C400-L-request-Zwy7GipZuJhWk0Htik3J/[email protected]
Before posting, please take a moment to review the archives
at https://archive.midrange.com/c400-l.
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.