summaryrefslogtreecommitdiff
path: root/gcc/testsuite/g++.dg/cpp1z/eval-order2.C
blob: 95dd10648f624bc31d92707a106847b69483042a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
// P0145R2: Refining Expression Order for C++
// { dg-do run }
// { dg-options "-std=c++17" }

#include <string>
#define assert(X) if (!(X)) __builtin_abort();

int main()
{
  std::string s = "but I have heard it works even if you don't believe in it" ;
  s.replace(0, 4, "" ).replace( s.find( "even" ), 4, "only" )
    .replace( s.find( " don't" ), 6, "" );

  assert( s == "I have heard it works only if you believe in it" ) ;
}