Come indicato in una serie di conferenze e articoli di Andrew Sutton, la proposta di Concepts Lite ha funzionalità di overload basate su concetti e allo stesso tempo non ha una nozione di mappa concettuale, cioè gli argomenti dei template sono controllati da concetti completamente da un compilatore. Detto questo non è chiaro come risolverebbero un problema descritto nel documento del 2005 da Siek e Gregor, "Explicit model definitions are necessary". In breve, il problema potrebbe essere affermato con la seguente citazione del documento.Come evitare problemi con l'overload basato su concetti senza modelli espliciti (ovvero mappe concettuali)
So, there are certain input iterator types (such as istream_iterator) that would be misclassified as forward iterators. What is the danger in this? Some algorithms dispatch based on Input_iterator vs. Forward_iterator.
(Ci sono altri esempi oltre iteratori però.)
sì, sono consapevole di quello sopra citato documento considerato C++ 0x concetti, ma il problema sembra essere “generico” over concetti proposte.
@Columbo Ho tentato di riscriverlo nella sintassi n4377; per favore controlla se ho capito bene (non ho accesso a un compilatore abilitato a Concepts in questo momento). – ecatmur
La sintassi che avevi era corretta, ma un po 'strana in quanto non c'è bisogno di un'espressione require se non hai bisogno di fare riferimento ai suoi parametri. L'ho semplificato. – Casey
@Casey geniale, grazie. – ecatmur