2017-01-11 5 views
0

J'ai essayé de réduire à son minimum:Impossible de déduire le paramètre modèle 'N'

#include <array> 

template <std::size_t N> 
void f(int, std::array<int, N> const & = 
     std::array<int, 0>()) { 
} 


int main() { 
    f(10); 
} 

array_test.cpp: 4: 6: Note: déduction argument de modèle/substitution a échoué: array_test.cpp: 10: 9: note: impossible de déduire le paramètre de modèle 'N' f (10);

Pourquoi cela échoue-t-il? Je ne comprends pas: il devrait être déductible de l'argument par défaut. J'ai besoin d'une solution de contournement.

+4

Une solution de contournement serait par défaut N comme dans 'template ' – DeiDei

Répondre