スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

Visual Studio 2015でconstexpr delegating constructorが通らない

初めに

Update 1でfixされました。やったね。

みなさまナマステ。ええっとまあタイトルのとおりです。
delegating constructorもconstexprもC++11の機能ですが(C++14のconstexpr関数の制限緩和は今回関係ない)
constexprコンストラクタから他のconstexprコンストラクタを呼ぶとエラーになります。
どういうことかコードを見ましょう。

問題のコード

DxGraphicHandle.cpp

struct YPbPr {//ITU-R BT.709 cf.)http://koujinz.cocolog-nifty.com/blog/2009/03/rgbycbcr-a4a5.html
	YPbPr() = default;
	constexpr YPbPr(uint8_t i_y, uint8_t i_pb, uint8_t i_pr) : y(i_y), pb(i_pb), pr(i_pr) {}
	explicit constexpr YPbPr(uint8_t i_y) : YPbPr(i_y, 0, 0){}//C++11:delegating constructor
	uint8_t y, pb, pr;
};
dxgraphichandle.cpp(213): error C3249: 'constexpr' 関数のステートメントまはたサブ式が誤っています。
dxgraphichandle.cpp(213): error C2476: コンストラクター 'constexpr' はすべてのメンバーを初期化できません。
dxgraphichandle.cpp(214): note: 'detail::YPbPr::y' はコンストラクターによって初期化されませんでした
dxgraphichandle.cpp(214): note: 'detail::YPbPr::pb' はコンストラクターによって初期化されませんでした
dxgraphichandle.cpp(214): note: 'detail::YPbPr::pr' はコンストラクターによって初期化されませんでした

あ、detail名前空間に書いてます。
で調べてみるとかつてgcc4.7.0でも同じようなことがあったようです。
Bug 51526 - [C++11][constexpr] constexpr delegating constructor should be accepted

結論

VSのバグじゃね?どうやってバグ報告投げるんだろ。

解決策

今回はdelegating constructor使わなくても書けるので使わなければ問題無いです。

struct YPbPr {//ITU-R BT.709 cf.)http://koujinz.cocolog-nifty.com/blog/2009/03/rgbycbcr-a4a5.html
	YPbPr() = default;
	constexpr YPbPr(uint8_t i_y, uint8_t i_pb, uint8_t i_pr) : y(i_y), pb(i_pb), pr(i_pr) {}
	explicit constexpr YPbPr(uint8_t i_y) : y(i_y), pb(0), pr(0) {}
	uint8_t y, pb, pr;
};

その後

どうもすでにMSにバグ報告が何件かいっているようなんですが

MSはfixしたと言っています。つまり次のバージョン(Visual Studio 2015 Update1??)では治っているということ?現時点では打つ手なし?

スポンサーサイト

テーマ : プログラミング
ジャンル : コンピュータ

WkmUtl騒動に関するyumetdoの謝罪と現状認識

初めに

今回の騒動の引き金を引いたのは間違いなく私@yumetodoです。関係者みなさま、申し訳ありませんでした@MaverickTse 氏含むわかめの皆様に何か言いに行くのは筋違いです。また以下の文章に関してはすべて私yumetodoにお問い合わせください。

後述しますが、わかめはslackという閉鎖掲示板のようなものでやり取りをしているのですが、私はそんなもの見れるわけが無いので、Twitterに出てきている情報のみで書いています。

また、Issueなどで議論を喚起していた@MaverickTse 氏が
XXXUTL始動から今までの経緯と思惑
http://mavericktse.mooo.com/wordpress/archives/2274
を上げてますのでそれも合わせてお読みください。

そもそもWkmUtlとはなにか、外から知り得る限りの印象

皆さんAviUtlはご存知・・のことと思いますが、知らなかったらこの記事見ないでいいです、その後継ソフトを作るものです。
「ふえるワカメ」なる優秀なプログラマ(私の私見です)が集まっているコミュニティで始まったので「わかめふえてる」略してWkmUtlと名付けられた・・・というわけでは無いですが、まあそんな感じでしょう

騒動の始まり

約一週間前、2015年11月25日(JST)に@MaverickTse 氏がそのUI案をあげていました。
それを見て私はそれがいいと思えなかったので対案の制作にとりかかりました。

土日かけて(他のことしながらですが、大学のレポートとかレポートとか)UI考えて、2015/11/30 14:39(JST)に私のUI案が完成しました。

その少し前に

こんなツイートを投げた所、@MaverickTse 氏より

upload the file somewhere (may be somewhere in your own repo) and let me transfer the file for you. I don't want you to be messed with territorial behaviors from other collaborators...
(日本語訳)どこか(yumetodoのgithub repoとか)にアップロードしてくれ、そうしたら私がWkmUtlに転送(mergeのこと?)する。私(MaverickTse)は(WkmUtlの、つまりはわかめの)他のcollaboratorsから縄張り意識(訳合ってるかわからん)が原因で騒動に巻き込まれてほしくない

