Wie verwende ich ein konstruiertes Objekt als Parameter in C ++ 20?C++

Programme in C++. Entwicklerforum
Anonymous
 Wie verwende ich ein konstruiertes Objekt als Parameter in C ++ 20?

Post by Anonymous »

Ich habe gerade meine Version von C ++ auf C ++ 20 in Visual Studio gewechselt und habe eine Entstehung.

Code: Select all

class Foo {
int value;
public:
Foo(int v) : value(v) {}
};

// A function that does something with a Foo
void bar(Foo& f)
{
// ...whatever
}

// This gives an error in C++20 but not in C++17
// The message is something like "cannot convert from Foo to T&"
bar(Foo(3));
< /code>
Was ist der Grund? Gibt es einen Trick, um diesen Code zu beheben? Es gibt  Hunderte < /strong> von ihnen.class DataSource;   // Abstract source of data

// Can read ASCII/UTF8/Unicode from a DataSource
class TextReader {
DataSource& source;
public:
TextReader(DataSource& s) : source(s) {}
};

// Read some text
void readText(TextReader& r)
{
}

void main()
{
FileDataSource d("file.text");
readText(TextSource(d));    // Neat!
}
Die Fähigkeit, Referenzen an temporäre zu übergeben>

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post