Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -44,6 +44,9 @@ out/
bin/
*.ilk
*.pdb
code/ModernCpp-ConcurrentProgramming-Tutorial/.cache
code/ModernCpp-ConcurrentProgramming-Tutorial/.xmake
code/ModernCpp-ConcurrentProgramming-Tutorial/build

CMakePresets.json
CMakeUserPresets.json
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
#include <iostream>
#include <string>
#include <thread>
#include <algorithm>
#include <numeric>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
#include <thread>
#include <functional>

void f(const std::string&);
void f(const std::string&) { };

void test() {
char buffer[1024]{};
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ struct X {
};

int main(){
std::thread
std::thread;
X x{ [] {} };
X x2{ x }; // 选择到了有参构造函数,不导致编译错误
// X x2{ x }; // 选择到了有参构造函数,不导致编译错误
}
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
#include <memory>

std::unique_lock<std::mutex> get_lock() {
extern std::mutex some_mutex;
static std::mutex some_mutex;
std::unique_lock<std::mutex> lk{ some_mutex };
return lk; // 选择到 unique_lock 的移动构造,转移所有权
}
Expand Down
25 changes: 25 additions & 0 deletions code/ModernCpp-ConcurrentProgramming-Tutorial/xmake.lua
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
add_rules("mode.debug", "mode.release")
add_rules("plugin.compile_commands.autoupdate", { outputdir = "./build" })

local requirements = {
"sfml",
"fmt",
"qt6core",
"boost",
}

set_runtimes("MD")
set_languages("c++20")
set_encodings("utf-8")

add_requires(requirements)
add_cxflags("/Zc:__cplusplus")

for _, file in ipairs(os.files("./*.cpp")) do
target(path.basename(file))
set_kind("binary")
-- set_toolchains("clang-cl")

add_packages(requirements)
add_files(file)
end