Before You Begin
This manual instructs you in the use of the C++ compiler for Sun Studio 11 and provides detailed information on command-line compiler options. This manual is intended for programmers with a working knowledge of C++ and some understanding of the Solaris Operating System and UNIX® commands.
This manual covers the following topics:
C++ Compiler. Chapter 1 provides introductory material about the compiler, such as standards conformance and new features.Chapter 2 explains how to use the compiler and Chapter 3 discusses how to use the compiler's command line options.
Writing C++ Programs. Chapter 4 discusses how to compile nonstandard code that is commonly accepted by other C++ compilers. Chapter 5 makes suggestions for setting up and organizing header files and template definitions. Chapter 6 discusses how to create and use templates and Chapter 7 explains various options for compiling templates. Exception handling is discussed in Chapter 8 and information about cast operations is provided in Chapter 9. Chapter 10 discusses performance techniques that strongly affect the C++ compiler. Chapter 11 provides information about building multithreaded programs.
Libraries. Chapter 12 explains how to use the libraries that are provided with the compiler. The C++ standard library is discussed in Chapter 13, the classic iostream library (for compatibility mode) is discussed in Chapter 14, and the complex arithmetic library (for compatibility mode) is discussed in Chapter 15. Chapter 16 provides information about building libraries.
Appendices. Appendix A lists the complete set of C++ compiler options in alphabetic order and Appendix B lists the C++ compiler pragmas.
This Sun Studio release supports systems that use the SPARC® and x86 families of processor architectures: UltraSPARC®, SPARC64, AMD64, Pentium, and Xeon EM64T. The supported systems for the version of the Solaris Operating System you are running are available in the hardware compatibility lists at http://www.sun.com/bigadmin/hcl. These documents cite any implementation differences between the platform types.
In this document, these x86 related terms mean the following:
For supported systems, see the hardware compatibility lists.
The Sun Studio software and its man pages are not installed into the standard /usr/bin/ and /usr/share/man directories. To access the software, you must have your PATH environment variable set correctly (see Accessing the Software). To access the man pages, you must have your MANPATH environment variable set correctly (see Accessing the Man Pages).
For more information about the PATH variable, see the csh(1), sh(1), ksh(1), and bash(1) man pages. For more information about the MANPATH variable, see the man(1) man page. For more information about setting your PATH variable and MANPATH variable to access this release, see the installation guide or your system administrator.
Note - The information in this section assumes that your Sun Studio software is installed in the /opt directory on Solaris platforms and in the /opt/sun directory on Linux platforms. If your software is not installed in the default directory, ask your system administrator for the equivalent path on your system.
Use the steps below to determine whether you need to change your PATH variable to access the software.
1. Display the current value of the PATH variable by typing the following at a command prompt.
2. On Solaris platforms, review the output to find a string of paths that contain /opt/SUNWspro/bin. On Linux platforms, review the output to find a string of paths that contain /opt/sun/sunstudio11/bin.
If you find the path, your PATH variable is already set to access the software. If you do not find the path, set your PATH environment variable by following the instructions in the next procedure.
On Solaris platforms, add the following path to your PATH environment variable. If you have previously installed Forte Developer software, Sun ONE Studio software, or another release of Sun Studio software, add the following path before the paths to those installations.
On Linux platforms, add the following path to your PATH environment variable.
Use the following steps to determine whether you need to change your MANPATH variable to access the man pages.
1. Request the dbx man page by typing the following at a command prompt.
2. Review the output, if any.
If the dbx(1) man page cannot be found or if the man page displayed is not for the current version of the software, follow the instructions in the next procedure to set your MANPATH environment variable.
On Solaris platforms, add the following path to your MANPATH environment variable.
On Linux platforms, add the following path to your MANPATH environment variable.
The Sun Studio integrated development environment (IDE) provides modules for creating, editing, building, debugging, and analyzing the performance of a C, C++, or Fortran application.
The command to start the IDE is sunstudio. For details on this command, see the sunstudio(1) man page.
The correct operation of the IDE depends on the IDE being able to find the core platform. The sunstudio command looks for the core platform in two locations:
If the core platform is not installed or mounted to either of the locations where the sunstudio command looks for it, then each user on a client system must set the environment variable SPRO_NETBEANS_HOME to the location where the core platform is installed or mounted (/installation_directory/netbeans/3.5V11).
On Solaris platforms, each user of the IDE also must add /installation_directory/SUNWspro/bin to their $PATH in front of the path to any other release of Forte Developer software, Sun ONE Studio software, or Sun Studio software. On Linux platforms, each user of the IDE also must add /installation_directory/sunstudio11/bin to their $PATH in front of the path to any other release of Sun Studio software.
The path /installation_directory/netbeans/3.5V11/bin should not be added to the user's $PATH.
You can access the documentation at the following locations:
If your software is not installed in the /opt directory on a Solaris platform or the /opt/sun directory on a Linux platform, ask your system administrator for the equivalent path on your system.
The docs.sun.com web site (http://docs.sun.com) enables you to read, print, and buy Sun Microsystems manuals through the Internet. If you cannot find a manual, see the documentation index that is installed with the software on your local system or network.
Note - Sun is not responsible for the availability of third-party Web sites mentioned in this document. Sun does not endorse and is not responsible or liable for any content, advertising, products, or other materials that are available on or through such sites or resources. Sun will not be responsible or liable for any actual or alleged damage or loss caused by or in connection with the use of or reliance on any such content, goods, or services that are available on or through such sites or resources.
The documentation is provided in accessible formats that are readable by assistive technologies for users with disabilities. You can find accessible versions of documentation as described in the following table. If your software is not installed in the /opt directory, ask your system administrator for the equivalent path on your system.
HTML at http://docs.sun.com
HTML at http://docs.sun.com
The following table describes related documentation that is available at /opt/SUNWspro/docs/index.html and at http://docs.sun.com. If your software is not installed in the /opt directory, ask your system administrator for the equivalent path on your system.
The following table describes related documentation that is available through the docs.sun.com web site.
This manual provides lists of the man pages that are available for the C++ libraries. The following table lists other man pages that are related to C++.
The following is a partial list of available books on the C++ language.
The C++ Programming Language 3rd edition, Bjarne Stroustrup (Addison-Wesley, 1997).
The C++ Standard Library, Nicolai Josuttis (Addison-Wesley, 1999).
Generic Programming and the STL, Matthew Austern (Addison-Wesley, 1999).
Standard C++ IOStreams and Locales, Angelika Langer and Klaus Kreft (Addison-Wesley, 2000).
Thinking in C++, Volume 1, Second Edition, Bruce Eckel (Prentice Hall, 2000).
The Annotated C++ Reference Manual, Margaret A. Ellis and Bjarne Stroustrup, (Addison-Wesley, 1990).
Design Patterns: Elements of Reusable Object-Oriented Software, Erich Gamma, Richard Helm, Ralph Johnson and John Vlissides (Addison-Wesley, 1995).
C++ Primer, Third Edition, Stanley B. Lippman and Josee Lajoie (Addison-Wesley, 1998).
Effective C++--50 Ways to Improve Your Programs and Designs, Second Edition, Scott Meyers (Addison-Wesley, 1998).
More Effective C++--35 Ways to Improve Your Programs and Designs, Scott Meyers (Addison-Wesley, 1996).
Visit the Sun Developer Network Sun Studio portal at http://developers.sun.com/prodtech/cc to find these frequently updated resources:
The Sun Studio portal is one of a number of additional resources for developers at the Sun Developer Network website, http://developers.sun.com.
If you have technical questions about this product that are not answered in this document, go to:
Sun is interested in improving its documentation and welcomes your comments and suggestions. Submit your comments to Sun at this URL:
Please include the part number of the document in the subject line of your email. For example, the part number for this document is 819-3690-10.