From 8a944b14616ef124fb61c5793c581789b2d58768 Mon Sep 17 00:00:00 2001 From: suomesta Date: Tue, 28 Nov 2023 21:47:39 +0900 Subject: [PATCH] fix a sample of atomic. improve some samples and expressions --- reference/iterator/iter_move.md | 2 +- reference/memory/atomic.md | 4 ++-- reference/memory/make_unique_for_overwrite.md | 10 ++++------ reference/type_traits/is_corresponding_member.md | 2 +- reference/type_traits/is_pod.md | 1 - .../is_pointer_interconvertible_with_class.md | 2 +- reference/type_traits/is_trivial.md | 3 +-- 7 files changed, 10 insertions(+), 14 deletions(-) diff --git a/reference/iterator/iter_move.md b/reference/iterator/iter_move.md index f77ff7ec78..9815d507aa 100644 --- a/reference/iterator/iter_move.md +++ b/reference/iterator/iter_move.md @@ -78,7 +78,7 @@ namespace std { struct I { int n = 0; - // HIdden friendsとして定義、prvalueを返す + // Hidden friendsとして定義、prvalueを返す friend auto iter_move(I& self) -> I { return std::move(self); } diff --git a/reference/memory/atomic.md b/reference/memory/atomic.md index f5a561f620..9d97732a0b 100644 --- a/reference/memory/atomic.md +++ b/reference/memory/atomic.md @@ -70,9 +70,9 @@ void producer() { void consumer() { // データが供給されたら、resourceとyを入れ替える (resourceが空になり、yにデータが入る)。 std::shared_ptr y; - while (!resource.exchange(y)) { - std::cout << *y << std::endl; + while (!(y = resource.exchange(y))) { } + std::cout << *y << std::endl; } int main() diff --git a/reference/memory/make_unique_for_overwrite.md b/reference/memory/make_unique_for_overwrite.md index e22c00e000..35fe5abf68 100644 --- a/reference/memory/make_unique_for_overwrite.md +++ b/reference/memory/make_unique_for_overwrite.md @@ -47,24 +47,22 @@ namespace std { ```cpp example #include #include -#include int main() { - std::unique_ptr> p1 = std::make_unique_for_overwrite>(); + std::unique_ptr i1 = std::make_unique_for_overwrite(); // 必ず初期化する - p1->first = 0; - p1->second = 0; + *i1 = 0; - std::cout << p1->first << ':' << p1->second << std::endl; + std::cout << *i1 << std::endl; } ``` * std::make_unique_for_overwrite[color ff0000] ### 出力 ``` -0:0 +0 ``` ## バージョン diff --git a/reference/type_traits/is_corresponding_member.md b/reference/type_traits/is_corresponding_member.md index acd1794989..18b10a77d2 100644 --- a/reference/type_traits/is_corresponding_member.md +++ b/reference/type_traits/is_corresponding_member.md @@ -1,6 +1,6 @@ # is_corresponding_member * type_traits[meta header] -* function[meta id-type] +* function template[meta id-type] * std[meta namespace] * cpp20[meta cpp] diff --git a/reference/type_traits/is_pod.md b/reference/type_traits/is_pod.md index 230511dfaf..7faded88f4 100644 --- a/reference/type_traits/is_pod.md +++ b/reference/type_traits/is_pod.md @@ -54,7 +54,6 @@ static_assert(std::is_same::type, std::false_type>::value, "ty static_assert(std::is_pod() == false, "is_pod() == false"); static_assert(std::is_pod::value == true, "const volatile int is POD"); -static_assert(std::is_pod::value == false, "int& is not POD"); struct POD_struct{}; struct non_POD_struct { diff --git a/reference/type_traits/is_pointer_interconvertible_with_class.md b/reference/type_traits/is_pointer_interconvertible_with_class.md index 104dd8dabe..2291a70eb0 100644 --- a/reference/type_traits/is_pointer_interconvertible_with_class.md +++ b/reference/type_traits/is_pointer_interconvertible_with_class.md @@ -1,6 +1,6 @@ # is_pointer_interconvertible_with_class * type_traits[meta header] -* function[meta id-type] +* function template[meta id-type] * std[meta namespace] * cpp20[meta cpp] diff --git a/reference/type_traits/is_trivial.md b/reference/type_traits/is_trivial.md index 38031617ee..1a3677574a 100644 --- a/reference/type_traits/is_trivial.md +++ b/reference/type_traits/is_trivial.md @@ -45,14 +45,13 @@ static_assert(std::is_same::type, std::false_type>::value, static_assert(std::is_trivial() == false, "is_trivial() == false"); static_assert(std::is_trivial::value == true, "const volatile int is trivial"); -static_assert(std::is_trivial::value == false, "int& is not trivial"); class trivial_class{}; struct non_trivial_class { non_trivial_class() {} // デフォルトコンストラクタが非トリビアル }; static_assert(std::is_trivial::value == true, "trivial_class is trivial"); -static_assert(std::is_trivial::value == true, "trivial_class& is trivial"); +static_assert(std::is_trivial::value == false, "trivial_class& is not trivial"); static_assert(std::is_trivial::value == false, "non_trivial_class is not trivial"); static_assert(std::is_trivial::value == false, "non_trivial_class& is not trivial");