During his discours at CppCon, Richard Smith a mentionné que même si le support de TS des modules est actuellement en cours de développement, il peut déjà être utilisé. J'ai donc construit clang 4.0 à partir de svn et ai essayé cela sur un exemple très simple. Dans mon fichier myclass.cppm
, j'ai défini une simple enveloppe pour un int
module myclass;
export class MyClass {
public:
MyClass (int i)
: _i{i} {}
int get() {
return _i;
}
private:
int _i;
};
et mon fichier main.cpp
crée simplement une instance de cette classe et affiche son int
retenu dans std::cout
.
#include
#include
import myclass;
int main(int, char**) {
MyClass three{3};
std::cout << std::to_string(three.get()) << std::endl;
}
Ensuite j'ai essayé de le compiler via clang++ -std=c++1z -fmodules-ts main.cpp
et avec clang++ -std=c++1z -fmodules-ts myclass.cppm main.cpp
mais cela ne fonctionne pas et j'obtiens le même message d'erreur dans les deux cas :
main.cpp:3:8: erreur fatale : module 'myclass' introuvable
import test.myclass;
~~~~~~~^~~~
1 erreur générée.
Malheureusement je n'ai pas pu trouver de documentation pour -fmodules-ts
. Est-ce que quelqu'un sait comment je pourrais obtenir clang++ à compiler mon exemple simple ?