On Mon, 1 Apr 2013, James Carlson wrote:
On 04/01/13 14:29, Apostolos Syropoulos wrote:
Hello everybody,
I was trying to compile a program and one file failed to compile
with g++ 4.7.2 but it compiles with CC: Sun C++ 5.12 SunOS_i386 2011/11/16.
The real question here might be why Sun's compiler doesn't gag.
using namespace std;
namespace KPS {
extern "C" {
#include <string.h> //it includes another header that eventually
} // included this header.
}
I think that begs a bit of a question: why would you want to include any
header file (even one in your own application) within a namespace {}
block? That sounds to me like an open invitation to hard-to-understand
problems.
I have a project which has done this since 1998. It has never caused
a problem across many platforms and C++ compilers. The reason to do
so is to divert the globally-visible symbols into a private namespace
where they don't cause harm and they may be privately used. This
helps with C symbols but not with macros.
The extra extern "C" might be causing a problem, and as others
mentioned, including <cstring> includes the C string functions in the
std namespace.
Bob
--
Bob Friesenhahn
bfrie...@simple.dallas.tx.us, http://www.simplesystems.org/users/bfriesen/
GraphicsMagick Maintainer, http://www.GraphicsMagick.org/
_______________________________________________
OpenIndiana-discuss mailing list
OpenIndiana-discuss@openindiana.org
http://openindiana.org/mailman/listinfo/openindiana-discuss