Bonjour à tous,
Avec G++-7 J'ai cette erreur:
error: expected primary-expression before ‘>’ token
Voici le code:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 T_Mesh mesh = loader.LoadfromFile<Vertex>(inFilePath); ^
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 template <typename T_Mesh, typename T_Loader> void LoadComputeExport(vs::Shader &inShader, const std::string &inFilePath, const po::variables_map &inVm) { T_Loader loader; using Vertex = typename T_Mesh::Vertex; T_Mesh mesh = loader.LoadfromFile<Vertex>(inFilePath); Export<T_Mesh>(vs::Compute(mesh, inShader), inVm); }
Voici un appel :
Ce que ça veux dire:
Code : Sélectionner tout - Visualiser dans une fenêtre à part LoadComputeExport<vs::obj::yocto::Mesh, vs::obj::Loader>(shader, file_path, vm);
Je souhaite charger un fichier «obj» dans une Mesh de la librairie yocto. Je veux lui appliquer un shader et l'exporter (le choix du format d'export étant figé).
Voici une déclartion de LoadFromFile
Je fait appel à une spécialisation d'une fonction de classe. Remarque: Cette spécialisation sera bien exporter dans la DLL.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 class M_LIB_DLL_EXPORT Loader : public vs::Loader { public: Loader(); ~Loader(); template<typename T_Vertex> vs::Mesh<T_Vertex> LoadfromFile(const std::string &inFilePath); }; template<> vs::obj::yocto::Mesh vs::obj::Loader::LoadfromFile(const std::string &inFilePath);
Si je n'essaie pas de factoriser mon chargement/calcul/export, l'appel à LoadFromFile fonctionne très bien.
En voici un appel sans factorisation:
Auriez vous une idée de comment corriger cela. Le message de g++ ne dit pas ce qu'il considère avoir entre les chevrons. Donc je sais pas ce que mon Vertex a de mal.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 typedef vs::Mesh<vs::obj::yocto::Vertex> Mesh; Mesh mesh = obj_loader.LoadfromFile<Mesh::Vertex>(vm[Options::input_obj].as<std::string>())
Partager