Dato il seguente frammento di codice: programmatoreC++ enigma di programmazione, divertirsi con i puntatori a funzione
#include <string>
#include <iostream>
int main()
{
std::string prefix("->"), middle(), suffix("<-");
std::cout << "Test: " << prefix << middle << suffix << std::endl;
return 0;
}
L'avanzato C++ immediatamente vedere che middle()
non sta chiamando std::string
s' ctor di default, invece si tratta di una dichiarazione di funzione.
La cosa interessante però: Perché gcc produce il seguente output:
Test: ->1<-
a differenza di errore di linker di Visual Studio? Qualcuno sa cosa sta succedendo qui?
Ho un downvote e una richiesta stretta per questa domanda (off-topic), qualcuno può forse dirmi perché. Una domanda del genere è davvero fuori tema su SO? –