Hacktoberfest 2026:メンテナが10月に向けて印を付けた、オープンで初心者向けの issue。 Hacktoberfest の issue を見る

#include <boost/range/mfc.hpp> causes a compilation error

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

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

評価

難易度
3/5
見積もり時間
1〜2日
初心者へのやさしさ
45/100
issue の種類
バグ
明瞭さ
明確に書かれている
活発さ
停滞
技術スタック
cpp
領域
compilers

調査の方向性

Boost 1.81、/std:c++20、および <boost/range/mfc.hpp> を使用する小さな C++ コンソールアプリケーションで失敗を再現します。まず boost/range/detail/microsoft.hpp の 624-626 行付近から始め、boost/range/mfc.hpp の 881 行の診断情報を使用してイテレータのインスタンス化を追跡します。報告されたコンパイラ構成で include のコンパイルに成功すれば完了です。

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

説明

Hi,
I updated the visual C++ compiler from 17.0.6 to 17.4.6 and I'm getting a compilation error by including <boost/range/mfc.hpp>:

1>\boost\range\detail\microsoft.hpp(626,33): error C2440: 'return': cannot convert from 'const void *' to 'const void *&'
1>\boost\range\detail\microsoft.hpp(624,1): message : while compiling class template member function 'const void *&boost::range_detail_microsoft::list_iterator<const X,const void *,boost::use_default,boost::use_default>::dereference(void) const'
1> with
1> [
1> X=CPtrList
1> ]
1>\boost\iterator\iterator_facade.hpp(631,11): message : see reference to function template instantiation 'const void *&boost::range_detail_microsoft::list_iterator<const X,const void *,boost::use_default,boost::use_default>::dereference(void) const' being compiled
1> with
1> [
1> X=CPtrList
1> ]
1>\boost\range\mfc.hpp(881,1): message : see reference to class template instantiation 'boost::range_detail_microsoft::list_iterator<const X,const void *,boost::use_default,boost::use_default>' being compiled
1> with
1> [
1> X=CPtrList
1> ]

The project is compiled with /std:c++20 switch.

This is easily reproducible - it is just needed to create a C++ console application, add the include to <boost/range/mfc.hpp> to one cpp file, add boost directory to include directories and set the compiler flag /std:c++20.

I'm using boost 1.81.

Best regards,
Gabriel

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

環境構築

このプロジェクトには開発コンテナ、Dockerfile、コントリビューションガイドがありません。まず README を読み、一般的な手順ははじめてのコントリビューションガイドを参照してください。

はじめの一歩

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

boostorg/range のほかの issue

boostorg/range の issue をすべて見る

似ている issue

C++ の issue をもっと見る

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

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