Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.lang.c++ > #10999

Help with post-increment and sequence points

From laird@lbreyer.com
Newsgroups comp.lang.c++
Subject Help with post-increment and sequence points
Date 2011-10-20 00:23 -0700
Organization http://groups.google.com
Message-ID <26287949.549.1319095405219.JavaMail.geo-discussion-forums@prfp13> (permalink)

Show all headers | View raw


#include <iostream>
int main() {
  int i = 1;
  std::cout << i << i++ << i << "\n";
}

Compiling this code in g++ prints out 212 . Is this correct? If so, I don't understand why. 

Shouldn't this actually be equivalent to f(f(f(f(std::cout,i),i++),i),"\n") where f is operator<< ? In that case, each time a function is entered, there should be a sequence point which makes the side effects happen. So I'd expect the output to be 112 instead. 

% g++ --version
g++ (Debian 4.6.1-4) 4.6.1

Best regards,
Laird Breyer

Back to comp.lang.c++ | Previous | Next — Next in thread | Find similar | Unroll thread


Thread

Help with post-increment and sequence points laird@lbreyer.com - 2011-10-20 00:23 -0700
  Re: Help with post-increment and sequence points Leigh Johnston <leigh@i42.co.uk> - 2011-10-20 12:57 +0100
  Re: Help with post-increment and sequence points softwareEngineer <ovNOSPAM@NOSPAMlibero.it> - 2011-10-20 14:16 +0200
  Re: Help with post-increment and sequence points Victor Bazarov <v.bazarov@comcast.invalid> - 2011-10-20 08:26 -0400
    Re: Help with post-increment and sequence points Nick Keighley <nick_keighley_nospam@hotmail.com> - 2011-10-20 06:06 -0700
      Re: Help with post-increment and sequence points Victor Bazarov <v.bazarov@comcast.invalid> - 2011-10-20 09:50 -0400
    Re: Help with post-increment and sequence points laird@lbreyer.com - 2011-10-20 14:16 -0700
  Re: Help with post-increment and sequence points Markus Wichmann <nullplan@gmx.net> - 2011-10-20 18:09 +0200

csiph-web