S
Hallo zusammen,
ich habe heute, nach längerer Zeit, mal wieder mit modules experimentiert.
Ich habe Probleme, wenn ich einen Typen exportieren möchte, auf dem der Star Ship Operator spezifiziert ist und ich den Typen an einer Stelle importiere, die auch "altmodische" stl Header verwendet.
Um ehrlich zu sein, immer wenn was stl spezifisches exportiert wird, wenn ich z.B. einen unique_ptr Member habe, habe ich das gleiche Problem.
Wenn ich zum Beispiel eine Funktion exportiere, die eine stl Funktion aufruft, habe ich kein Problem (z.B std::cout).
Hier Code zur Veranschaulichung:
export module test;
import std;
export struct Test
{
double value{};
auto operator<=>(const Test&) const = default;
};
export void test()
{
std::cout << "test\n";
}
und
import test;
#include <iostream>
int main()
{
Test bla;
test();
return 0;
}
kompiliert mit VS 2022 (Version 17.8.3) nicht.
Wenn ich entweder das #include <iostream> raus nehme, oder aber den Starship Operator, dann funktioniert das.
Ist das ein Bug im Compiler, oder mache ich etwas falsch?
Die Fehlermeldung ist: error C1117: unrecoverable error importing module 'std': symbol 'partial_ordering' has already been defined