2017-06-28 1 views
-7

Quelle est la différence entre boost::any et le mot-clé auto? Est-ce que tout accepté dans la bibliothèque standard est auto?Différence entre boost: any et std: auto

+2

Il n'y a rien de tel que 'std: auto' ou même' std :: auto'. Voulez-vous dire le mot clé 'auto' pour la déduction de type compilateur dans les définitions de variables? Ou voulez-vous dire le nouveau C++ 17 ['std :: any'] (http://en.cppreference.com/w/cpp/utility/any) (qui a été inspiré par' boost :: any')? –

+1

Qu'est-ce que 'std :: auto'? Confondez-vous cela avec le mot-clé de déduction de type automatique 'auto'? –

+0

N'utilisez pas 'using namespace std;' dans vos programmes. Ce sont des bugs qui attendent de se produire. – spectras

Répondre

3

(Je vais mettre de côté votre faute de frappe en utilisant seulement un seul deux-points pour l'opérateur de résolution d'étendue ::).

Il n'y a pas une telle chose comme std::auto pour commencer, et il n'y aura jamais comme auto est un mot-clé . A partir de C++ 11, auto signifie "déduire le type s'il vous plaît pour moi, compilateur". Et c'est jamais ambigu. En d'autres termes, une variable déclarée comme auto aura un type spécifique déduit par le compilateur, et pas nécessairement le même type qu'une autre variable déclarée comme auto.

auto est pas le même que boost::any: celui-ci vous permet de stocker beaucoup de choses différentes dans une instance. C'est plutôt comme le type Variant des différents Microsoft Basics.