Sponsored Content
Top Forums Programming Is gcc compliant with the C++ standards Post 302339399 by Corona688 on Thursday 30th of July 2009 11:30:54 AM
Old 07-30-2009
Quote:
Originally Posted by hthapar
Hello Friends,

I am a newbie and have started using different compilers and tools to make myself familiar with their workings. I wanted to know that how compliant is gcc with the C++ standards. It is pretty obvious that no compiler is close to being completely compliant, but if there are some things which are not according to the ANSI/ISO standard; what are they in gcc?

I will be very grateful if someone who is an expert user of gcc can answer this doubt of mine?

Regards.
gcc can be told comply with standards, lots of them. Pick your favorite:
Code:
$ man gcc

GCC(1)                                GNU                               GCC(1)



NAME
       gcc - GNU project C and C++ compiler

SYNOPSIS
       gcc [-c|-S|-E] [-std=standard]
           [-g] [-pg] [-Olevel]
           [-Wwarn...] [-pedantic]
           [-Idir...] [-Ldir...]
           [-Dmacro[=defn]...] [-Umacro]
           [-foption...] [-mmachine-option...]
           [-o outfile] infile...

       Only the most useful options are listed here; see below for the remain-
       der.  g++ accepts mostly the same options as gcc.

...

       -std=
           Determine the language standard.  This option is currently only
           supported when compiling C or C++.  A value for this option must be
           provided; possible values are

           c89
           iso9899:1990
               ISO C90 (same as -ansi).

           iso9899:199409
               ISO C90 as modified in amendment 1.

           c99
           c9x
           iso9899:1999
           iso9899:199x
               ISO C99.  Note that this standard is not yet fully supported;
               see <http://gcc.gnu.org/gcc-4.1/c99status.html> for more infor-
               mation.  The names c9x and iso9899:199x are deprecated.

           gnu89
               Default, ISO C90 plus GNU extensions (including some C99 fea-
               tures).

           gnu99
           gnu9x
               ISO C99 plus GNU extensions.  When ISO C99 is fully implemented
               in GCC, this will become the default.  The name gnu9x is depre-
               cated.

           c++98
               The 1998 ISO C++ standard plus amendments.

           gnu++98
               The same as -std=c++98 plus GNU extensions.  This is the
               default for C++ code.

           Even when this option is not specified, you can still use some of
           the features of newer standards in so far as they do not conflict
           with previous C standards.  For example, you may use "__restrict__"
           even when -std=c99 is not specified.

           The -std options specifying some version of ISO C have the same
           effects as -ansi, except that features that were not in ISO C90 but
           are in the specified version (for example, // comments and the
           "inline" keyword in ISO C99) are not disabled.

gcc also has lots of language extensions, but you don't need to use them.
 

8 More Discussions You Might Find Interesting

1. UNIX for Dummies Questions & Answers

Standards

I have been asked to put together some coding standards for the project I am assigned to. I have found documented standards for C/C++, Java but was wondering if there is a good place for UNIX scripting (Korn/Bourne) standards? Does anyone know of a good place to find information on scripting... (3 Replies)
Discussion started by: google
3 Replies

2. Programming

UNIX version standards

I'm new to UNIX programming. I'm used to starting my program's versions at 1.0, but I look at all the UNIX programs out there and see things like 0.000.1 or 3.3.000 and I'm wondering what these things really mean. Do people just type anything they feel in there? Are things in pre-release... (6 Replies)
Discussion started by: hirni
6 Replies

3. Solaris

Security Standards...

Hi All, Thanks in advance for reading and any posts. I was wondering if anyone has come across or can recomend or has any security standards that we could implement. We are running production Oracle systems on Solaris 8 boxes (which are global). We are after security considerations... (4 Replies)
Discussion started by: B14speedfreak
4 Replies

4. Solaris

Installing gcc - recieve error message gcc : cannot execute

AIM- Install Oracle 11g on Solaris using VMWare Steps 1.Logged on as root 2.Created subfolders à /usr/local/bin & /usr/local/bin/gcc 3.Downloaded gcc & libiconv & unzipped them on my harddrive & burnt them on CD 4.Copied files from CD to /usr/local/bin/gcc 5.Terminal (root) à pkgadd -d... (8 Replies)
Discussion started by: Ackers
8 Replies

5. UNIX for Dummies Questions & Answers

Making times mysql compliant

