Thanks for your help. I am sorry if I have caused any problems.
I tried uploading VS 2017; it installed itself alongside my VS 2015 and did not obliterate it.
I used my desktop "Visual C 2015 devenv.exe" icon to access my VS 2015, and I tried to access several of my projects. All but one of them that I tried came up and recompiled successfully, and there was no "One-way upgrade. Visual Studio ..." nuisance.
The only project that caused trouble was dragclip_vc, which kept on showing the "One-way upgrade. Visual Studio will automatically make functional changes to the following projects in order to open them. ...". MessageBox. So I remade this project as a new VS 2015 project dragclip2 using copies of dragclip_vc's source files, and this new project behaves OK. I suspect that the "One-way upgrade. Visual Studio ..." nuisance persisted because dragclip is such a small project that it does not have some feature that "One-way upgrade. Visual Studio ..." looks for to see if it has already been called on that project.
Next step for me, I suppose, is to find how to run VS 2017. It looks very different from VS 2015.
I keep pointers to all my Visual C++ projects in a folder called C:\Visual_C\Visual_C_pointers\
I have now upgraded to VS 2017. I have used it to remake my project 'dragclip_vc'. In it, the top menu has entries for "File, Edit, View, Project, Team, Tools, Windows, Help", but none of then seem to lead to an option letting me compile or run the source file. What should I do?
I have been using Visual C++ for many years to develop programs, without trouble.
Today, a new automatic upgrade system shows up whenever I call one of my Visual C++ projects.
In one of them, the automatic upgrade showed and operated, asking me to click on things, OK, and I had to re-open the component files that it displays, and I saved the run, and exited, and after that, it comes up OK when called.
In another of them, however often I open it and exit from it, every time I open it, the automatic upgrade shows, and I must run it, and it wipes the display of the program's files that I had opened. What causes that?
That's a lot of math, if I start experimenting I may get it back.
But for now, that page got me hungry!!!
But I did catch the idea of shifting, all this because
a code that I posted here, that some one tested and said works correctly
and got the right values, however I don't, I do not see how may code
works correctly on his computer, but on mine I get big numbers, far for what
I am looking for. Go ahead and check it, and tell me what you think if you please....
I have a class PackageSingleton and got a function getPackage whose return type is another class Package. This function iterates over a queue and retrieves a package and executes it. If a queue is empty i want to return nothing and keep looping the queue until a package is found. In C++ NULL cant be returned and returning a nullptr is giving an error
no viable conversion from returned value of type 'nullptr_t' to function return type 'Package
You can only return a nullptr if the defined return type is a pointer to something. If the return type is some sort of object then you must return an actual object of that type. You could solve this by changing the function to return a pointer to the relevant Package object.
I don't understand what you are saying. If the return type of your getPackage function is a Package object, then that is what you must return. If the function fails then you must find some other way to signal that failure, perhaps by throwing an exception. If you want the possibility of returning nullptr to indicate failure, then the function must return a pointer to a Package object, thus:
// code to create a new package ...
pPackage = new Package();
// ...if (some problem with creating the object)
pPackage = nullptr;
The common solution is to return an empty object. But this requires that the class supports such (usually by the default constructor without arguments creating such an empty object and providing a member function that checks for the object being empty).
An example is the std::string class:
// An empty string
// Optionally set the string here// Might return an empty stringreturn str;
// May also use //return std::string();
std::string str = somefunc();
// String is not empty
Last Visit: 20-Aug-19 12:46 Last Update: 20-Aug-19 12:46