www.digitalmars.com         C & C++   DMDScript  

c++ - The simple example to reproduce the compiler error

reply "Christian Kaiser" <chk online.de> writes:
Hi Walter,

below is an example of the code that does not compile. I marked the line and
the error text given by DMC. Maybe you find a workaround for that call.

(For Watcom the library programmer used a workaround: "clsNode<T>* p;
p->~clsNodeType<T>()" does not compile, but "NodeType* p; p->~NodeType()"
does; which is sanctioned by DMC with "Error: class name '?$clsNode H'
expected after ~"). I understand Matthew's statement about allowing
libraries to run with multiple compilers is more work than the code or
algorithm itself.


Thanks,
Christian

-----------------------------------

    template <class T>
    class clsNode
        {
        public:
            inline clsNode(void) { }
            inline ~clsNode(void) { }
        };

    template <class T>
    class clsBase
        {
        protected:
            typedef clsNode<T> NodeType;
        public:
            virtual ~clsBase(void)
                {
                }
            void destruct(NodeType* p)
                {
                NodeType*   pNode = p;

                pNode->~clsNode<T>();      <<<<<<<<< "Error: '(' expected
following simple type name"
                }
        };

    void f(void)
    {
        clsBase<int>    Base;
        clsNode<int>    O;
        Base.destruct(&O);
    }
Oct 05 2003
parent "Walter" <walter digitalmars.com> writes:
I'll check it out. Thanks. -Walter
Oct 05 2003