VS2022 mit MSVC 14.43.34808
Windows 11 Pro 24H2
Verwenden Sie cmake
Ich verwende httplib (https://github.com/yhirose cr. Operationen in Thread.h < /p>
H:\PROGRA~1\MICROS~1\2022\COMMUN~1\VC\Tools\MSVC\1443~1.348\bin\Hostx86\x64\cl.exe /nologo /TP -Dtest_EXPORTS /DWIN32 /D_WINDOWS /EHsc /Ob0 /Od /RTC1 -std:c++20 -MDd -Zi /showIncludes @CMakeFiles\test.dir\loader.cpp.obj.modmap /FoCMakeFiles\test.dir\loader.cpp.obj /FdCMakeFiles\test.dir\ /FS -c D:\Users\H5-A312\Desktop\network_projects\msvc_complie_test\loader.cpp
H:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.43.34808\include\thread(170): error C2676: binary '+': 'const std::chrono::time_point' does not define this operator or a conversion to a type acceptable to the predefined operator
H:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.43.34808\include\xutility(2014): note: could be 'std::reverse_iterator std::operator +(reverse_iterator::difference_type,const std::reverse_iterator &) noexcept()'
H:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.43.34808\include\thread(170): note: 'std::reverse_iterator std::operator +(reverse_iterator::difference_type,const std::reverse_iterator &) noexcept()': could not deduce template argument for 'const std::reverse_iterator &' from 'const std::chrono::duration'
...
< /code>
MRE: < /p>
loader.cpp:
import client;
int main() {
auto client = Client();
return 0;
}
< /code>
client.cppm:
module;
#include "httplib.h"
export module client;
export class Client
{
public:
Client()
{
}
private:
httplib::Client client = httplib::Client("localhost", 1080);
};
< /code>
cMakelists.txt:
cmake_minimum_required(VERSION 3.29)
project(test)
set(CMAKE_CXX_STANDARD 20)
add_library(test SHARED
loader.cpp
)
target_sources(test PRIVATE
FILE_SET modules TYPE CXX_MODULES
BASE_DIRS
${PROJECT_SOURCE_DIR}
FILES
client.cppm
)
< /code>
Das Problem ergibt sich nur, wenn die Httplib-Referenz lautet: < /p>
In einem Modul < /li>
Innerhalb einer Klasse < /li>
kompiliert mit MSVC (als MSYS2-Clang kann es leicht kompilieren) < /> < /> < /> < /> < /> < /> < /> < /uls < /> < /> < /> < /> < /uls < /> < /> < /> < /> < /> < /uL kann es leicht kompilieren) < /> < /> < /> < /> < /> < /> < /> < /> < /uL.>
MSVC kann das Programm nicht mit C ++ 20 -Modulfunktion kompilieren ⇐ C++
-
- Similar Topics
- Replies
- Views
- Last post