Type-Name conflict when using Axis2C in combination with VisualStudio/VC98 XMemory and Utility ----------------------------------------------------------------------------------------------
Key: AXIS2C-1256 URL: https://issues.apache.org/jira/browse/AXIS2C-1256 Project: Axis2-C Issue Type: Bug Affects Versions: 1.5.0 Environment: Windows XP Service Pack 2 Microsoft Visual C++ 6.0 Axis2c 1.5.0 Reporter: Schmidt Priority: Minor Hi, I had a problem compiling a project in Visual C++ 6.0 as there is a name conflict within several files. The included files ...VC98/includes/xmemory.h and ...VC98/includes/utility.h define template classes of name "allocator", "iterator" and "map". As the exact naming is also used in some Axis header files as parameter attribute names, several compiler errors occur (parameter name is interpreted as class of type allocator/iterator/map). I'm not sure, if this could be considered as a bug in Axis (cause the real problem is the blundering naming of the classes in Visual Studio). I do also not know how this is handled by newer versions of Visual Studio, as I have no possibilities to test this on my machine. I fixed the problem on my local machine by adding a suffix to all affected parameters in the Axis header files. After that everything was compiling just fine. See attached log file excerpt gives an overview of affected header files. ----- Log File Excerpt ----- d:\axis2c-bin-1.5.0-win32\include\axutil_allocator.h(130) : error C2955: 'allocator' : use of class template requires template argument list c:\program files\microsoft visual studio\vc98\include\xmemory(72) : see declaration of 'allocator' d:\axis2c-bin-1.5.0-win32\include\axutil_allocator.h(140) : error C2955: 'allocator' : use of class template requires template argument list c:\program files\microsoft visual studio\vc98\include\xmemory(72) : see declaration of 'allocator' d:\axis2c-bin-1.5.0-win32\include\axutil_allocator.h(154) : error C2955: 'allocator' : use of class template requires template argument list c:\program files\microsoft visual studio\vc98\include\xmemory(72) : see declaration of 'allocator' d:\axis2c-bin-1.5.0-win32\include\axutil_allocator.h(168) : error C2955: 'allocator' : use of class template requires template argument list c:\program files\microsoft visual studio\vc98\include\xmemory(72) : see declaration of 'allocator' d:\axis2c-bin-1.5.0-win32\include\axutil_log.h(196) : error C2955: 'allocator' : use of class template requires template argument list c:\program files\microsoft visual studio\vc98\include\xmemory(72) : see declaration of 'allocator' d:\axis2c-bin-1.5.0-win32\include\axutil_thread.h(77) : error C2955: 'allocator' : use of class template requires template argument list c:\program files\microsoft visual studio\vc98\include\xmemory(72) : see declaration of 'allocator' d:\axis2c-bin-1.5.0-win32\include\axutil_thread.h(99) : error C2955: 'allocator' : use of class template requires template argument list c:\program files\microsoft visual studio\vc98\include\xmemory(72) : see declaration of 'allocator' d:\axis2c-bin-1.5.0-win32\include\axutil_thread.h(111) : error C2955: 'allocator' : use of class template requires template argument list c:\program files\microsoft visual studio\vc98\include\xmemory(72) : see declaration of 'allocator' d:\axis2c-bin-1.5.0-win32\include\axutil_thread.h(124) : error C2955: 'allocator' : use of class template requires template argument list c:\program files\microsoft visual studio\vc98\include\xmemory(72) : see declaration of 'allocator' d:\axis2c-bin-1.5.0-win32\include\axutil_thread.h(149) : error C2955: 'allocator' : use of class template requires template argument list c:\program files\microsoft visual studio\vc98\include\xmemory(72) : see declaration of 'allocator' d:\axis2c-bin-1.5.0-win32\include\axutil_thread.h(197) : error C2955: 'allocator' : use of class template requires template argument list c:\program files\microsoft visual studio\vc98\include\xmemory(72) : see declaration of 'allocator' d:\axis2c-bin-1.5.0-win32\include\axutil_thread_pool.h(102) : error C2955: 'allocator' : use of class template requires template argument list c:\program files\microsoft visual studio\vc98\include\xmemory(72) : see declaration of 'allocator' d:\axis2c-bin-1.5.0-win32\include\axutil_env.h(90) : error C2955: 'allocator' : use of class template requires template argument list c:\program files\microsoft visual studio\vc98\include\xmemory(72) : see declaration of 'allocator' d:\axis2c-bin-1.5.0-win32\include\axutil_env.h(114) : error C2955: 'allocator' : use of class template requires template argument list c:\program files\microsoft visual studio\vc98\include\xmemory(72) : see declaration of 'allocator' d:\axis2c-bin-1.5.0-win32\include\axutil_env.h(127) : error C2955: 'allocator' : use of class template requires template argument list c:\program files\microsoft visual studio\vc98\include\xmemory(72) : see declaration of 'allocator' d:\axis2c-bin-1.5.0-win32\include\axutil_env.h(142) : error C2955: 'allocator' : use of class template requires template argument list c:\program files\microsoft visual studio\vc98\include\xmemory(72) : see declaration of 'allocator' d:\axis2c-bin-1.5.0-win32\include\axis2_ctx.h(139) : error C2955: 'map' : use of class template requires template argument list c:\program files\microsoft visual studio\vc98\include\map(140) : see declaration of 'map' d:\axis2c-bin-1.5.0-win32\include\axiom_children_iterator.h(62) : error C2955: 'iterator' : use of class template requires template argument list c:\program files\microsoft visual studio\vc98\include\utility(71) : see declaration of 'iterator' d:\axis2c-bin-1.5.0-win32\include\axiom_children_iterator.h(76) : error C2955: 'iterator' : use of class template requires template argument list c:\program files\microsoft visual studio\vc98\include\utility(71) : see declaration of 'iterator' d:\axis2c-bin-1.5.0-win32\include\axiom_children_iterator.h(89) : error C2955: 'iterator' : use of class template requires template argument list c:\program files\microsoft visual studio\vc98\include\utility(71) : see declaration of 'iterator' d:\axis2c-bin-1.5.0-win32\include\axiom_children_iterator.h(100) : error C2955: 'iterator' : use of class template requires template argument list c:\program files\microsoft visual studio\vc98\include\utility(71) : see declaration of 'iterator' d:\axis2c-bin-1.5.0-win32\include\axiom_children_iterator.h(112) : error C2955: 'iterator' : use of class template requires template argument list c:\program files\microsoft visual studio\vc98\include\utility(71) : see declaration of 'iterator' d:\axis2c-bin-1.5.0-win32\include\axiom_children_qname_iterator.h(58) : error C2955: 'iterator' : use of class template requires template argument list c:\program files\microsoft visual studio\vc98\include\utility(71) : see declaration of 'iterator' d:\axis2c-bin-1.5.0-win32\include\axiom_children_qname_iterator.h(73) : error C2955: 'iterator' : use of class template requires template argument list c:\program files\microsoft visual studio\vc98\include\utility(71) : see declaration of 'iterator' d:\axis2c-bin-1.5.0-win32\include\axiom_children_qname_iterator.h(87) : error C2955: 'iterator' : use of class template requires template argument list c:\program files\microsoft visual studio\vc98\include\utility(71) : see declaration of 'iterator' d:\axis2c-bin-1.5.0-win32\include\axiom_children_qname_iterator.h(97) : error C2955: 'iterator' : use of class template requires template argument list c:\program files\microsoft visual studio\vc98\include\utility(71) : see declaration of 'iterator' d:\axis2c-bin-1.5.0-win32\include\axiom_child_element_iterator.h(52) : error C2955: 'iterator' : use of class template requires template argument list c:\program files\microsoft visual studio\vc98\include\utility(71) : see declaration of 'iterator' d:\axis2c-bin-1.5.0-win32\include\axiom_child_element_iterator.h(67) : error C2955: 'iterator' : use of class template requires template argument list c:\program files\microsoft visual studio\vc98\include\utility(71) : see declaration of 'iterator' d:\axis2c-bin-1.5.0-win32\include\axiom_child_element_iterator.h(80) : error C2955: 'iterator' : use of class template requires template argument list c:\program files\microsoft visual studio\vc98\include\utility(71) : see declaration of 'iterator' d:\axis2c-bin-1.5.0-win32\include\axiom_child_element_iterator.h(91) : error C2955: 'iterator' : use of class template requires template argument list c:\program files\microsoft visual studio\vc98\include\utility(71) : see declaration of 'iterator' d:\axis2c-bin-1.5.0-win32\include\platforms\windows\axutil_thread_windows.h(58) : error C2955: 'allocator' : use of class template requires template argument list c:\program files\microsoft visual studio\vc98\include\xmemory(72) : see declaration of 'allocator' d:\axis2c-bin-1.5.0-win32\include\platforms\windows\axutil_thread_windows.h(82) : error C2955: 'allocator' : use of class template requires template argument list c:\program files\microsoft visual studio\vc98\include\xmemory(72) : see declaration of 'allocator' d:\axis2c-bin-1.5.0-win32\include\platforms\windows\axutil_thread_windows.h(90) : error C2955: 'allocator' : use of class template requires template argument list c:\program files\microsoft visual studio\vc98\include\xmemory(72) : see declaration of 'allocator' d:\axis2c-bin-1.5.0-win32\include\platforms\windows\axutil_thread_windows.h(116) : error C2955: 'allocator' : use of class template requires template argument list c:\program files\microsoft visual studio\vc98\include\xmemory(72) : see declaration of 'allocator' d:\axis2c-bin-1.5.0-win32\include\axutil_log_default.h(47) : error C2955: 'allocator' : use of class template requires template argument list c:\program files\microsoft visual studio\vc98\include\xmemory(72) : see declaration of 'allocator' d:\axis2c-bin-1.5.0-win32\include\axutil_log_default.h(56) : error C2955: 'allocator' : use of class template requires template argument list c:\program files\microsoft visual studio\vc98\include\xmemory(72) : see declaration of 'allocator' d:\axis2c-bin-1.5.0-win32\include\axutil_error_default.h(44) : error C2955: 'allocator' : use of class template requires template argument list c:\program files\microsoft visual studio\vc98\include\xmemory(72) : see declaration of 'allocator' d:\axis2c-bin-1.5.0-win32\include\axiom_children_with_specific_attribute_iterator.h(52) : error C2955: 'iterator' : use of class template requires template argument list c:\program files\microsoft visual studio\vc98\include\utility(71) : see declaration of 'iterator' d:\axis2c-bin-1.5.0-win32\include\axiom_children_with_specific_attribute_iterator.h(66) : error C2955: 'iterator' : use of class template requires template argument list c:\program files\microsoft visual studio\vc98\include\utility(71) : see declaration of 'iterator' d:\axis2c-bin-1.5.0-win32\include\axiom_children_with_specific_attribute_iterator.h(79) : error C2955: 'iterator' : use of class template requires template argument list c:\program files\microsoft visual studio\vc98\include\utility(71) : see declaration of 'iterator' d:\axis2c-bin-1.5.0-win32\include\axiom_children_with_specific_attribute_iterator.h(90) : error C2955: 'iterator' : use of class template requires template argument list c:\program files\microsoft visual studio\vc98\include\utility(71) : see declaration of 'iterator' d:\axis2c-bin-1.5.0-win32\include\axiom_soap_builder.h(189) : error C2955: 'map' : use of class template requires template argument list c:\program files\microsoft visual studio\vc98\include\map(140) : see declaration of 'map' -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online. --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]