という返信が来ました。この時点で正直首をかしげていたのですが(2文目)、とにかくリンクをおくればええんやな、ということで

https://github.com/yumetodo/WkmUtl/tree/yumetodo_UI_design/UI/Concepts/yumetodo_01 …
できました。
足りないものがあったら言ってください

とDMしました(騒動の後リンク先のrepoは削除しています)

同じ頃完成報告をTwitterでしました

そして同日17時(JST)ごろ、

本家のrepoに@MaverickTse 氏によってmergeされました。
この時点では、私の案がぼろくそに叩かれて結果UIが決まればいいな、と思っていました。そういえば水木しげるさんの訃報が流れたのはこの頃でした。 21時ごろに

意見も寄せられていました。

ちなみにこの時点で@MaverickTse 氏はすでに寝てたと思います

騒動

ところが、muken氏が(多分)仕事が終わって帰宅した(と思われる)22時半(JST)頃相次いで

のような投稿がありました。
私はmuken氏(@OumaeKumikoBot)のツイートをずっと見ていた(というよりタブ開いてたから新着ツイート追えてた)ので気が付いたわけです。
でこの時点では何のことかわかっていませんでした。

その後も騒動は広がっていき

githubとツイートを見ながら何事か探っていた私は、「素材」の2文字をみて
(UI案に使った動画のサムネが著作権的にあかんかったのかな) 
とやっと思い当たり

muken氏に問い合わせたら 私が有罪の模様。多分「素材」なんだろうとは思いつつ、違ったら困るので

を投げつつ、修正を始めました。

日付が変わり2015/12/1 2:15(JST)に素材を変えた修正版が完成しました。この時点ではlocalにcommitしただけで、pushしてないのでネット上には上げていません。

でその後スヤァしました。この時点ならmergeをrebaseとpush -fで履歴改ざん、のち修正版をmergeすればさらにこじれることはなかったと思っています(違ったらすみません)

起きてみると@MaverickTse 氏が前日のmergeをrevert(取り消し)していました。

とりあえず寝る前の修正版をpushしました これをDMで@MaverickTse 氏になげたところ、まあいろいろやり取りが始まりました。 先にちらっと言ったとおり、わかめはslack上でやり取りをしているので、そこでの話も(最終的にTwitterで公開されたことから推察できる範囲の情報が)流れてきました。 この辺は最初に書いた「XXXUTL始動から今までの経緯と思惑」と概ね同じ話です、で納得してください。 ただ、GitHubだけではなく、Slack上でも編集のガイドラインがなかったようです。これはmuken氏のツイート

でも分かりますね。

@MaverickTse 氏はいろいろ嫌になった模様で

WkmUtlから分離してMPUtlを作り始めました。

でmuken氏が帰宅して(帰宅途中という話もある)

話はおかしな方向に向かいます

「XXXUTL始動から今までの経緯と思惑」の中の「とんでもない発言貰った」というのはこの辺を指してるのかな。Slackで何かあったのかな、ようわからん。

で、日が変わって
XXXUTL始動から今までの経緯と思惑
http://mavericktse.mooo.com/wordpress/archives/2274
が上がり、それに対しての話が始まるんですがそれは私が書くことではないですね。

まとめ

  1. もともとWkmUtlの編集方針的なところが固まる前だった
  2. 私のUI案に某動画が素材として使われており著作権的に不味い状態だった
  3. その状態で@MaverickTse 氏にリンクを投げた
  4. @MaverickTse 氏がチェックミスをしてそれをmergeした
  5. それはプロジェクトの存立を脅かすものだった
  6. 話がやたら広がっていった
  7. 「責任」という言葉についての解釈が一致しなくなった
  8. 今に至る

WkmUtlの今後

謎。一度リセットみたいな話もあったけど分からない。

検索フォーム
デジタル・コルクマ3
コルクマワールド
東京 での時間:
更新履歴


総記事数:
Calendar 1.1
<
>
- - - - - - -
- 1 2 3 4 56
7 8 9 10 11 1213
14 15 16 17 18 1920
21 22 23 24 25 2627
28 29 30 31 - - -

全記事

Designed by 石津 花

最新記事
カテゴリ
最新コメント
最新トラックバック
月別アーカイブ
リンク
RSSリンクの表示
ブロとも申請フォーム

この人とブロともになる

QRコード
QR
プロフィール

yumetodo

Author:yumetodo
FC2ブログへようこそ!

Powered By FC2ブログ

今すぐブログを作ろう!

Powered By FC2ブログ

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。