I have the following file: Loc1,20080102,230100,0.5617,0.5617 Loc1,20080102,230400,0.5616,0.5616 Loc1,20080102,230700,0.5615,0.5615 Then I use the following code to turn the third column into something which to mysql has the time datatype: sed -i '' -e "s#,\(..\)\(..\)\(..\),#,\1:\2:\3,#"... (2 Replies)
Discussion started by: figaro
2 Replies

6. Shell Programming and Scripting

Logical expression in POSIX compliant Korn Shell

Hi, i want to check if a variable var1 is not a or b or c pseudo code: If NOT (var1 = a or var1 = b or var1 = c) then ... fi I want to use POSIX complaint Korn shell, and for string comparison For the following code, logical.sh #!/usr/bin/ksh var="j" echo "Var : $var" if ! { || ||... (12 Replies)
Discussion started by: ysrini
12 Replies

7. Shell Programming and Scripting

Q: Is SQRT(n) possible in a POSIX compliant shell? A: Yes within limits.

Hi all... This is just a fun project to see if it is possible to get a square root of a positive integer from 1 to 9200000 to 6 decimal places on a 64 bit architecture machine. It is coded around dash and the results show the values from 0 to 10000. Complex numbers can easily be catered for by... (3 Replies)
Discussion started by: wisecracker
3 Replies

8. OS X (Apple)

Generate a random number in a fully POSIX compliant shell, 'dash'...

Hi all... Apologies for any typos, etc... This took a while but it didn't beat me... Although there are many methods of generating random numbers in a POSIX shell this uses integer maths and a simple C source to create an executable to get epoch to microseconds accuracy if it is needed. I take... (8 Replies)
Discussion started by: wisecracker
8 Replies
sb2-init(1)							 sb2-init man page						       sb2-init(1)

NAME
sb2-init - initialize a target for scratchbox2 SYNOPSIS
sb2-init [OPTION]... [TARGETNAME] [COMPILER[:SPECS]] [SECONDARY_COMPILER...] DESCRIPTION
sb2-init initializes a target for scratchbox2. If no options or other parameters are given, already initialized targets are listed. A scratchbox2 target is simply a light-weight, symbolic name for a configuration set. A target does not contain anything that is active, like running processes; hence a user never "works inside a target". Instead, sessions are used for all active operations. Sessions are created by the sb2 command. sb2-init is expected to be run in the directory you want to use as the target root filesystem. TARGETNAME is the name of the target to initialize. If it refers to an existing target, then the target is re-initialized. Otherwise a new one is created. COMPILER is full path to a cross-compiler (gcc), of the form $HOME/arm-2006q3/bin/arm-linux-gcc. An optional SPECS parameter is path to the compiler specs file. If more than one compiler is specified, additional compilers are available by version number (e.g. if the primary is known as "gcc" and "gcc-4.1", the secondary may be "gcc-3.4", etc) Note that the compiler is usually used during the target creation process to determine CPU architecture of the target system. OPTIONS
-c "command" specify cpu transparency command, for example: "qemu-arm", "sbrsh" or "qemu-arm -R 256M". CPU transparency method is the program which is used to execute foreign binaries, that the host computer can not execute directly. -p "command" specify cpu transparency command for staticly linked native binaries. -r [hostname] generate sbrsh config using remote device address -l [hostname] NFS server/localhost address seen by remote device -d set target as default scratchbox2 target (default target can also be set later with the sb2-config command) -m [mapping_mode] use mapping_mode as default. Default for this is "simple" -h Print help. -n don't build libtool for the target -N don't generate localization files for the target -s skip checks for target root's /usr/include etc. -t [tools_dir] set directory containing the build tools distribution -C "options" add extra options for the compiler, for example: -C "-fgnu89-inline" -A arch manually override target architecture -M arch manually override machine name (see uname(2)). This defaults to the target architecture (see option -A) -v display version EXAMPLES
mkdir $HOME/buildroot cd $HOME/buildroot [fetch a rootfs from somewhere and extract it here] sb2-init -c qemu-arm TARGET /path/to/cross-compiler/bin/arm-linux-gcc FILES
$HOME/.scratchbox2/* SEE ALSO
sb2(1), sb2-config(1), qemu(1) BUGS
No known bugs at this time. AUTHORS
Lauri T. Aarnio 2.2 17 December 2010 sb2-init(1)
All times are GMT -4. The time now is 03:52 PM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy