質問するログイン新規登録

質問編集履歴

4

表現修正

2016/05/08 08:59

投稿

Chironian
Chironian

スコア23274

title CHANGED
File without changes
body CHANGED
@@ -18,8 +18,8 @@
18
18
 
19
19
  ---
20
20
  【実装しました】
21
- raccyさんご提案のreinterpret_cast<>を使う方法でうまくいきました。私が何か見落として無ければ必要な機能に全て対応できました。また、私に可能な確認とcatsforepawさんのclangでの確認により、使ってもいだろうと判断しました。
21
+ raccyさんご提案のreinterpret_cast<>を使う方法でうまくいきました。私が何か見落として無ければ必要な機能に全て対応できた筈です。また、私に可能な確認とcatsforepawさんのclangでの確認により、使っても大きな問題にはならないだろうと判断しました。
22
22
 
23
23
  最初にご提案頂いたraccyさんの回答をベスト・アンサーとさせて頂きました。
24
- raccyさん、catsforepawさん、ありがとうございました
24
+ raccyさん、catsforepawさん、ありがとうございま
25
- また、epistemeさんもお付き合い、ありがとうございました
25
+ また、epistemeさんもお付き合い、ありがとうございま

3

結果追記

2016/05/08 08:59

投稿

Chironian
Chironian

スコア23274

title CHANGED
File without changes
body CHANGED
@@ -14,4 +14,12 @@
14
14
  【追記】
15
15
  現在、開発中のライブラリにて配列型のnewをサポートするかどうか検討中です。
16
16
  そもそもC++にて配列型をnewできないのであればエラー処理する予定です。
17
- しかし、もし、配列型をnewできるのであればサポートしたいと考えています。
17
+ しかし、もし、配列型をnewできるのであればサポートしたいと考えています。
18
+
19
+ ---
20
+ 【実装しました】
21
+ raccyさんご提案のreinterpret_cast<>を使う方法でうまくいきました。私が何か見落として無ければ必要な機能に全て対応できました。また、私に可能な確認とcatsforepawさんのclangでの確認により、使っても良いだろうと判断しました。
22
+
23
+ 最初にご提案頂いたraccyさんの回答をベスト・アンサーとさせて頂きました。
24
+ raccyさん、catsforepawさん、ありがとうございました。
25
+ また、epistemeさんもお付き合い、ありがとうございました。

2

追記

2016/05/08 08:57

投稿

Chironian
Chironian

スコア23274

title CHANGED
File without changes
body CHANGED
@@ -8,4 +8,10 @@
8
8
  MinGWの場合、`error: cannot convert 'int*' to 'int (*)[3]' in initialization`というエラーになります。
9
9
  `new[]`が呼ばれてしまい、戻り値の型が`int`型へのポインタになってしまうのだと思います。
10
10
 
11
- `new[]`ではなく`new`を呼ばせる構文はないでしょうか?
11
+ `new[]`ではなく`new`を呼ばせる構文はないでしょうか?
12
+
13
+ ---
14
+ 【追記】
15
+ 現在、開発中のライブラリにて配列型のnewをサポートするかどうか検討中です。
16
+ そもそもC++にて配列型をnewできないのであればエラー処理する予定です。
17
+ しかし、もし、配列型をnewできるのであればサポートしたいと考えています。

1

型名修正

2016/05/07 04:11

投稿

Chironian
Chironian

スコア23274

title CHANGED
File without changes
body CHANGED
@@ -1,10 +1,10 @@
1
1
  C/C++の配列へのポインタは要素へのポインタにて代用される場合が多いです。(`int foo[3];`とした時、`foo`は`int`型へのポインタとなる等。)
2
2
 
3
3
  しかし、C++の場合、配列の要素数まで含めた型を定義できます。
4
- 例えば、`typedef int IntArray3[3];`とすれば、`IntArray3`は`int[3]`型として定義できます。
4
+ 例えば、`typedef int Int3Array[3];`とすれば、`Int3Array`は`int[3]`型として定義できます。
5
- この場合、`IntArray3*`は`int[3]`型へのポインタとなります。
5
+ この`Int3Array*`は`int[3]`型へのポインタとなります。
6
6
 
7
- そして、`IntArray3* bar=new IntArray3;`としたいのですが、できません。
7
+ そして、`Int3Array* bar=new Int3Array;`としたいのですが、できません。
8
8
  MinGWの場合、`error: cannot convert 'int*' to 'int (*)[3]' in initialization`というエラーになります。
9
9
  `new[]`が呼ばれてしまい、戻り値の型が`int`型へのポインタになってしまうのだと思います。
10
10