Solved

Vector templates not working on Solaris (Sun ONE Studio 8).

Posted on 2004-09-03
4
376 Views
Last Modified: 2013-12-26
I just upgraded to Sun One Studio 8 Compiler Colleciton and I can't seem to get vector working.  Here is a little test program:

#include <vector>

int main() {
        printf ("Just testing the vector include...\n");
        vector<int> v;
        return 0;
}

And here is what happens:

[root@usfrssa9 vector]# uname -a
SunOS usfrssa9 5.9 Generic sun4u sparc SUNW,Sun-Blade-100
[root@usfrssa9 vector]# /opt/SUNWspro/bin/CC -V
CC: Sun C++ 5.5 2003/03/12
[root@usfrssa9 vector]# /opt/SUNWspro/bin/CC vector.cpp
"vector.cpp", line 5: Error: vector is not defined.
"vector.cpp", line 5: Error: Badly formed expression.
2 Error(s) detected.

Am I missing something?  I looked for the vector include file and found two:
[root@usfrssa9 vector]# find /usr/include /opt/SUNWspro -name vector -print
/opt/SUNWspro/prod/include/CC/Cstd/vector
/opt/SUNWspro/prod/include/CC/stlport4/vector

I tried adding each of these to the include path but that didn't help.
0
Comment
Question by:chuyler1
  • 3
4 Comments
 
LVL 86

Accepted Solution

by:
jkr earned 125 total points
Comment Utility
You need to specify the 'std' namespace or explicitly point out that you're referring to 'std::vector', e.g.

#include <vector>
using namespace std;

int main() {
        printf ("Just testing the vector include...\n");
        vector<int> v;
        return 0;
}
or

#include <vector>

int main() {
        printf ("Just testing the vector include...\n");
        std::vector<int> v;
        return 0;
}
0
 
LVL 86

Expert Comment

by:jkr
Comment Utility
BTW, the 1st approach will save a lot more typing :o)
0
 

Author Comment

by:chuyler1
Comment Utility
Ok, that worked!  Why is it that the man page posts an example without doing this?

EXAMPLE
     //
     // vector.cpp
     //
     #include <vector>
     #include <iostream>

     ostream& operator<< (ostream& out,
     const vector<int, allocator>& v)
      {
      copy(v.begin(),v.end(),ostream_iterator<int,char>(out,"
      "));
      return out;
      }
     int main(void)
      {
     // create a vector of doubles
        vector<int>         vi;
       int                 i;

     for(i = 0; i < 10; ++i) {
        // insert values before the beginning
       vi.insert(vi.begin(), i);
        }

     // print out the vector
     cout << vi << endl;

     // now let's erase half of the elements
     int half = vi.size() >> 1;
     for(i = 0; i < half; ++i) {
       vi.erase(vi.begin());
        }

     // print ir out again
     cout << vi << endl;

     return 0;
      }
0
 
LVL 86

Expert Comment

by:jkr
Comment Utility
Good question :o)

Either the man page is erroneos or simply outdated - maybe it was created before the C++ standard has been finalized...
0

Featured Post

How your wiki can always stay up-to-date

Quip doubles as a “living” wiki and a project management tool that evolves with your organization. As you finish projects in Quip, the work remains, easily accessible to all team members, new and old.
- Increase transparency
- Onboard new hires faster
- Access from mobile/offline

Join & Write a Comment

Introduction: Dialogs (2) modeless dialog and a worker thread.  Handling data shared between threads.  Recursive functions. Continuing from the tenth article about sudoku.   Last article we worked with a modal dialog to help maintain informat…
If you use Adobe Reader X it is possible you can't open OLE PDF documents in the standard. The reason is the 'save box mode' in adobe reader X. Many people think the protected Mode of adobe reader x is only to stop the write access. But this fe…
This video will show you how to get GIT to work in Eclipse.   It will walk you through how to install the EGit plugin in eclipse and how to checkout an existing repository.
Polish reports in Access so they look terrific. Take yourself to another level. Equations, Back Color, Alternate Back Color. Write easy VBA Code. Tighten space to use less pages. Launch report from a menu, considering criteria only when it is filled…

763 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

6 Experts available now in Live!

Get 1:1 Help Now