Partial template specialization failure

The code below fails to compile with the compiler version Sun C++ 5.9 SunOS_i386 Patch 124864-10 2009/02/03
bash-3.00$ CC -library=stlport4 /tmp/junk.cc -o /tmp/junk
"/tmp/junk.cc", line 17: Error: Multiple declaration for is_equal_size<std::string, void>::value().
"/tmp/junk.cc", line 21: Where: While specializing "is_equal_size<std::string, void>".
"/tmp/junk.cc", line 21: Where: Specialized in non-template code.
<same errors for all instantiated permutations>
#include "iostream"
#include "string"
template <typename T, typename U> struct is_equal_size {
bool value() { return sizeof(T) == sizeof(U); }
template <> struct is_equal_size<void, void> {
bool value() { return true; }
template <typename U> struct is_equal_size<void, U> {
bool value() { return false; }
template <typename T> struct is_equal_size<T, void> {
bool value() { return false; }
int main() {
struct is_equal_size<std::string, void> sv;
struct is_equal_size<void, void> vv;
struct is_equal_size<void, std::string> vs;
struct is_equal_size<std::string, std::string> ss;
std::cout << sv.value() << std::endl;
std::cout << vv.value() << std::endl;
std::cout << vs.value() << std::endl;
std::cout << ss.value() << std::endl;
return 0;
}

Yes, this appears to be a bug in the C++ compiler. Please file a bug report at
[http://bugs.sun.com]
For the test case, neither iostream nor std::string class is needed to demonstrate the bug. Please use a dummy struct instead of std::string, and remove the iostream I/O. Then you don't need to include any headers.
BTW, when posting code here in the Forum, please put the source code inside code tags. Although this particular example was readable, in general the Forum software will otherwise interpret special characters as formatting directives.

Similar Messages

  • Template specialization question

    Hi,
    I'm trying to move our current product, which is compiled of a set of UNIX platforms, from the Apogee compiler to Forte 7. One area that I have hit an issue with is our use of template specialization. I have been researching to figure out exactly what Forte 7 needs but can't seem to make things compile correctly. Here is what we currently have for a definition that compiles on a number of other platforms:
    template <typename TYPE_T>
    class gen_type_t
    public:
         typedef TYPE_T type_t;
         typedef int measure_t;
         typedef gen_default_format_t<csText, TYPE_T> text_format_t;
         static char const* name(void);
    static int compare(TYPE_T const& lhs, TYPE_T const& rhs);
         static size_t     hash(TYPE_T const& value);
         static measure_t measure(TYPE_T const& value);
         static csText     as_text(TYPE_T const& value)
              text_format_t format;
              return format.as_text(value);
    Here is one implementation of the "compare" function for one type.
    template<> int gen_type_t<cstring_t>::compare (cstring_t const& lhs,
    cstring_t const& rhs)
    {  // line 44
    int diff = evstrcmp(lhs, rhs);
    return (diff < 0) ? gen_lhs_lt_rhs
              : ((diff > 0)
              ? gen_lhs_gt_rhs
                   : gen_lhs_eq_rhs);
    The compiler gives the following error when the code is compiled. Line 44 is the open bracket, {, just after the implementation of compare (cstring_t is typedef'd to a char *).
    "gen_type.cxx", line 44: Error: static gen_type_t<const char*>::compare(const char*const&, const char*const&) already had a body defined.
    Any suggestions on what may need to be changed to make this work for Forte 7?
    Thanks for your help!
    - Bill

    It's probably a compiler bug. I tried adding enough dummy type declarations to allow your code fragments to compile, but I could not reproduce the error message.
    If you post a self-contained compilable example that illustrates the error, I can tell you more.
    If you have a Sun Service contract, send the example to your service rep; you'll get better service.

  • Partial Hard Drive failure??

    I turned my Envy13 on it gave my a black screen with a 3F0 missing boot device message.  I reseated the SSD hard drive.  The hard drive test says everything is OK, but only the "X" restore partition shows up and the "C" partition is completely missing.  And what I mean by missing is that all the hard drive except the "X" partition doesn't show up.  The win7 install program says my that I only have an 8gb harddrive in there.  Is it possible to have a partial HD failure contained to only one partition?

    I have seen it. The faiure is not in the part of the drive not being recognized but in the electronics. The drive is bad and must be replaced. The only other thing you can try is a zero fill or what is sometimes erroneously called a "low level format". You can try to run a dban format on it with multiple passes and see if you can get it to see the whole capacity.
    http://www.dban.org/download

  • Collaboration Room Template Rebuild Failure

    I was trying to rebuild a room template by using the same name. So what I did was that I duplicated the old one and gave it a unique name and deleted the old one. Then I tried to create a new template using the same name as the one I just deleted. It didn't let me move to the next step and gave an error message saying no valid name specified. The old template is gone no longer to be found nowhere not even in the backend. Any advice. Thanks

    I was able to Delete the Room Template and create a new one with the same Name as the Room Template deleted before.
    Steps:
    1. Delete Room Template
    2. Go to PCD Inspector
    3. In PCD Inspector Navigate to Portal Content > com.sap.ip.collaboration > RoomTemplateVersion
    4. Delete the Folder of the Template you just deleted
    5. Create a new Template with the Name of the Room Template created before
    It should work fine. I've done it twice.
    Point's appreciated

  • Future support for C++0x in Sun Studio

    I've recently been having to defend my choice of using the sun studio compiler against several gcc advocates here in the office. The one reasonable issue they keep bringing up is when the upcoming C++0x (more like C++1x or even C++2x at the pace the standards committee is operating at) features will be available in complete fashion in sun studio. They say, and I have to begrudgingly agree, that judging by the amount of time it took studio to support boost (template templates, certain partial template specializations, etc), there could be a long delay between the release of gcc's C++0x support and that of studio's.
    I understand that many of the new features of C++0x, even from initial glance, appear to be quite complicated, especially lambda functors and their associated []/auto return types, variadac template parameters and class concept checking. In addition, I understand gcc has an unfair advantage so to speak since it is being used as the test bed for many of the committee proposal submitter's proof-of-concept implementations (the variadic template parameter feasibility implementation written for gcc comes to mind).
    Could a developer please assuage my fears and inform me that the studio team has a roadmap/timeframe in place to release a studio that fully supports the new language-level features in a reasonably competitive time frame? It apparently will be the responsibility of the STLPort team to essentially copy many of boost's libraries (shared_ptrs, random numbers, type_traits) and rename them and move them to the std namespace and also supply the new unordered<> containers, to name a few.
    I for one can't wait until boost::mpl, boost::fusion, boost::format and others are all reduced from 10's of 1000's of lines of pre-processor generated crufty template definitions to a single variadic template declaration. Also, I won't feel quite so willfully derelict to efficient code every time i bust out an std::for_each and drop in a boost::bind generated functor and instead can use a lambda function with the various efficiency gains ranging from direct referencing to the stack variables passed in as the closure arguments to the ability for the compiler to actually inline the body of the lambda function where appropriate.
    I'm in no way trying to accuse you compiler developers of being slow to implement features, but just would like to be assured that there is nothing to worry about and there is a plan and current work being done on the required features. I know it's still a couple of years off, but I personally can't wait to replace hundreds of lines of boost::bind() calls with their more efficent lambda equivalent, and in addition clean up interfaces that could have used boost::bind if it weren't for the unacceptable overhead introduced often executed blocks of code.
    Thanks,
    Chris Knight - Faithful sun studio user through at least 2 major name changes and since at lest when it was called Forte 4.2 and RougeWave and classicIO libraries roamed the earth in vast quantities.
    P.S. I truly fear that the other 3 major compilers (gnu, intel, ms) will be out the door with C++0x in around the same time and boost will then willingly drop support for the sun compiler if it doesn't support the required language features at that time as they had no problem not supporting studio at all until Studio 12 so I'm sure as soon as the 3 compilers they run nightly tests with support it, they'll be just as eager to
    make use of the new features as I am.
    This leaves someone who has based their entire system on Solaris + SunStudio + Boost in a potentially undesirable situation. Solaris is far too stable and Linux to ever-changing to ever consider Linux as a platform for critical systems yet the idea of running g++ on Solaris w/ gcc's propensity to change their ABI on a weekly basis gives me immediate heartburn.
    Thanks again.

    You raise some very good points, and believe me, we are even more aware of them than you are!
    Short answer: We are planning to bring out a compiler conforming to C++0X in a timely fashion.
    Longer answer:
    Right now, we are working on providing binary compatibility with g++ as an option in the next compiler release. When we are done, you will be able to use g++ headers with Sun C++, and link the code with binaries created by g++. The first implementation will be on Linux. (Which versions of g++ and which versions of Linux? Stay tuned.)
    Implementing all the new features of C++0X will require a re-design of parts of the compiler front end. The current compiler organization does not support "concepts", for example. (We've been looking for an excuse to re-design the front end for a while, and C++0x is not just an excuse -- it's a requirement.) With the g++ ABI work done, we'll ready to start the re-design, and begin to implement C++0x features.
    We won't release an official (stable, fully-supported) product with C++0X features until the standard is final. Until then, any feature could change in unpredictable ways. We got caught by that problem with C++ 4.2 and C++98 -- we implemented what we thought were final features that changed dramatically after we released the compiler. We won't do that again. Compiler stability is one of our most important considerations.
    Beginning some time next year, we expect to have Express releases with some C++0X features. Express releases are our way of providing compilers with experimental features that might not be stable yet. It gives our customers a chance to try them out and provide feedback before they become part of a stable release. That is to say, a feature flagged as experimental is subject to change, and compatibility with other Express or official releases is not guaranteed. We can therefore fix bugs and catch up with late changes in the Standard as necessary.
    We have not yet done all the planning for our C++0X compiler, so I can't give you any estimates about specific feature availability and time frames. When we are farther along, we'll post the road map on a public site, and I'll announce it here.
    Steve Clamage
    Sun C++ Team

  • FDK and FM 8: Internal Error: 8004, 6343724, 8484240, 0. FrameMaker has detected a serious problem a

    I use FDK9 and FrameMaker 8. I used Visual C++ 2008 Express Edition and Microsoft SDKs to compiled sample FDK hello.c program, C:\Program Files\Adobe\FDK9\samples\hello. It compliled just fine without error or warning message. I registered the hello.dll to fminit directory and added the line: "hello=Standard, Greets user at startup,fminit\hello.dll, all" to maker.ini. When I brought up FrameMaker I got error message:
    Internal Error: 8004, 6343724, 8484240, 0. FrameMaker has detected a serious problem and must quit.
    A file named fminit\hello.dll has been generated which contains
    information that may help Frame development improve the product for future releases.
    Please describe your recent actions and send this, along with the generated file,
    to [email protected] Due to the volume of feedback, we are unable to respond to technical questions.
    For support, please refer to http://www.adobe.com/support.
    Please help.
    Thank you,
    Thai Nguyen

    Thai,
    Here is what Wikipedia says:
    "In April 2003, Microsoft introduced a minor upgrade to Visual Studio .NET called Visual Studio .NET 2003, codenamed Everett (for the city of the same name). It includes an upgrade to the .NET Framework, version 1.1, and is the first release to support for developing programs for mobile devices, using either ASP.NET or the .NET Compact Framework. The Visual C++ compiler's standards-compliance was improved, especially in the area of partial template specialization. Visual C++ Toolkit 2003 is a free version of the same C++ compiler shipped with Visual Studio .NET 2003 without the IDE, though it is no longer available and now superseded by the Express Editions. The internal version number of Visual Studio .NET 2003 is version 7.1 while the file format version is 8.0."
    I think you should be OK with the later compiler. I don't know what is causing the crash, though. Perhaps you might consider setting up a new workspace according to the instructions in the Windows guide, then add hello.c to it, and see what happens. That would at least let you know if there is a compatibility problem with the sample, or if your current setup will simply not allow FDK9 development for FM8.
    By the way, there is a Yahoo group dedicated to FDK development. If you don't get an answer here, consider posting there. Some of the users on that list are considerably smarter than me about these types of issues.
    http://groups.yahoo.com/group/Frame_dev/
    Russ

  • Differnce between LibCstd and LibStlport

    Hi
    what is the main difference if we Build application with LibCStd and LibStlport

    libCstd is potentially probably more standard-conforming than STLport
    In fact the Apache stdcxx is derived from the same roots - libCstd is just an older version of RogueWave Standard C++ Library
    All the seemingly missing parts are actually implemented in the headers but switched off by configuration macros setup in <tt>/opt/solstudio12.2/prod/include/CC/Cstd/stdcomp.h</tt>
    The configuration is by no means obtained from the automatic script (as suggested in the header itself) and it presents <tt>CC</tt> as an incapable old-fashioned pre-standard compiler (like from the times of SPARCWorks) that does not understand many advanced template features needed for implementating full standard by the library
    One has three choices to unlock standard features in libCstd:
    <ol>
    <li> Edit the <tt>CC/Cstd/stdcomp.h</tt> and make the following macros undefined (easier by commenting out their definitions)
    </li>
    <li> Create a file named <tt>stdcomp.h</tt>, fill it with properly edited contents and add the path using <tt>-I</tt> directive. This will cause the compiler to use created file instead of the original </li>
    <li> Create a file named <tt>stdcomp.h</tt> that will <tt>#include</tt> the original and adjust the macros. As with 2. include path needs to be provided with <tt>-I</tt>
    The fixed <tt>stdcomp.h</tt> header should look like:
    #ifndef _FIXED_STDCOMP_INCLUDED_
    #define _FIXED_STDCOMP_INCLUDED_
    // Include the original
    #include <Cstd/stdcomp.h>
    // Clear offending macros
    #undef _RWSTD_NO_MEMBER_TEMPLATES
    #undef RWSTD_NO_MEMBER_TEMPLATES
    #undef _RWSTD_NO_SIMPLE_DEFAULT_TEMPLATES
    #undef _RWSTD_NO_COMPLEX_DEFAULT_TEMPLATES
    #undef _RWSTD_NO_FRIEND_TEMPLATES
    #undef RWSTD_NO_FRIEND_TEMPLATES
    #undef _RWSTD_NO_MEM_CLASS_TEMPLATES
    #undef RWSTD_NO_MEM_CLASS_TEMPLATES
    #undef _RWSTD_NO_TEMPLATE_TEMPLATE
    #undef RWSTD_NO_TEMPLATE_TEMPLATE
    #undef _RWSTD_NO_EXPLICIT_ARG
    #undef RWSTD_NO_EXPLICIT_ARG
    #undef _RWSTD_NO_STATIC_MEM_DEF
    #undef RWSTD_NO_STATIC_MEM_DEF
    #undef _RWSTD_NO_DEFAULT_FOR_TPARAM
    #undef RWSTD_NO_DEFAULT_FOR_TPARAM
    #undef _RWSTD_NO_PART_SPEC_OVERLOAD
    #undef RWSTD_NO_PART_SPEC_OVERLOAD
    #undef _RWSTD_NO_INIT_CONST_TEMPLATE_REF_ARG
    #undef RWSTD_NO_INIT_CONST_TEMPLATE_REF_ARG
    #undef _RWSTD_NO_CLASS_PARTIAL_SPEC
    #undef RWSTD_NO_CLASS_PARTIAL_SPEC
    #undef _RWSTD_NO_FUNC_PARTIAL_SPEC
    #undef RWSTD_NO_FUNC_PARTIAL_SPEC
    #undef _RWSTD_NO_TEMPLATE_ON_RETURN_TYPE
    #undef RWSTD_NO_TEMPLATE_ON_RETURN_TYPE
    // prevent the original from #define'ing the macros again
    #define RW_NEVER_ENTER_DEFAULT_HEADER_BLOCK 1
    // clear inclusion guard
    #undef __STD_RWCOMPILER_H__
    // include original once more
    #include <Cstd/stdcomp.h>
    // macro from stdcxx-4.x.x, used by vector<bool>
    #if defined(_RWSTD_ALLOCATOR) && !defined(_HPACC_)
    # define _RWSTD_REBIND(alloc, type) _TYPENAME alloc::template rebind<type>::other
    #else
    # define _RWSTD_REBIND(alloc, type) allocator_interface<alloc, type>
    #endif
    #endifDouble inclusion of original header is necessary because more macros will be defined after our #undefine's
    To prevent warnings about macros redefinition with second include more #undef's can be added, e.g. for <tt>RWSTDVER</tt>, <tt>RWSTD</tt> or <tt>__RWSTD</tt>
    The purpose of macro <tt>RWSTDREBIND</tt> will get clear in the following discussion. One may wish to add this definition if editing the original file in place.
    </li>
    </ol>
    No matter which solution is chosen there are a few other considerations:
    <ol>
    <li><tt>CC</tt> by default has implicit inclusion feature - it automatically includes files with template implementation during compilation. For a header <tt>name.extension</tt> it looks for files <tt>name.cc</tt> and <tt>name.cpp</tt> on include path and uses them without an explicit <tt>#include "name.cc"</tt>. This feature is used by <tt>libCstd</tt>, e.g. <tt><vector></tt> header includes <tt>vector.cc</tt> only if <tt>RWSTDCOMPILE_INSTANTIATE</tt> macro is defined (by default it is undefined).
    Though the feature is useful it may cause problems when a header named like one of the standard library is used (e.g. <tt><boost/container/vector.hpp></tt>). The compiler looks for an implementation file and uses the one from libCstd (<tt>CC/Cstd/vector.cc</tt> in this case). As the corresponding standard header has not been included it complains about defining methods for non-existing template class <tt>std::vector</tt>.
    If <tt>Boost.Container</tt> or other similar library is to be used one should add <tt>-template=no%extdef</tt> compiler option and define the macro <tt>RWSTDCOMPILE_INSTANTIATE</tt>.
    <li>Changes to <tt><stdcomp.h></tt> turns <tt>std::iterator_traits</tt> template on but the corresponding <tt>__iterator_category</tt> function specialization is missing. The best place for it is standard <tt><iterator></tt> header:
    #ifndef _ITERATOR_FIX_INCLUDED_
    #define _ITERATOR_FIX_INCLUDED_
    #include <Cstd/iterator>
    namespace _RW_STD {
    template<typename _IterT>
    inline typename iterator_traits<_IterT>::iterator_category
    __iterator_category(const _IterT&)
        return typename iterator_traits<_IterT>::iterator_category();
    #endif // _ITERATOR_FIX_INCLUDED_
    Note that the hacked file should be named <tt>iterator.SUNWCCh</tt> to be used by the compiler. CC does not include standard headers from files without that extension(of course one may edit <tt>CC/Cstd/iterator.SUNWCCh</tt> file directly)</li>
    <li>The changes unlock templatized constructor in <tt>std::pair</tt> class which can lead to ambiguity between overloads of <tt>insert</tt> methods of <tt>std::map</tt> container, namely
    pair<iterator, bool> insert(const value_type&);  // value_type is a typedef for pair<const key_type, mapped_type>
    pair<iterator, bool> insert(const pair<key_type, mapped_type>&);when called with an argument like <tt>std::make_pair(key, value)</tt> the compiler is not able to choose overload because the templatized <tt>pair</tt> constructor can convert between pairs that only differ in constantness of their components
    This time there is no <tt>#include</tt>-then-fix solution - one may edit the original <tt>CC/Cstd/map.SUNWCCh</tt> file or copy its contents to another location (again, remember about <tt>.SUNWCCh</tt> extension) and edit it there.
    The fix is to remove method
        pair<iterator, bool> insert (const pair<key_type, mapped_type> &__x)Best may be using conditional:
    #ifdef _RWSTD_NO_MEMBER_TEMPLATES
        pair<iterator, bool> insert (const pair<key_type, mapped_type> &__x)
    //... implementation
    #endifBe aware it is <tt>#ifdef</tt> here (not <tt>#ifndef</tt>) so the code gets excluded as <tt>RWSTDNO_MEMBER_TEMPLATES</tt> has been undefined
    </li>
    <li>With full partial template specialization support turned on we get into troubles with <tt>std::vector<bool></tt> class. The compiler complains that <tt>__first.p</tt> is inaccessible from <tt>vector<bool>::~vector()</tt> though <tt>vector<bool>::iterator</tt> contains friend class vector<bool, Allocator>;Changing that to friend class vector; fooled the compiler in full:
    >
    <tt>>> Assertion: (../lnk/ftemplate.cc, line 498)
    while processing libs/program_options/src/options_description.cpp at line 242</tt>
    >
    This looks like error in the compiler, in other contexts friend declarations in partially specialized classes work. When using <tt>CC</tt> compiler I found several times that a problematic code construct starts working in isolation.
    Returning to the <tt>std::vector<bool></tt> issue I found that putting the implementation from stdcxx 4.3.0 works. Thus one needs to edit (or copy and fix) <tt>CC/Cstd/vector.SUNWCCh</tt> and <tt>CC/Cstd/vector.cc</tt> files
    I provide here the changes for impatient, as this is not a direct copy-paste (some macros in 4.3.0 need changing to their 2.2.1 (i.e. libCstd) equivalents)
    In <tt>vector.SUNWCCh</tt> file replace vector<bool>specialization with
    #ifndef _RWSTD_NO_CLASS_PARTIAL_SPEC
    template <class _Allocator>
    class
    #else   // if defined (_RWSTD_NO_CLASS_PARTIAL_SPEC)
         // use a macro to mutate _Allocator into allocator<bool>
    # define _Allocator allocator<bool>
    _RWSTD_TEMPLATE
    class _RWSTDExport
    #endif  // _RWSTD_NO_CLASS_PARTIAL_SPEC
    vector<bool, _Allocator >: private _Allocator
        typedef _RWSTD_REBIND(_Allocator, unsigned int)       _C_value_alloc_type;
        typedef vector                                        _C_self;
    public:
        typedef _Allocator                                      allocator_type;
        typedef bool                                            value_type;
        typedef _TYPENAME allocator_type::size_type             size_type;
        typedef _TYPENAME allocator_type::difference_type       difference_type;
        typedef _TYPENAME _C_value_alloc_type::pointer          pointer;
        typedef _TYPENAME _C_value_alloc_type::const_pointer    const_pointer;
        class iterator;
        class const_iterator;
        class reference {
    #if !defined (__INTEL_COMPILER) || !defined (_MSC_VER)
            // avoid MSVC 6.0 bug 576
            friend class iterator;
    #else   // if Intel C++ 8.1 with MSVC
            // work around Intel C++ 8.1 bug 575
            friend class _C_self::iterator;
    #endif   // Intel C++ with MSVC
            friend class const_iterator;
        private:
            unsigned int* _C_p;
            unsigned int _C_mask;
            reference (unsigned int* __x, unsigned int __y)
                : _C_p (__x), _C_mask (__y) { }
        public:
            reference () : _C_p (), _C_mask () {}
            operator bool () const {
                return !!(*_C_p & _C_mask);
            reference& operator= (bool __x) {
                if (__x)     
                    *_C_p |= _C_mask;
                else
                    *_C_p &= ~_C_mask;
                return *this;
            reference& operator= (const reference& __x) {
                return *this = bool(__x);
    #ifndef _RWSTD_STRICT_ANSI
          bool operator== (const reference& __x) const {
              return bool(*this) == bool(__x);
          bool operator< (const reference& __x) const {
    #ifndef _MSC_VER
              return bool(*this) < bool(__x);
    #else
              return int(*this) < int(__x);
    #endif
            bool operator!= (const reference& __x) const {
                return !(*this == __x);
            bool operator> (const reference& __x) const {
                return  __x < *this;
            bool operator>= (const reference& __x) const {
                return !(*this < __x);
            bool operator<= (const reference& __x) const {
                return !(*this > __x);
    #endif // _RWSTD_STRICT_ANSI
            void flip () {
                *_C_p ^= _C_mask;
        typedef bool const_reference;
        // hacks working around bogus g++ 2.95.2 warnings coming out of
        // iterators below as well as what's probably an MSVC 6.0 bug
        typedef reference       _C_ref;
        typedef const_reference _C_const_ref;
        typedef difference_type _C_diff_t;
        class _C_iter {
            friend class iterator;
            friend class const_iterator;
        private:
    #if defined (__GNUG__)
            // gcc 3.0.1 and prior take 14.5.3, p9 literally
        public:
    #elif    defined (_MSC_VER) && _MSC_VER <= 1300 || defined (__APOGEE__)
            friend class vector<bool, _Allocator>;
    #else
            friend class vector;
    #endif
            unsigned int* _C_p;        // pointer to the current word
            unsigned int  _C_offset;   // number of the pointed-to bit
            _C_iter (unsigned int* __x = 0, unsigned int __y = 0)
                : _C_p (__x), _C_offset (__y) { }
            // On Sun, gcc 3.1 does generate an incorrect copy constructor
            // that has as an effect an incompletely/incorrectly initialized
            // iterator.
    #if    defined (__sun__) && defined (__GNUG__) \
        || defined (__SUNPRO_CC) && defined (__amd64__)
            // working around a gcc 3.1 bug on Solaris where the compiler
            // generates bad code for the implicitly defined copy ctor
            // also working around a Sun C++ 5.9 optimizer ICE on x86_64
            // in wide (64-bit) mode (see STDCXX-551)
            _C_iter (const _C_iter& __it)
                : _C_p (__it._C_p), _C_offset (__it._C_offset) {}
    #endif   // gcc 3.1/Solaris || Sun C++ 5.9/x86_64
            void operator++ () {
                if (_C_offset++ == _RWSTD_WORD_BIT - 1) {
                    _C_offset = 0;
                    ++_C_p;
            void operator-- () {
                if (_C_offset-- == 0) {
                    _C_offset = _RWSTD_WORD_BIT - 1;
                    --_C_p;
            void operator+= (difference_type __i) {
                difference_type __n = __i + _C_offset;
                _C_p += __n / _RWSTD_WORD_BIT;
                __n = __n % _RWSTD_WORD_BIT;
                if (__n < 0) {
                    _C_offset = _RWSTD_STATIC_CAST (unsigned int,
                                                    __n + _RWSTD_WORD_BIT);
                    --_C_p;
                else
                    _C_offset = _RWSTD_STATIC_CAST (unsigned int,__n);
        public:
            bool operator== (const _C_iter& __x) const {
                return _C_p == __x._C_p && _C_offset == __x._C_offset;
            bool operator< (const _C_iter& __x) const {
                return _C_p < __x._C_p ||
                    (_C_p == __x._C_p && _C_offset < __x._C_offset);
            bool operator!= (const _C_iter& __x) const {
                return !(*this == __x);
            bool operator> (const _C_iter& __x) const {
                return __x < *this;
            bool operator>= (const _C_iter& __x) const {
                return !(*this < __x);
            bool operator<= (const _C_iter& __x) const {
                return !(*this > __x);
        class iterator
            : public _C_iter,
              public _RW_STD::iterator<random_access_iterator_tag,
                                       value_type, _C_diff_t,
                                       pointer, _C_ref> {
        public:
            // bring names used in declarations below into scope
            // (dependent base members not visible without qualification)
            typedef _C_ref    reference;
            typedef _C_diff_t difference_type;
            iterator (unsigned int *__x = 0, unsigned int __y = 0)
                : _C_iter (__x, __y) { }
            reference operator* () const {
                return reference (this->_C_p, 1U << this->_C_offset);
            iterator& operator++ () {
                return _C_iter::operator++(), *this;
            iterator operator++ (int) {
                iterator __tmp = *this;
                ++*this;
                return __tmp;
            iterator& operator-- () {
                return _C_iter::operator--(), *this;
            iterator operator-- (int) {
                iterator __tmp = *this;
                --*this;
                return __tmp;
            iterator& operator+= (difference_type __i) {
                return _C_iter::operator+= (__i), *this;
            iterator& operator-= (difference_type __i) {
                *this += -__i;
                return *this;
            iterator operator+ (difference_type __i) const {
                iterator __tmp = *this;
                return __tmp += __i;
            iterator operator- (difference_type __i) const {
                iterator __tmp = *this;
                return __tmp -= __i;
            difference_type operator- (iterator __x) const {
                return   _RWSTD_WORD_BIT * (this->_C_p - __x._C_p)
                       + this->_C_offset - __x._C_offset;
            reference operator[] (difference_type __i) {
                return *(*this + __i);
            friend iterator operator+ (difference_type __i,
                                       const iterator &__x) {
                return __x + __i;
        class const_iterator
            : public _C_iter,
              public _RW_STD::iterator<random_access_iterator_tag,
                                       value_type, _C_diff_t,
                                       const_pointer, _C_const_ref> {
        public:
            // bring names used in declarations below into scope
            // (dependent base members not visible without qualification)
            typedef _C_const_ref const_reference;
            typedef _C_diff_t    difference_type;
            const_iterator (unsigned int *__x = 0, unsigned int __y = 0)
                : _C_iter (__x, __y) { }
            const_iterator (const _C_iter &__x)
                : _C_iter (__x) { }
            const_reference operator* () const {
                return _C_ref (this->_C_p, 1U << this->_C_offset);
            const_iterator& operator++ () {
                return _C_iter::operator++(), *this;
            const_iterator operator++ (int) {
                const_iterator __tmp = *this;
                ++*this;
                return __tmp;
            const_iterator& operator-- () {
                return _C_iter::operator--(), *this;
            const_iterator operator-- (int) {
                const_iterator __tmp = *this;
                --*this;
                return __tmp;
            const_iterator& operator+= (difference_type __i) {
                return _C_iter::operator+= (__i), *this;
            const_iterator& operator-= (difference_type __i) {
                return *this += -__i;
            const_iterator
            operator+ (difference_type __i) const {
                return const_iterator (*this) += __i;
            const_iterator operator- (difference_type __i) const {
                return const_iterator (*this) -= __i;
            difference_type operator- (const_iterator __x) const {
                return   _RWSTD_WORD_BIT * (this->_C_p - __x._C_p)
                       + this->_C_offset - __x._C_offset;
            const_reference operator[] (difference_type __i) {
                return *(*this + __i);
            friend const_iterator operator+ (difference_type __i,
                                             const const_iterator &__x) {
                return __x + __i;
    #ifndef _RWSTD_NO_CLASS_PARTIAL_SPEC
        typedef _RW_STD::reverse_iterator<const_iterator> const_reverse_iterator;
        typedef _RW_STD::reverse_iterator<iterator>       reverse_iterator;
    #else
        typedef _RW_STD::reverse_iterator<const_iterator,
            random_access_iterator_tag, value_type,
            const_reference, const_pointer, difference_type>
        const_reverse_iterator;
        typedef _RW_STD::reverse_iterator<iterator,
            random_access_iterator_tag, value_type,
            reference, pointer, difference_type>
        reverse_iterator;
    #endif   // _RWSTD_NO_CLASS_PARTIAL_SPEC
      private:
        // These private functions are replicas of generic algorithms.
        //  We provide them here to avoid putting instantiations of
        //  the generic algorithms into an archive or shared library.
        //  This gives you full flexibilty in deciding where you want
        //  to put particular instantiations of the generic
        //  algorithms.
        void _C_fill (iterator __first, iterator __last, bool __val) {
            while (__first != __last) *__first++ = __val;
        void _C_fill_n (iterator __first, size_type __n, bool __val) {
            while (__n-- > 0) *__first++ = __val;
        template <class _Iterator>
        iterator _C_copy (_Iterator __first, _Iterator __last, iterator __res) {
            while (__first != __last)
                *__res++ = *__first++;
            return __res;
        template <class _Iterator>
        iterator
        _C_copy_backward (_Iterator __first, _Iterator __last, iterator __res) {
            while (__first != __last) *--__res = *--__last;
            return __res;
    private:
        iterator       _C_begin;
        iterator       _C_end;
        unsigned int * _C_bufend;
        unsigned int* _C_bit_alloc (size_type __n) {
            return _C_value_alloc_type(*this).
                allocate ((__n + _RWSTD_WORD_BIT - 1)/_RWSTD_WORD_BIT,
                          pointer(_C_begin._C_p));
        void _C_init (size_type __n) {
            unsigned int* __q = _C_bit_alloc(__n);
            _C_bufend = __q + (__n + _RWSTD_WORD_BIT - 1)/_RWSTD_WORD_BIT;
            _C_begin  = iterator(__q, 0);
            _C_end    = _C_begin + __n;
        void _C_insert (iterator, bool);
    public:
        vector (const _Allocator&  __alloc = allocator_type ())
            : allocator_type (__alloc), _C_begin(iterator()), _C_end(iterator()),
            _C_bufend () { }
    #if !defined (__SUNPRO_CC) || __SUNPRO_CC > 0x530
        // working around a SunPro 5.3 bug (see PR #25962)
        explicit
    #endif   // SunPro > 5.3
        vector (size_type __n, bool __val = bool (),
           const _Allocator&  __alloc = allocator_type ())
            : allocator_type (__alloc), _C_bufend () {
          _C_init(__n);
          unsigned int * __first = _C_begin._C_p;
          size_type __m = (__n + _RWSTD_WORD_BIT - 1)/_RWSTD_WORD_BIT;
          while (__m-- > 0) *__first++ = __val ? ~0 : 0;
        vector (const _C_self &__x)
            : allocator_type (__x.get_allocator ()), _C_bufend  () {
            _C_init (__x.size ());
            _C_copy (__x.begin (), __x.end (), _C_begin);
        template<class _InputIter>
        vector  (_InputIter __first, _InputIter __last)
            : allocator_type (), _C_bufend ()
          size_type __n;
          distance(__first, __last, n);
          _C_init(__n);
          _C_copy(__first, __last, _C_begin);
        ~vector () {
          _C_value_alloc_type(*this).deallocate(_C_begin._C_p, 
            _C_bufend - _C_begin._C_p);
        _C_self& operator= (const _C_self& __x)
          if (&__x == this) return *this;
          if (__x.size() > capacity())
            _C_value_alloc_type(*this).deallocate(_C_begin._C_p,
              _C_bufend - _C_begin._C_p);
            _C_init(__x.size());
          _C_copy(__x.begin(), __x.end(), begin());
          _C_end = begin() + __x.size();
          return *this;
        template<class _InputIter>
        void assign (_InputIter __first, _InputIter __last) {
            clear ();
            insert (begin (), __first, __last);
        void assign (size_type __n, const bool& __x = bool()) {
            clear ();
            insert (begin (), __n, __x);
        allocator_type get_allocator() const {
          return *this;
        // iterators
        iterator       begin ()       { return _C_begin; }
        const_iterator begin () const
        { return const_iterator(_C_begin._C_p,_C_begin._C_offset); }
        iterator       end   ()       { return _C_end; }
        const_iterator end   () const
        { return const_iterator(_C_end._C_p,_C_end._C_offset); }
        reverse_iterator       rbegin () { return reverse_iterator(end()); }
        const_reverse_iterator rbegin () const
          return const_reverse_iterator(end());
        reverse_iterator       rend () { return reverse_iterator(begin()); }
        const_reverse_iterator rend () const
          return const_reverse_iterator(begin());
        // capacity
        size_type size     () const { return size_type(end() - begin());  }
        size_type max_size () const {
            return _C_value_alloc_type(*this).max_size();
        void resize (size_type __new_size, bool __c = false);
        size_type capacity () const
          return size_type(const_iterator(_C_bufend, 0) - begin());
        bool empty () const { return begin() == end(); }
        void reserve (size_type __n)
            _RWSTD_THROW(__n > max_size(), length_error,
              __RWSTD::except_msg_string(__RWSTD::__rwse_InvalidSizeParam,
                "vector<bool>::reserve(size_type)",__n,max_size()).msgstr());
          if (capacity() < __n)
            unsigned int* __q = _C_bit_alloc(__n);
            _C_end = _C_copy(begin(), end(), iterator(__q, 0));
            _C_value_alloc_type(*this).deallocate(_C_begin._C_p,
                                                 _C_bufend - _C_begin._C_p);
            _C_begin = iterator(__q, 0);
            _C_bufend = __q + (__n + _RWSTD_WORD_BIT - 1)/_RWSTD_WORD_BIT;
        // element access
        reference       operator[] (size_type __n)      
    #ifdef _RWSTD_BOUNDS_CHECKING
            _RWSTD_THROW(__n >= size(), out_of_range,
              __RWSTD::except_msg_string(__RWSTD::rwse_OutOfRange,
                "vector<bool>::[](size_type)", __n, size()).msgstr());
    #endif   // _RWSTD_BOUNDS_CHECKING
          return *(begin() + __n);
        const_reference operator[] (size_type __n) const
    #ifdef _RWSTD_BOUNDS_CHECKING
            _RWSTD_THROW(__n >= size(), out_of_range,
              __RWSTD::except_msg_string(__RWSTD::rwse_OutOfRange,
                "vector<bool>::[](size_type) const", __n, size()).msgstr());
    #endif   // _RWSTD_BOUNDS_CHECKING
          return *(begin() + __n);
        reference       at (size_type __n)              
            _RWSTD_THROW(__n >= size(), out_of_range,
              __RWSTD::except_msg_string(__RWSTD::rwse_OutOfRange,
                "vector<bool>::at(size_type)", __n, size ()).msgstr());
          return *(begin() + __n);
        const_reference at (size_type __n) const
            _RWSTD_THROW(__n >= size(), out_of_range,
              __RWSTD::except_msg_string(__RWSTD::rwse_OutOfRange,
                "vector<bool>::at(size_type) const", __n, size()).msgstr());
          return *(begin() + __n);
        reference       front ()       { return *begin();     }
        const_reference front () const { return *begin();     }
        reference       back  ()       { return *(end() - 1); }
        const_reference back  () const { return *(end() - 1); }
        // modifiers
        void push_back (const bool& __x)
            if (_C_end._C_p != _C_bufend) {
                ++_C_end;
                *(_C_end-1) = __x;
            else
                _C_insert(end(), __x);
        void pop_back () { --_C_end; }
        iterator insert (iterator __it, const bool& __x = bool())
          size_type __n = __it - begin();
          if (_C_end._C_p != _C_bufend && __it == end()) {
              ++_C_end;
              *(_C_end-1) = __x;
          else
            _C_insert(__it, __x);
          return begin() + __n;
        void insert (iterator __it, size_type __n, const bool& __x);
        template<class _InputIter>
        void insert (iterator __it, _InputIter __first,
                     _InputIter __last);
        iterator erase (iterator __it)
          if (!(__it + 1 == end()))
            _C_copy(__it + 1, end(), __it);
          --_C_end;
          return __it;
        iterator erase(iterator __first, iterator __last)
          _C_end = _C_copy(__last, end(), __first);
          return __first;
        void swap (_C_self& __x)
          if((_C_value_alloc_type)*this == (_C_value_alloc_type)__x)
            _STD::swap (_C_begin,  __x._C_begin);
            _STD::swap (_C_end,    __x._C_end);
            _STD::swap (_C_bufend, __x._C_bufend);
          else
            _C_self _x = *this;
            *this = __x;
            __x=_x;
        static void swap(reference __x, reference __y);
        void flip ();
        void clear()
          erase(begin(),end());
    #if defined (_RWSTD_NO_PART_SPEC_OVERLOAD)
        friend void swap (vector& __lhs, vector& __rhs) {
            __lhs.swap (__rhs);
    #endif
    #undef _Allocatorto be continued in the next post, whole text exceeds 30k characters :)

  • Forte and the STL

    Hello all,
    I have a question regarding fortes compliance with the standard regarding the STL. Does it.
    For example, just trying to compile simple code such as...
    #include <memory>
    int main(void)
    std::allocator<char> a;
    char *p;
    a.destroy(p);
    return 0;
    Will not compile (ignore that the code is bad). The error msg comes back with destroy not a member of std::allocator. Checking my trusty copy of the standard it sure should be. What is going on? There are other places that the header files do not seem to be inline with the standard ie reverse_iterator<> (one template param of type iterator).
    Thoughts?
    Any help would be great because I'm not sure I can use forte if it is missing huge chunks of the standard.
    Mike

    Thanks for the response but I'm not sure what your suggesting,
    Is it to use destroy() instead? If so then I still have the same problems-changing lots of code to support a non-conforming compiler. Or do you think that destroy() is the code that I'm using? I'm referring to std::allocator<T>::destroy() found in ISO 14882 [lib.default.allocator] (pg. 369) and in The C++ Programming Language (pg 567) Since you quoted me page numbers on the other post :)
    I know this seems trivial but there are numerious places where forte seems to use a pre-standard implementation so changing it all becomes non-trivial fast-for example, the lack of support for partial template specialization (I think) causing them to apparently use the old version of std::reverse_iterator.
    Mike

  • Templates won't specialize on SIMD vectors

    typedef float __m128 __attribute__ ( ( __vector_size__ ( 16 ) ) ) ;
    template<class T> T f();
    template<> __m128 f<__m128>(){__m128 x={}; return x;}
    The above code fails to compile with -std=c++11 with the following error:
    "v.c", line 3: Error: No match found for the explicit template specialization "f<>" of type 'vector float[4]()'.
    CC: Fatal error in /opt/solarisstudio12.4/lib/compilers/ccfe : Signal number = 11
    This prevents from using the Eigen open-source library in an efficient way, I have to pass -DEIGEN_DONT_VECTORIZE to work around it.
    (I couldn't use GMP either, it fails in gmpxx.h because sunCC defines __cplusplus to the 2011 value without implementing UDL)

    Err... there are two bugs here - inability to explicitly specialize and coredump on aggregate initialization of __m128.
    Filed this CR:
       20043951 C++11 vector type failures: specialization, aggregate initialization
    You can try escalating this CR through the official channels, otherwise it will most likely be addressed in the next update/release only.
    regards,
      Fedor.

  • "Template import error: No VM configure file found" on brand new setup

    Previously, I posted Console does not launch OVM 3.1.1, Win7x32 Firefox15/IE8 - Empty .jnlp file which was about VM Console not launching. Since this is a new installation, and it seemed to be a unique problem, I scratched the whole installation and started again from scratch. Everything, including the NFS file server, was re-installed from scratch CD OS installation.
    The process is pretty straightforward once you're used to it, and in less than three hours I was ready again to import my first template (a template I had imported before). But now, I submit the the request, and almost immediately the process aborts. (You can see in the information below, that 1 second passes between the Import request (06:32:36) and the failure.)
    Thing is, it takes about three minutes, even locally on the web server, to get an index of that large file (tar tzf), and at completion, the vm config file is listed.
    Am I misreading the error? My web searches for enlightenment found only one good hit on this error, and in that case it appeared to be an "out of space" issue. In this case, though, I'm importing a 5GB tarfile into a 390GB, otherwise-empty file system, so I don't think that is the issue. The failure in ovs-agent.log is below. What other information may I provide to get to the bottom of this? (Thanks for any guidance/help, of course!)
    [2012-10-31 06:31:40 3341] DEBUG (monitor:36) Cluster state changed from [Heartbeating] to [DLM_Ready]
    [2012-10-31 06:31:40 3341] INFO (notification:67) Notification sent: {CLUSTER} {MONITOR} Cluster state changed from [Heartbeating] to [DLM_Ready]
    [2012-10-31 06:31:40 3338] INFO (notification:193) Sending notification: {CLUSTER} {MONITOR} Cluster state changed from [Heartbeating] to [DLM_Ready]
    [2012-10-31 06:31:48 4914] DEBUG (service:77) discover_cluster: ()
    [2012-10-31 06:31:48 4914] DEBUG (service:85) discover_cluster: call completed.
    [2012-10-31 06:32:03 4926] DEBUG (service:77) storage_plugin_mount: ('oracle.generic.NFSPlugin.GenericNFSPlugin', {'status': '', 'admin_user': None, 'admin_host': None, 'uuid': '0004fb00000900003cf41964f3476788', 'total_sz': 0, 'admin_passwd': '******', 'storage_desc': '', 'free_sz': 0, 'access_host': 'filesrv.ps.***.com', 'storage_type': 'FileSys', 'alloc_sz': 0, 'access_grps': [], 'used_sz': 0, 'name': '0004fb00000900003cf41964f3476788'}, {'status': '', 'uuid': 'fc3564eb-ce8b-489c-96bc-df6de2cc8a11', 'ss_uuid': '0004fb00000900003cf41964f3476788', 'size': '330279518208', 'free_sz': '330075340800', 'state': 2, 'access_grp_names': [], 'access_path': 'filesrv.ps.***.com:/mnt/ps_big/repo/repo', 'name': 'nfs:/mnt/ps_big/repo/repo'}, '/OVS/Repositories/0004fb0000030000659e0ce6f2ecfb55', None, True, [])
    [2012-10-31 06:32:03 4926] INFO (storageplugin:108) storage_plugin_mount(oracle.generic.NFSPlugin.GenericNFSPlugin)
    [2012-10-31 06:32:03 4926] DEBUG (NFSPlugin:353) cmd = ['mount', '-t', 'nfs', 'filesrv.ps.***.com:/mnt/ps_big/repo/repo', '/OVS/Repositories/0004fb0000030000659e0ce6f2ecfb55']
    [2012-10-31 06:32:03 4926] DEBUG (service:85) storage_plugin_mount: call completed.
    [2012-10-31 06:32:03 4931] DEBUG (service:77) add_repository: ('filesrv.ps.***.com:/mnt/ps_big/repo/repo', '0004fb0000030000659e0ce6f2ecfb55')
    [2012-10-31 06:32:03 4931] DEBUG (service:85) add_repository: call completed.
    [2012-10-31 06:32:36 4972] DEBUG (linux:847) async call function: import_template
    [2012-10-31 06:32:36 4975] DEBUG (service:77) import_template: ('0004fb0000030000659e0ce6f2ecfb55', '0004fb0000140000fdc18a572a244015', ['http://aspire/pstop/OVM_EL5U7_X86_64_TOOLS8_52_06_PVM.tgz'])
    [2012-10-31 06:32:37 4975] INFO (notification:74) async_proc_prog: notification {ASYNC_PROC} progress PID 4975 status {'OBJECT': 'template', 'TOTAL_OBJECT_COUNT': 1, 'CURRENT_OBJECT_COUNT': 1, 'TOTAL_BYTES': 0L, 'CURRENT_BYTES': 613L, 'OPERATION': 'download'}
    [2012-10-31 06:32:37 4975] INFO (notification:67) Notification sent: {ASYNC_PROC} progress PID 4975
    [2012-10-31 06:32:37 3338] INFO (notification:193) Sending notification: {ASYNC_PROC} progress PID 4975
    [2012-10-31 06:32:37 4975] ERROR (service:96) catch_error: Template import error: No VM configure file found.
    Traceback (most recent call last):
    File "/usr/lib64/python2.4/site-packages/agent/service.py", line 94, in wrapper
    return func(*args)
    File "/usr/lib64/python2.4/site-packages/agent/hypervisor/xenxm.py", line 1041, in import_template
    raise RuntimeError('Template import error: %s' % err)
    RuntimeError: Template import error: No VM configure file found.
    [2012-10-31 06:32:37 4975] DEBUG (linux:879) ovs_async_proc: pid 4975 status 1 output Template import error: No VM configure file found.
    [2012-10-31 06:32:37 4975] INFO (notification:67) Notification sent: {ASYNC_PROC} exit PID 4975
    [2012-10-31 06:32:37 3338] INFO (notification:193) Sending notification: {ASYNC_PROC} exit PID 4975
    [2012-10-31 06:32:39 4987] DEBUG (service:77) storage_plugin_listFileSystems: ('oracle.generic.NFSPlugin.GenericNFSPlugin', {'status': '', 'admin_user': None, 'admin_host': None, 'uuid': '0004fb00000900003cf41964f3476788', 'total_sz': 0, 'admin_passwd': '******', 'storage_desc': '', 'free_sz': 0, 'access_host': 'filesrv.ps.***.com', 'storage_type': 'FileSys', 'alloc_sz': 0, 'access_grps': [], 'used_sz': 0, 'name': '0004fb00000900003cf41964f3476788'}, True)
    [2012-10-31 06:32:39 4987] INFO (storageplugin:108) storage_plugin_listFileSystems(oracle.generic.NFSPlugin.GenericNFSPlugin)
    [2012-10-31 06:32:39 4987] DEBUG (NFSPlugin:142) ENTER: listFileSysytems()
    [2012-10-31 06:32:39 4987] DEBUG (NFSPlugin:257) EXIT : listFileSysytems()
    [2012-10-31 06:32:39 4987] DEBUG (service:85) storage_plugin_listFileSystems: call completed.
    [2012-10-31 06:32:39 5005] DEBUG (service:77) discover_pool_filesystem: ()
    [2012-10-31 06:32:39 5005] DEBUG (service:85) discover_pool_filesystem: call completed.

    How did you get the template to where you staged it?
    I'd say the template is corrupt or you only have a partial template.
    I did notice the call to the template is based on the short name of the host. Can you confirm the VM manager can access the http path via short name?

  • HSRP fails to work due to h/w failure

    We have a situation that HSRP fails to work due to a partial h/w failure on the active router.
    What happened is the active router continously getting input error on its Ethernet interface. User traffic fails to be received by this router. However the router is still able to send hello message to its standby router .When we do a sh standby on the active router, it says unknown standby which concluded that it does not receive hello message from the standby. The fault happened everyday . we can clear the problem by rebotting the router but fault came back the next day again for several times. Once we replaced the active router , problem did not return.
    In understand HSRP uses mulitcast protocol . but I would like clarification that HSRP is using unidirectional comunication with the standby group. In a situation like this ,my assumption is the TX circuit on the LAN is working but teh RX circuit failed. The standby router would never know the LAN interface of actice router fails to receive its hello messages. Therefore the fail over never trigger.
    Appreciate your feedback on this.
    Regards
    Edmond

    I believe HSRP use multicast address for the hello but it still use broadcast to ensure the standby router is active. I can't find such info. to prove it. Please correct me if I am wrong.
    For the LAN connection, if the RX is failed, the interface should not up, or say, e.g. if the RX-pair of cable is not connectioned, the interface should down. So, I believe there is something wrong in the LAN interface, it may not only the RX side error.
    Just my 2 cents.

  • Problem while installing account enrollment template

         Hello,
         I've benn facing a serious problem for a week while installing account enrollment template.
         System Environment is like this:
              -     Windows Server 2003 Enterprise Edition
              -     Microsoft SQL Server 2005 SP2
              -     IBM Websphere Application Server 6.1.7
         LiveCycle ES 8.2 works fine.
         But installing account enrollment template is failure. Error message is as follow;
    //------------------------------------------------------- Begin -------------------------------------------------
    C:\sas\account_enrollment_1_0\sa\building_blocks\snc_1_0\install>ant pre-deploy-
    invoker
    Buildfile: build.xml
    pre-deploy-invoker:
        [unzip] Expanding: C:\sas\account_enrollment_1_0\sa\building_blocks\snc_1_0\
    dist\webapp\adobe-bb-snc-invoker.ear into C:\sas\account_enrollment_1_0\sa\build
    ing_blocks\snc_1_0\build\invoker\pre-deploy
        [mkdir] Created dir: C:\sas\account_enrollment_1_0\sa\building_blocks\snc_1_
    0\build\invoker\pre-deploy\war
        [unzip] Expanding: C:\sas\account_enrollment_1_0\sa\building_blocks\snc_1_0\
    build\invoker\pre-deploy\invoker.war into C:\sas\account_enrollment_1_0\sa\build
    ing_blocks\snc_1_0\build\invoker\pre-deploy\war
    [propertyfile] Updating property file: C:\sas\account_enrollment_1_0\sa\building
    _blocks\snc_1_0\build\invoker\pre-deploy\war\WEB-INF\classes\messages.properties
       [delete] Deleting: C:\sas\account_enrollment_1_0\sa\building_blocks\snc_1_0\b
    uild\invoker\pre-deploy\invoker.war
          [zip] Building zip: C:\sas\account_enrollment_1_0\sa\building_blocks\snc_1
    _0\build\invoker\pre-deploy\invoker.war
       [delete] Deleting directory C:\sas\account_enrollment_1_0\sa\building_blocks\
    snc_1_0\build\invoker\pre-deploy\war
       [delete] Deleting: C:\sas\account_enrollment_1_0\sa\building_blocks\snc_1_0\d
    ist\webapp\adobe-bb-snc-invoker.ear
          [zip] Building zip: C:\sas\account_enrollment_1_0\sa\building_blocks\snc_1
    _0\dist\webapp\adobe-bb-snc-invoker.ear
    BUILD SUCCESSFUL
    Total time: 2 seconds
    C:\sas\account_enrollment_1_0\sa\building_blocks\snc_1_0\install>ant call-deploy
    er -Ddeployer.targets=import-data -Dconfig.beans.path=c:\sas\account_enrollment_
    1_0\sa\building_blocks\snc_1_0/snc_portal/sample/resource/adobe-bb-snc-samplecon
    fig-beans.xml -Dbundle.dir=c:\sas\account_enrollment_1_0\sa\building_blocks\snc_
    1_0/snc_portal/sample/resource/bundles
    Buildfile: build.xml
    call-deployer:
         [echo] Basedir is C:\sas\account_enrollment_1_0\sa\building_blocks\snc_1_0\
    deployer
         [echo] hostname is: LIVECYCLE
         [echo] Tools Found: C:\sas\account_enrollment_1_0\sa\building_blocks\snc_1_
    0\deployer/../tools
    import-data:
    BUILD FAILED
    C:\sas\account_enrollment_1_0\sa\building_blocks\snc_1_0\install\build.xml:121:
    The following error occurred while executing this line:
    C:\sas\account_enrollment_1_0\sa\building_blocks\snc_1_0\install\build.xml:123:
    The following error occurred while executing this line:
    C:\sas\account_enrollment_1_0\sa\building_blocks\snc_1_0\deployer\build.xml:140:
    Warning: Could not find file c:\sas\account_enrollment_1_0\sa\building_blocks\s
    nc_1_0\snc_portal\sample\resource\adobe-bb-snc-sampleconfig-beans.xml to copy.
    Total time: 0 seconds
    C:\sas\account_enrollment_1_0\sa\building_blocks\snc_1_0\install>ant call-deploy
    er -Ddeployer.targets=import-data -Dconfig.beans.path=c:\sas\account_enrollment_
    1_0\sa\building_blocks\snc_1_0/snc_portal/sample/resource/adobe-bb-snc-samplecon
    fig-beans.xml -Dbundle.dir=c:\sas\account_enrollment_1_0\sa\building_blocks\snc_
    1_0/snc_portal/sample/resource/bundles
    Buildfile: build.xml
    call-deployer:
         [echo] Basedir is C:\sas\account_enrollment_1_0\sa\building_blocks\snc_1_0\
    deployer
         [echo] hostname is: LIVECYCLE
         [echo] Tools Found: C:\sas\account_enrollment_1_0\sa\building_blocks\snc_1_
    0\deployer/../tools
    import-data:
         [copy] Copying 1 file to C:\sas\account_enrollment_1_0\sa\building_blocks\s
    nc_1_0\dist\deployer
         [java] Oct 5, 2009 6:39:52 PM org.springframework.beans.factory.xml.XmlBean
    DefinitionReader loadBeanDefinitions
         [java] INFO: Loading XML bean definitions from file [C:\sas\account_enrollm
    ent_1_0\sa\building_blocks\snc_1_0\deployer\..\dist\deployer\config-beans.tmp.xm
    l]
         [java] Loading Global Settings...
         [java] ALC-DSC-012-000: com.adobe.idp.dsc.registry.ServiceNotFoundException
    : Service: ConfigurationRegistryService not found.
         [java]     at com.adobe.solutions.snc.ConfigurationRegistryServiceClient.ge
    tConfigurationSettingByName(ConfigurationRegistryServiceClient.java:75)
         [java]     at com.adobe.solutions.snc.utils.SpringDataImporter.handleGlobal
    Setting(SpringDataImporter.java:334)
         [java]     at com.adobe.solutions.snc.utils.SpringDataImporter.importData(S
    pringDataImporter.java:87)
         [java]     at com.adobe.solutions.snc.utils.SpringDataImporter.main(SpringD
    ataImporter.java:74)
         [java] Caused by: ALC-DSC-012-000: com.adobe.idp.dsc.registry.ServiceNotFou
    ndException: Service: ConfigurationRegistryService not found.
         [java]     at com.adobe.idp.dsc.registry.service.impl.ServiceRegistryImpl.g
    etService(ServiceRegistryImpl.java:1084)
         [java]     at com.adobe.idp.dsc.registry.service.impl.ServiceRegistryImpl.g
    etHeadActiveConfiguration(ServiceRegistryImpl.java:935)
         [java]     at com.adobe.idp.dsc.engine.impl.ServiceEngineImpl.resolveConfig
    uration(ServiceEngineImpl.java:148)
         [java]     at com.adobe.idp.dsc.provider.impl.soap.axis.sdk.SoapSdkEndpoint
    .invokeCall(SoapSdkEndpoint.java:119)
         [java]     at com.adobe.idp.dsc.provider.impl.soap.axis.sdk.SoapSdkEndpoint
    .invoke(SoapSdkEndpoint.java:81)
         [java]     at sun.reflect.GeneratedMethodAccessor532.invoke(Unknown Source)
         [java]     at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMet
    hodAccessorImpl.java:43)
         [java]     at java.lang.reflect.Method.invoke(Method.java:615)
         [java]     at org.apache.axis.providers.java.RPCProvider.invokeMethod(RPCPr
    ovider.java:397)
         [java]     at org.apache.axis.providers.java.RPCProvider.processMessage(RPC
    Provider.java:186)
         [java]     at org.apache.axis.providers.java.JavaProvider.invoke(JavaProvid
    er.java:323)
         [java]     at org.apache.axis.strategies.InvocationStrategy.visit(Invocatio
    nStrategy.java:32)
         [java]     at org.apache.axis.SimpleChain.doVisiting(SimpleChain.java:118)
         [java]     at org.apache.axis.SimpleChain.invoke(SimpleChain.java:83)
         [java]     at org.apache.axis.handlers.soap.SOAPService.invoke(SOAPService.
    java:454)
         [java]     at org.apache.axis.server.AxisServer.invoke(AxisServer.java:281)
         [java]     at org.apache.axis.transport.http.AxisServlet.doPost(AxisServlet
    .java:699)
         [java]     at javax.servlet.http.HttpServlet.service(HttpServlet.java:763)
         [java]     at org.apache.axis.transport.http.AxisServletBase.service(AxisSe
    rvletBase.java:327)
         [java]     at javax.servlet.http.HttpServlet.service(HttpServlet.java:856)
         [java]     at com.ibm.ws.webcontainer.servlet.ServletWrapper.service(Servle
    tWrapper.java:989)
         [java]     at com.ibm.ws.webcontainer.servlet.ServletWrapper.service(Servle
    tWrapper.java:930)
         [java]     at com.ibm.ws.webcontainer.filter.WebAppFilterChain.doFilter(Web
    AppFilterChain.java:145)
         [java]     at com.adobe.idp.dsc.provider.impl.soap.axis.InvocationFilter.do
    Filter(InvocationFilter.java:43)
         [java]     at com.ibm.ws.webcontainer.filter.FilterInstanceWrapper.doFilter
    (FilterInstanceWrapper.java:190)
         [java]     at com.ibm.ws.webcontainer.filter.WebAppFilterChain.doFilter(Web
    AppFilterChain.java:130)
         [java]     at com.ibm.ws.webcontainer.filter.WebAppFilterChain._doFilter(We
    bAppFilterChain.java:87)
         [java]     at com.ibm.ws.webcontainer.filter.WebAppFilterManager.doFilter(W
    ebAppFilterManager.java:761)
         [java]     at com.ibm.ws.webcontainer.filter.WebAppFilterManager.doFilter(W
    ebAppFilterManager.java:673)
         [java]     at com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(
    ServletWrapper.java:498)
         [java]     at com.ibm.ws.wswebcontainer.servlet.ServletWrapper.handleReques
    t(ServletWrapper.java:464)
         [java]     at com.ibm.ws.webcontainer.servlet.CacheServletWrapper.handleReq
    uest(CacheServletWrapper.java:90)
         [java]     at com.ibm.ws.webcontainer.WebContainer.handleRequest(WebContain
    er.java:744)
         [java]     at com.ibm.ws.wswebcontainer.WebContainer.handleRequest(WebConta
    iner.java:1433)
         [java]     at com.ibm.ws.webcontainer.channel.WCChannelLink.ready(WCChannel
    Link.java:111)
         [java]     at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleDi
    scrimination(HttpInboundLink.java:454)
         [java]     at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleNe
    wInformation(HttpInboundLink.java:383)
         [java]     at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.ready(Ht
    tpInboundLink.java:263)
         [java]     at com.ibm.ws.tcp.channel.impl.NewConnectionInitialReadCallback.
    sendToDiscriminators(NewConnectionInitialReadCallback.java:214)
         [java]     at com.ibm.ws.tcp.channel.impl.NewConnectionInitialReadCallback.
    complete(NewConnectionInitialReadCallback.java:113)
         [java]     at com.ibm.ws.tcp.channel.impl.AioReadCompletionListener.futureC
    ompleted(AioReadCompletionListener.java:165)
         [java]     at com.ibm.io.async.AbstractAsyncFuture.invokeCallback(AbstractA
    syncFuture.java:217)
         [java]     at com.ibm.io.async.AsyncChannelFuture.fireCompletionActions(Asy
    ncChannelFuture.java:161)
         [java]     at com.ibm.io.async.AsyncFuture.completed(AsyncFuture.java:136)
         [java]     at com.ibm.io.async.ResultHandler.complete(ResultHandler.java:19
    5)
         [java]     at com.ibm.io.async.ResultHandler.runEventProcessingLoop(ResultH
    andler.java:743)
         [java]     at com.ibm.io.async.ResultHandler$2.run(ResultHandler.java:873)
         [java]     at com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java:1469)
       [delete] Deleting: C:\sas\account_enrollment_1_0\sa\building_blocks\snc_1_0\d
    ist\deployer\config-beans.tmp.xml
    BUILD SUCCESSFUL
    Total time: 3 seconds
    C:\sas\account_enrollment_1_0\sa\building_blocks\snc_1_0\install>
    //------------------------------------------------------- End ----------------------------------------------------
         I followed the getting started document, but I can not access the selection and capture sample portal.
         http://livecycle:9080/adobe-bb-snc-portal
         Does anyone have the solution or experience?
         Any help will be much appreciated. Now I'm hanging over.
         Thank you. (PS. I attached the configuration files.)

    The problems has been solved. Thanks.

  • Template function default parameter instantiated unnecessary

    Hi,
    I think the following is valid C++ code. The default parameter of template (member) function should not be instantiated until it is actually required.
    Is it a bug of CC?
    $ cat enumid.cc
    template<class T>
    class TClass
    public:
    void f(int i = T::EnumID);
    class Unknown;
    class X
    public:
    TClass<Unknown> m;
    $ CC -c enumid.cc
    "enumid.cc", line 5: Error: EnumID is not a member of Unknown.
    "enumid.cc", line 11: Where: While specializing "TClass<Unknown>".
    "enumid.cc", line 11: Where: Specialized in non-template code.
    1 Error(s) detected.
    $ CC -V
    CC: Sun C++ 5.8 2005/10/13
    Thanks,
    Qingning

    You are right. This test case is valid and shows compiler bug
    C++ Standard 14.7.1-1
    The implicit instantiation of a class template specialization causes the implicit instantiation of the declarations, but not of the definitions or default arguments, of the class member functions, member classes, static data members and member templates; and it causes the implicit instantiation of the definitions of member anonymous unions.
    If you have a service contract with Sun, please file a bug report via your service channel. You can be kept informed about progress, and get pre-release versions of the compiler that fix the bug.
    If you don't have a service contract with Sun, please file a bug report at bugs.sun.com.
    If you prefer not to file the bug report yourself, let me know, and I'll file one for you.

  • Template Template Parameters, Forte 6U2, Forte 7EA

    Forte 6U2 does not support template template parameters. I had hoped to see support added in Forte 7 early access, but they are not supported in that release either.
    While some may argue that template template parameters are the height of C++ esoterica, very sophisticated and usefull libraries like Loki (by Alexandrescu) require them. There are compilers on the market that are capable of handling this construct, and Lippman, who is now at Microsoft, has commited to supporting Loki, Blitz and Boost in future releases of the compiler (see http://www.codeproject.com/interview/stanlippman14nov2001.asp?print=true ). This suggests that microsoft will soon support template template parameters as well.
    I would be interested to see if other people who read this forum care about this issue at all, and if so, please respond so we can try to get Sun to do something about this...

    I absolutely agree that Sun must keep pace with [if not lead] industry and provide the full suite of C++ language features.
    I, too, have spent many hours with Forte C++ 5.3 trying to employ the techniques described in Alexandrescu's "Modern C++ Design" and implemented in his "loki" library. Even recursive template specializations seem not to be supported, though I must do further investigation to confirm.
    And it would be nice if the compiler recognized what I was trying to do and issued a "feature XYZ not yet supported" message.
    ... Dave

  • HELP! Have new PC, how can i get iphone's music, apps ect onto new itunes??

    Hi there,
    Unfortunatly my laptop was stolen a week before christmas. My Iphone was synced to the laptop and I also used the Itunes' Store to purchase my music from the computer aswell as buying some from the phone itself.
    I now have a new laptop and have just downloaded Itunes to it. I logged in to the Itunes store using my apple account fine. I then tried to sync my Iphone to the new laptop's Itunes but it said that 'music frm my Iphone would be replaced by my Itunes libary' (which is empty).
    If i go to purchased underneeth the Itunes store it is empty. However if i got in to my Apple Account Information it had the full list of my past pursaches from my old laptop but shows no way of importing those songs and applications in to my Itunes Libary.
    So really i just need to know how to sync my Iphone to my new laptop and keep the files i have already purchased which are on my Iphone at the moment.
    Help would be great. Many thanks, Tom

    You mean songs purchased with iTunes on your computer that was stolen which weren't transferred to your iPhone via the iTunes sync process?
    People get new PC's all the time.
    Sure they do, and many people also maintain a backup for their important data stored on an external drive or some other external media used for backup purposes only that includes their iTunes library - especially iTunes content that was purchased from the iTunes store. Apple includes a warning or alert message about maintaining a backup of your iTunes store purchases after making a purchase - maybe not after every purchase, but often enough.
    What happened to your other important data stored on your laptop that was stolen? Was that data included with your backup or did you lose everything with the theft?
    Just one of the many reasons why this is so important. Hard drives don't last forever and can have a partial or complete failure at any time - even the brand new hard drive with your new computer. I know some people who maintain two backups in case the media for one of their backups fail. Not likely that two would fail at the same time. I use iDisk for one of my backups, and I use an external flash drive for my other, which includes my entire iTunes library. Important regardless the platform but even more so with a Windows PC due to constant virus, adware, and spyware concerns.
    Apple may help you with this, but they aren't obligated to do so.

Maybe you are looking for

  • Does it use cellular data to sync iPhone to iTunes on computer?

    My phone is broken and it won't connect to wifi. I don't have any data left for my month.

  • Restricting the po line item to max 3 line items-----BAdi

    Hi below is the code I am trying however incase for eg i put line item no 10 20 and 30 . it gives an error since the line item is grater then 3, so i delete line item 30 and it works fine, but incase if i delete line item 20, then the error still per

  • Database always down after OS startup

    I have my Windows 2003 Server (SP1) and Oracle database 10g release 2 installed. On the day I installed these two, everything worked just fine. One day after that and on, everytime I boot up my OS, the database is always in 'shutdown' phase (but the

  • Replacing hard drive in PowerBooks

    Is it difficult or advisable to replace the hard drive in my PowerBook myself? Or do I need to bring it into a shop? I've installed memory in desktop Macs, so I'm comfortable opening a computer. I've never opened a PowerBook, though.

  • I get an disk utility premission error that it cannot fix

    I get this error from disk utility any help is appreciated Tim Repairing permissions for “iMac” Reading permissions database. Reading the permissions database can take several minutes. ACL found but not expected on "private/var/root/Library/Preferenc