Solved

C++ newbie

Posted on 1998-06-09
10
235 Views
Last Modified: 2010-04-01
Hi this is probably a silly question, but I'm new to c++
and the platform I'm developing on does not seem to support templates fully (maybe not beyond ANSI etc)

Can someone explain to me what this error means:

> ::operator new  may not be a template function:

when trying to compile:

template <class T>
inline
void*
operator new(size_t , T *t)
{
  return t;
}

Cheers

Andy
                         
0
Comment
Question by:Ghostrider
  • 4
  • 3
  • 2
  • +1
10 Comments
 
LVL 2

Expert Comment

by:VEngineer
ID: 1165542
Which platform are you using?

Borland 4.5x, 5.0 will support fully.
MS Visual C++ 5 will support fully.
g++ will support fully.
0
 
LVL 22

Accepted Solution

by:
nietod earned 50 total points
ID: 1165543
It is saying that the function operator new cannot be defined inside a template.  That is you cannot use templates to define overloaded versions f operator new.  I can't image why that is.  Vissual C++ 5.0 does allow it.   Your code compiles and runs fun.
0
 
LVL 22

Expert Comment

by:nietod
ID: 1165544
I didn't see Vengineer's stuff when I answered.  But possibly there is a way around this without changing compilers.  What are you hoping to do with this?  As it stands now it is not needed at all.
0
Technology Partners: We Want Your Opinion!

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

 

Author Comment

by:Ghostrider
ID: 1165545
It's on the Tandem NSK platform using an ancient compiler, is there any way around this?
0
 

Author Comment

by:Ghostrider
ID: 1165546
It's on the Tandem NSK platform using an ancient compiler, is there any way around this?
0
 
LVL 22

Expert Comment

by:nietod
ID: 1165547
You missunderstood me.  I don't mean "there might be a way to make the compiler accept it".  That's not possible.  But I do mean that if you explain what you are trying to achieve, we might be able to come up with a different way to accomplish it that will work.   But O don't know what you are trying to do, so I can't help you come up with a solution.
0
 
LVL 11

Expert Comment

by:alexo
ID: 1165548
Here's your answer.

A pointer to any type can be converted implicitly to a pointer to type void.  Therefore, the syntax of your placament new operator should be as follows:

    void* operator new(size_t , void* t)
    {
        return t;
    }

Tell me if it helps.
0
 
LVL 22

Expert Comment

by:nietod
ID: 1165549
But placement new is defined in new.h (or no ,.h?)  I'm assuming Ghostrider is trying to do something else here.
0
 
LVL 11

Expert Comment

by:alexo
ID: 1165550
The body of the function looks suspiciously like placement new...
0
 
LVL 11

Expert Comment

by:alexo
ID: 1165551
Ghostrider, what solved your problem?
(You know, for future reference...)
0

Featured Post

Industry Leaders: We Want Your Opinion!

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Article by: SunnyDark
This article's goal is to present you with an easy to use XML wrapper for C++ and also present some interesting techniques that you might use with MS C++. The reason I built this class is to ease the pain of using XML files with C++, since there is…
Introduction This article is a continuation of the C/C++ Visual Studio Express debugger series. Part 1 provided a quick start guide in using the debugger. Part 2 focused on additional topics in breakpoints. As your assignments become a little more …
The goal of the video will be to teach the user the concept of local variables and scope. An example of a locally defined variable will be given as well as an explanation of what scope is in C++. The local variable and concept of scope will be relat…
The viewer will be introduced to the technique of using vectors in C++. The video will cover how to define a vector, store values in the vector and retrieve data from the values stored in the vector.

730 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question