Return of bug#6554 (Compiler error dereferencing multi_array value via an iterator)

オープン
#31 コメント 2 件 リアクション 0 件 担当者 0 名 GitHub で見る

まだ誰も着手していません。

評価

難易度
3/5
見積もり時間
1〜2日
初心者へのやさしさ
48/100
issue の種類
バグ
明瞭さ
おおむね明確
活発さ
停滞
技術スタック
cpp
領域
data

調査の方向性

まず、リンクされた Godbolt の例で boost/multi_array.hpp を使って issue にある失敗する式を再現し、次にコンパイルできるデリファレンス形式と比較します。a.begin()->begin()->value に関係する multi_array イテレータの経路を調査します。失敗する式がコンパイルでき、示されているとおりに値を代入でき、この例の回帰テストによるカバレッジが追加されれば完了です。

索引モデルが issue の本文から書いたものです。

説明

The bug described in https://svn.boost.org/trac10/ticket/6554 seems to return. I tried the example from this bug in godbolt: https://godbolt.org/z/4vMf8oo4q and it fails to compile. The code I used is:

#include <boost/multi_array.hpp>

struct data
{
	int	value;
};
typedef boost::multi_array<data, 2> array_type;

int main() {
    array_type	a(boost::extents[4][5]);

    // ERROR: Cannot compile this line
    a.begin()->begin()->value = 7;

    // Compiles successfully
    (*a.begin()->begin()).value = 5;
    return 0;
}

All versions of boost on godbolt (1.64 to 1.79) seem to be affected.

主要言語
C++
スター
32
フォーク
39
PR マージ指標
30日以内にマージされた PR はありません

コントリビューションガイド

このリポジトリのコントリビューションガイドは索引されていません

はじめの一歩

  1. issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
  2. 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
  3. リポジトリをフォークし、ブランチを切って変更します。
  4. issue 番号を参照したプルリクエストを送ります。

boostorg/multi_array のほかの issue

boostorg/multi_array の issue をすべて見る

似ている issue

C++ の issue をもっと見る

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。