Articles of sovraccarico

Sovraccarico dell’operatore di indicizzazione di indicizzazione C ++ in modo da consentire risposte agli aggiornamenti

Considerare il compito di scrivere una class indicizzabile che sincronizza automaticamente il suo stato con un archivio dati esterno (ad esempio un file). Per fare ciò, la class dovrebbe essere resa consapevole delle modifiche al valore indicizzato che potrebbero verificarsi. Sfortunatamente il solito approccio all’operatore di overload [] non lo consente, ad esempio … Type& […]

SFINAE funziona in modo diverso nei casi di parametri modello tipo e non tipo

Perché questo codice funziona: template< typename T, std::enable_if_t<std::is_same::value, T>* = nullptr> void Add(T) {} template< typename T, std::enable_if_t<!std::is_same::value, T>* = nullptr> void Add(T) {} e può distinguere correttamente tra queste due chiamate: Add(1); Add(1.0); mentre il seguente codice, se compilato, comporta la ridefinizione dell’errore di Add () ? template< typename T, typename = typename std::enable_if<std::is_same::value, […]

Risoluzione di sovraccarico con std :: function

Considera questo esempio di codice: #include #include typedef std::function func1_t; typedef std::function func2_t; struct X { X (func1_t f) { } X (func2_t f) { } }; int main ( ) { X x([](){ std::cout << "Hello, world!\n"; }); } Ero sicuro che non dovrebbe essere compilato, perché il compilatore non dovrebbe essere in grado […]

Qual è un caso d’uso per sovraccaricare le funzioni membro sui qualificatori di riferimento?

C ++ 11 rende ansible il sovraccarico delle funzioni membro in base ai qualificatori di riferimento: class Foo { public: void f() &; // for when *this is an lvalue void f() &&; // for when *this is an rvalue }; Foo obj; obj.f(); // calls lvalue overload std::move(obj).f(); // calls rvalue overload Capisco come […]

Costruttore di sovraccarico per Case Class di Scala?

In Scala 2.8 c’è un modo per sovraccaricare i costruttori di una case class? Se sì, si prega di inserire un frammento per spiegare, in caso contrario, si prega di spiegare perché?

Esiste davvero una ragione per cui overload && e || non cortocircuitare?

Il comportamento di cortocircuito degli operatori && e || è uno strumento straordinario per i programmatori. Ma perché perdono questo comportamento quando sono sovraccarichi? Capisco che gli operatori sono semplicemente zucchero sintattico per le funzioni, ma gli operatori di bool hanno questo comportamento, perché dovrebbe essere limitato a questo singolo tipo? C’è qualche ragionamento tecnico […]

elenco di operatori ruby ​​che possono essere sovrascritti / implementati

C’è una lista di tutti gli operatori ruby ​​che possono essere ignorati? (Non quelli che non possono!)

Regole di overloading Java

Recentemente mi sono imbattuto in due domande di sovraccarico che non riesco a trovare una risposta e non ho un ambiente java per eseguire qualche codice di test. Spero che qualcuno mi possa aiutare assemblando un elenco di tutte le regole seguite dai compilatori java per sovraccaricare o alternativamente indicarmi una lista che esiste già. […]

problema c ++ con sovraccarico di funzioni in una class ereditata

Questa è probabilmente una domanda noob, mi dispiace per quello. Recentemente ho affrontato un problema strano quando ho provato a gettare un po ‘di roba di alto livello in c ++, sovraccarico di funzioni ed ereditarietà. Mostrerò un semplice esempio, solo per dimostrare il problema; Ci sono due classi, classA e classB , come di […]

Perché il compilatore Scala non supporta i metodi sovraccaricati con gli argomenti predefiniti?

Mentre potrebbero esserci casi validi in cui tali sovraccarichi di metodo potrebbero diventare ambigui, perché il compilatore non accetta il codice che non è ambiguo in fase di compilazione né in fase di esecuzione? Esempio: // This fails: def foo(a: String)(b: Int = 42) = a + b def foo(a: Int) (b: Int = 42) […]