MSVC kann das Programm nicht mit C ++ 20 -Modulfunktion kompilierenC++

Programme in C++. Entwicklerforum
Anonymous
 MSVC kann das Programm nicht mit C ++ 20 -Modulfunktion kompilieren

Post by Anonymous »

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.>

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post