[2 days left] What’s wrong with your cloud strategy? Learn why multicloud solutions matter with Nimble Storage.Register Now

x
?
Solved

C++ newbie

Posted on 1998-06-09
10
Medium Priority
?
248 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
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 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 200 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
Independent Software Vendors: 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

On Demand Webinar - Networking for the Cloud Era

This webinar discusses:
-Common barriers companies experience when moving to the cloud
-How SD-WAN changes the way we look at networks
-Best practices customers should employ moving forward with cloud migration
-What happens behind the scenes of SteelConnect’s one-click button

Question has a verified solution.

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

Written by John Humphreys C++ Threading and the POSIX Library This article will cover the basic information that you need to know in order to make use of the POSIX threading library available for C and C++ on UNIX and most Linux systems.   [s…
  Included as part of the C++ Standard Template Library (STL) is a collection of generic containers. Each of these containers serves a different purpose and has different pros and cons. It is often difficult to decide which container to use and …
The viewer will learn how to pass data into a function in C++. This is one step further in using functions. Instead of only printing text onto the console, the function will be able to perform calculations with argumentents given by the user.
The viewer will learn additional member functions of the vector class. Specifically, the capacity and swap member functions will be introduced.
Suggested Courses

649 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