The issue is located to perl.h, not XSUB.h:

#include "perl.h" #include <iostream> int main() { std::cout << "foo" << std::endl; }
and compile with:
D:\mydoc\projects\GenoEye-0.4.5-build\perl>g++ -ID:/gtk+-2.24.10/inclu +de/cairo -ID:/gtk+-2.24.10/include/glib-2.0 -ID:/gtk+-2.24.10/ lib/glib-2.0/include -ID:/gtk+-2.24.10/include -ID:/gtk+-2.24.10/inclu +de/freetype2 -ID:/gtk+-2.24.10/include/libpng14 -ID:/mydoc/pro jects/GenoEye-0.4.5-Source/src -ID:/mydoc/projects/GenoEye-0.4.5-build +/src -ID:/mydoc/projects/GenoEye-0.4.5-Source -ID:/Strawberry- 5.20.1.1-ia32/perl/lib/CORE -ID:/mydoc/projects/GenoEye-0.4.5-Source/p +erl -g -o test.exe test.cpp

it will reproduce this issue. Also, add #undef write before #include <iostream> won't help.

However, this conflict do not reproduce if I use Inline::CPP. The code below works well:

use strict; use Inline 'CPP' => config => BUILD_NOISY => 1, INC => '-ID:/mydoc/projects/GenoEye-0.4.5-Source/src -ID:/mydoc/p +rojects/GenoEye-0.4.5-Source/perl -ID:/gtk+-2.24.10/include/cairo'; foobar(); use Inline 'CPP' => <<'CODE'; #include <perl.h> #include <iostream> void foobar() { std::cout << "foobar" << std::endl; } CODE
Why there's such big difference? I cannot understand it...

In reply to Re^2: Name conflict between MinGW C++ standard library header and Perl development header by llancet
in thread Name conflict between MinGW C++ standard library header and Perl development header by llancet

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post, it's "PerlMonks-approved HTML":



  • Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
  • Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
  • Read Where should I post X? if you're not absolutely sure you're posting in the right place.
  • Please read these before you post! —
  • Posts may use any of the Perl Monks Approved HTML tags:
    a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
  • You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
            For:     Use:
    & &amp;
    < &lt;
    > &gt;
    [ &#91;
    ] &#93;
  • Link using PerlMonks shortcuts! What shortcuts can I use for linking?
  • See Writeup Formatting Tips and other pages linked from there for more info.