Je viens d'expérimenter avec la bibliothèque boost :: function_types récemment, et j'ai rencontré un peu d'accroc. Je veux trouver la convention d'appel d'une fonction donnée, mais je ne suis pas tout à fait sûr de savoir comment faire cela. Voici ce que j'ai pour le moment:Fonction appel convention avec boost :: function_types
Cela produit une erreur sur la façon dont il ne peut pas trouver les valeurs de balises * _cc dans chaque instruction if. Je soupçonne que cela puisse avoir quelque chose à voir avec la façon dont je définis les macros; la documentation n'est pas très claire sur la façon de configurer des conventions d'appel supplémentaires avec votre compilateur ... Toute aide ici serait appréciée.
Merci,
ÉDITÉ: a fonctionner, semble comme si je devais inclure config/config.hpp, comme ci-dessous:
#define BOOST_FT_COMMON_X86_CCs 1
#include <boost/function_types/config/config.hpp>
#include <boost/type_traits.hpp>
#include <boost/function_types/property_tags.hpp>
#include <boost/function_types/is_function.hpp>
#include <boost/function_types/is_function_pointer.hpp>
#include <boost/function_types/parameter_types.hpp>
#include <boost/function_types/result_type.hpp>
#include <boost/function_types/function_arity.hpp>
template<class F>
inline void parse_cc(F f, func_info_s& out) {
out.cc = cc_err;
if (boost::function_types::is_function<F, stdcall_cc>::value == true) {
out.cc = cc_stdcall;
} else if (boost::function_types::is_function<F, fastcall_cc>::value == true) {
out.cc = cc_fastcall;
} else if (boost::function_types::is_function<F, cdecl_cc>::value == true) {
out.cc = cc_cdecl;
}
}
Pourriez-vous ajouter votre modification en tant que réponse, afin que la question soit correctement acceptée? Merci! –
J'ai modifié mon message pour refléter le code correct, fonctionnel (sans jeu de mots) – Exponent
Vous devriez publier votre solution comme une réponse, puis l'accepter. – GManNickG