Код: Выделить всё
import fmt;
import std;
int main(int argc, char* argv[])
{
auto v = std::vector{1, 2, 3};
fmt::print("{}", fmt::join(v, ", "));
return 0;
}
Код: Выделить всё
cmake_minimum_required(VERSION 3.30 FATAL_ERROR)
set(CMAKE_CXX_STANDARD 23)
set(CMAKE_EXPERIMENTAL_CXX_IMPORT_STD "0e5b6991-d74f-4b3d-a41c-cf096e0b2508")
set(CMAKE_CXX_MODULE_STD 1)
project(main LANGUAGES CXX)
add_executable(main main.cpp)
include(FetchContent)
FetchContent_Declare(
fmt
GIT_REPOSITORY https://github.com/fmtlib/fmt
GIT_TAG 0c9fce2ffefecfdce794e1859584e25877b7b592) # 11.0.2
FetchContent_MakeAvailable(fmt)
#target_link_libraries(main fmt::fmt)
target_sources(main
PUBLIC FILE_SET CXX_MODULES
FILES
${fmt_SOURCE_DIR}/src/fmt.cc
)
target_include_directories(main PRIVATE ${fmt_SOURCE_DIR}/include)
Я тоже заметил это:
Код: Выделить всё
import fmt;
int main() {
fmt::print("Hello, modules!\n");
}
Код: Выделить всё
cmake_minimum_required(VERSION 3.11)
project(HELLO CXX)
set(CMAKE_CXX_EXTENSIONS OFF)
add_subdirectory(fmt)
add_executable(hello hello.cc)
target_link_libraries(hello fmt)
Я не могу найти другие примеры использования fmt в C++20 или C++ 23 стандарт с Гуглом. Пример C++ 20 или C++ 23 полезен для меня и других людей, заинтересованных в нем.
Подробнее здесь: https://stackoverflow.com/questions/791 ... e-in-cmake