Skip to content

Commit

Permalink
fix a sample of atomic.
Browse files Browse the repository at this point in the history
improve some samples and expressions
  • Loading branch information
suomesta committed Nov 28, 2023
1 parent 519f8a7 commit 8a944b1
Show file tree
Hide file tree
Showing 7 changed files with 10 additions and 14 deletions.
2 changes: 1 addition & 1 deletion reference/iterator/iter_move.md
Expand Up @@ -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);
}
Expand Down
4 changes: 2 additions & 2 deletions reference/memory/atomic.md
Expand Up @@ -70,9 +70,9 @@ void producer() {
void consumer() {
// データが供給されたら、resourceとyを入れ替える (resourceが空になり、yにデータが入る)。
std::shared_ptr<int> y;
while (!resource.exchange(y)) {
std::cout << *y << std::endl;
while (!(y = resource.exchange(y))) {
}
std::cout << *y << std::endl;
}
int main()
Expand Down
10 changes: 4 additions & 6 deletions reference/memory/make_unique_for_overwrite.md
Expand Up @@ -47,24 +47,22 @@ namespace std {
```cpp example
#include <iostream>
#include <memory>
#include <utility>
int main()
{
std::unique_ptr<std::pair<int, int>> p1 = std::make_unique_for_overwrite<std::pair<int, int>>();
std::unique_ptr<int> i1 = std::make_unique_for_overwrite<int>();
// 必ず初期化する
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
```

## バージョン
Expand Down
2 changes: 1 addition & 1 deletion 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]

Expand Down
1 change: 0 additions & 1 deletion reference/type_traits/is_pod.md
Expand Up @@ -54,7 +54,6 @@ static_assert(std::is_same<std::is_pod<int&>::type, std::false_type>::value, "ty
static_assert(std::is_pod<int&>() == false, "is_pod<int&>() == false");
static_assert(std::is_pod<const volatile int>::value == true, "const volatile int is POD");
static_assert(std::is_pod<int&>::value == false, "int& is not POD");
struct POD_struct{};
struct non_POD_struct {
Expand Down
@@ -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]

Expand Down
3 changes: 1 addition & 2 deletions reference/type_traits/is_trivial.md
Expand Up @@ -45,14 +45,13 @@ static_assert(std::is_same<std::is_trivial<int&>::type, std::false_type>::value,
static_assert(std::is_trivial<int&>() == false, "is_trivial<int&>() == false");
static_assert(std::is_trivial<const volatile int>::value == true, "const volatile int is trivial");
static_assert(std::is_trivial<int&>::value == false, "int& is not trivial");
class trivial_class{};
struct non_trivial_class {
non_trivial_class() {} // デフォルトコンストラクタが非トリビアル
};
static_assert(std::is_trivial<trivial_class>::value == true, "trivial_class is trivial");
static_assert(std::is_trivial<trivial_class&>::value == true, "trivial_class& is trivial");
static_assert(std::is_trivial<trivial_class&>::value == false, "trivial_class& is not trivial");
static_assert(std::is_trivial<non_trivial_class>::value == false, "non_trivial_class is not trivial");
static_assert(std::is_trivial<non_trivial_class&>::value == false, "non_trivial_class& is not trivial");
Expand Down

0 comments on commit 8a944b1

Please sign in to comment.