東方算程譚

Oriental Code Talk ── επιστημηが与太をこく、弾幕とは無縁のシロモノ。

目次

Blog 利用状況

ニュース

著作とお薦めの品々は

著作とお薦めの品々は
東方熱帯林へ。

あわせて読みたい

わんくま

  1. 東京勉強会#2
    C++/CLI カクテル・レシピ
  2. 東京勉強会#3
    template vs. generics
  3. 大阪勉強会#6
    C++むかしばなし
  4. 東京勉強会#7
    C++むかしばなし
  5. 東京勉強会#8
    STL/CLRによるGeneric Programming
  6. TechEd 2007 @YOKOHAMA
    C++・C++/CLI・C# 適材適所
  7. 東京勉強会#14
    Making of BOF
  8. 東京勉強会#15
    状態遷移
  9. 名古屋勉強会#2
    WinUnit - お気楽お手軽UnitTest

CodeZine

  1. Cで実現する「ぷちオブジェクト指向」
  2. CUnitによるテスト駆動開発
  3. SQLiteで組み込みDB体験(2007年版)
  4. C++/CLIによるCライブラリの.NET化
  5. C# 1.1からC# 3.0まで~言語仕様の進化
  6. BoostでC++0xのライブラリ「TR1」を先取りしよう (1)
  7. BoostでC++0xのライブラリ「TR1」を先取りしよう (2)
  8. BoostでC++0xのライブラリ「TR1」を先取りしよう (3)
  9. BoostでC++0xのライブラリ「TR1」を先取りしよう (4)
  10. BoostでC++0xのライブラリ「TR1」を先取りしよう (5)
  11. C/C++に対応した、もうひとつのUnitTestFramework ─ WinUnit
  12. SQLiteで"おこづかいちょう"
  13. STL/CLRツアーガイド
  14. マージ・ソート : 巨大データのソート法
  15. ヒープソートのアルゴリズム
  16. C++0xの新機能「ラムダ式」を次期Visual Studioでいち早く試す
  17. .NETでマンデルブロ集合を描く
  18. .NETでマンデルブロ集合を描く(後日談)
  19. C++/CLI : とある文字列の相互変換(コンバージョン)
  20. インテルTBBによる選択ソートの高速化
  21. インテルTBB3.0 によるパイプライン処理
  22. Visual C++ 2010に追加されたSTLアルゴリズム
  23. Visual C++ 2010に追加されたSTLコンテナ「forward_list」
  24. shared_ptrによるObserverパターンの実装
  25. .NETでマンデルブロ集合を描く(番外編) ── OpenCLで超並列コンピューティング
  26. StateパターンでCSVを読む
  27. 状態遷移表からStateパターンを自動生成する
  28. 「ソートも、サーチも、あるんだよ」~標準C++ライブラリにみるアルゴリズムの面白さ
  29. インテルTBBの同期メカニズム
  30. なぜsetを使っちゃいけないの?
  31. WPFアプリケーションで腕試し ~C++でもWPFアプリを
  32. C++11 : スレッド・ライブラリひとめぐり
  33. Google製のC++ Unit Test Framework「Google Test」を使ってみる
  34. メールでデータベースを更新するココロミ
  35. Visitorパターンで遊んでみたよ
  36. Collection 2題:「WPFにバインドできる辞書」と「重複を許す検索set」
  37. Visual C++ 2012:stateless-lambdaとSQLiteのぷち拡張
  38. 「Visual C++ Compiler November 2012 CTP」で追加された6つの新機能

@IT

  1. Vista時代のVisual C++の流儀(前編)Vista到来。既存C/C++資産の.NET化を始めよう!
  2. Vista時代のVisual C++の流儀(中編)MFCから.NETへの実践的移行計画
  3. Vista時代のVisual C++の流儀(後編) STL/CLRによるDocument/Viewアーキテクチャ
  4. C++開発者のための単体テスト入門 第1回 C++開発者の皆さん。テスト、ちゃんとしていますか?
  5. C++開発者のための単体テスト入門 第2回 C++アプリケーションの効率的なテスト手法(CppUnit編)
  6. C++開発者のための単体テスト入門 第3回 C++アプリケーションの効率的なテスト手法(NUnit編)

AWARDS


Microsoft MVP
for Visual Developer - Visual C++


Wankuma MVP
for いぢわる C++


Nyantora MVP
for こくまろ中国茶

Xbox

Links

記事カテゴリ

書庫

日記カテゴリ

もすぬごく不安な Visual Studio 2008

RTM版が上がってたので早速試してみた。

β2でエラーになったコード:
#include <cliext/utility>
#include <cliext/vector>

int main() {
  typedef cliext::pair<int,int> point;
  cliext::vector<point^> pv;
}

こいつをコンパイルした.... 直ってないやん!

たったこんだけのコードでエラーになるようだとSTL/CLRまるごと不安になっちまうのですよ。
βの頃、とっくにバグレポート投げ済みなのよ。
https://connect.microsoft.com/VisualStudio/feedback/ViewFeedback.aspx?FeedbackID=301047

MSDN-forum(J)でも放置されちまったし。ぷんすか。
http://forums.microsoft.com/MSDN-JA/ShowPost.aspx?PostID=2113915&SiteID=7


ActiveのまんまRTMに突入カヨー リリース早々ServicePackのつもりか?
ServicePackが出ればまだマシなんやが、STL/CLRなんざマイナーだから
放置プレイなんてことになんじゃないかしら。 勘弁してくれやほんまにもー

[追記] ついでに list, deque, set, multiset, map, multimap および array についてやってみた。
通ってくれたのはmap, multimap, array の三つのみ。おーまいがー

 

投稿日時 : 2007年11月21日 15:44

コメントを追加

# re: もすぬごく不安な Visual Studio 2008 2007/11/21 16:37 とっちゃん

うげ。。。typedef しなきゃビルド通るのかしら?
#手元にRTMないんでわからん...orz

うーん...CLI では typedef するなは厳しいなぁ...

# re: もすぬごく不安な Visual Studio 2008 2007/11/21 16:49 επιστημη

いーえ、typedefしなくてもコケます。だから困ってるわけー orz
ここらへんSTL/CLRのキモに近いのよね。
pairをvectorにほりこめないなんてありえねーですよホント。

# re: もすぬごく不安な Visual Studio 2008 2007/11/21 16:51 Mr.T

Mr.Tです、こんにちは。
>もすぬごく不安な
も「す」「ぬ」ごく、ってところがかなり不安な感じが出てますねw

# re: もすぬごく不安な Visual Studio 2008 2007/11/21 16:54 επιστημη

microsoft-Connectってゆーfeedback受付窓口があるわけす。
さきほどちょいと覗いてみたら、未解決feedbackが山積みなの。トホホーなの。

# re: もすぬごく不安な Visual Studio 2008 2007/11/21 17:10 K5

うわぁ…マジですか、これ。
このあたりが使えないのは痛すぎる。

# re: もすぬごく不安な Visual Studio 2008 2007/11/21 17:12 επιστημη

だしょ? 痛いっしょ?
map使うほどでもないときに
vector<pair<key,value>>
ってよくやるよねぇ。

# re: もすぬごく不安な Visual Studio 2008 2007/11/21 18:02 とっちゃん

typedef しなくてもNGなのか。
それは痛いなぁ...
pair 使うときは必ずマップ使えってこと?

vector の代わりにList ならOKとかってことは?
#なさそうな気がするけど...orz

あ、それじゃvectorの利点がなくなってしまうのかぁ...
厳しいなぁ...

# re: もすぬごく不安な Visual Studio 2008 2007/11/21 18:22 シャノン

> pair 使うときは必ずマップ使えってこと?

てゆっか、map にもバグが無いという保証が無いorz

# re: もすぬごく不安な Visual Studio 2008 2007/11/21 18:34 とっちゃん

>pair 使うときは必ずマップ使えってこと?

考えてみたら、map だとキーが一意だから意味がないということにw

>バグが無いという
ま、こればっかりはねw
コンパイラ自身にもバグがないという保証はないわけでw

map は使ってみてバグってなきゃOKで済むけど、
そもそも作れない(作らせてくれない)では、回避の仕様もないわけで...
そっちのほうが大きな問題...orz

# re: もすぬごく不安な Visual Studio 2008 2007/11/21 18:38 シャノン

いやまぁ、バグゼロな保証はできないわけで、きっと出てくるでしょうけど、こんなわかりやすいバグがあるのとないのとでは安心感が大違いなわけで。

# re: もすぬごく不安な Visual Studio 2008 2007/11/22 4:36 NyaRuRu

C# や Visual Basic はベータテスト段階で使う人が結構多く,言語仕様に絡むような変なバグ出しも (比較的) よく行われている,という印象があるのですが,Visual C++ は「RTM でたらしい」→「使ってみた」→「これダメじゃん」ということを書いている人が多いような気がします.印象論ですけど.
というわけで,Visual C++ は,もうちょっとベータ段階で積極的に使ってもらう施策が必要な気がします.

# re: もすぬごく不安な Visual Studio 2008 2007/11/22 8:52 επιστημη

んー、RTMまでイッちゃうと修正もヘッタクレもないんで早めにβ、願わくはCTPあたりからfeedbackかけたいとこですわね。

# re: もすぬごく不安な Visual Studio 2008 2007/11/22 9:35 NyaRuRu

あとはまあ登録済みバグのレーティングですかねぇ.
C++ 使いの数は多いわけで,うまく世界中の人がレビューできるように分かりやすい一覧がメンテされているといいのですが.
せっかくデータベースにしてるのに,その辺の露出度がいまいちですな.

# re: もすぬごく不安な Visual Studio 2008 2007/11/22 9:55 επιστημη

そーなのよね。重要障害であっても目立たないことにはレートが上がらない、レート上がらないと目立たない。

英語は正直苦手なのでそっけないレポートになっちゃうのも
遠因かなーとか思います。だから日本語で書かせろと。

# re: もすぬごく不安な Visual Studio 2008 2007/11/22 9:58 επιστημη

なのでms-connectの僕のfeedback、投票したってください。
https://connect.microsoft.com/VisualStudio/feedback/ViewFeedback.aspx?FeedbackID=301047

このままほっとかれると"かなりやばい"す。

# re: もすぬごく不安な Visual Studio 2008 2007/11/22 11:52 Chuki


とりあえず、レートボタン押してきたよん

# re: もすぬごく不安な Visual Studio 2008 2007/11/22 12:52 NyaRuRu

ちなみに私が放り込んでるSTL/CLRのがこれです.

https://connect.microsoft.com/VisualStudio/feedback/ViewFeedback.aspx?FeedbackID=303593
http://d.hatena.ne.jp/NyaRuRu/20071119/p2

これもSTLとして怪しげ.

# re: もすぬごく不安な Visual Studio 2008 2007/11/22 14:05 NyaRuRu

vote ありがとうございました.

ちなみにこの STL/CLR の vector::at ですが,検証可能な IL の範囲で行う「byref return」の例になっています.
C# のキーワード ref 相当のものを,なんと関数戻り値で使うという奴ですな.参照を取れる相手は制限されていて,参照型オブジェクトのフィールドや配列要素でないとダメです.ローカル変数の ref を返すのはコンパイルエラー/実行時検証エラーになります.

実はこれ,.NET 1.x の時代にはできませんでした.今回 STL/CLR のためにわざわざ CLI 仕様を弄ったとみたいですね.
http://blogs.wankuma.com/episteme/archive/2007/09/27/98152.aspx#100528

# re: もすぬごく不安な Visual Studio 2008 2007/11/22 14:06 επιστημη

あ、なるほどー。[]とat()で返すもんが違うから。
これは"あっとびっくりサプライズ"ですねー
# "ぽちっ"としてこよっと♪

とすると []を持ってるdeque/mapでも同様のコトが起こりそぉ。
...dequeで同様の症状ですた。

# re: もすぬごく不安な Visual Studio 2008 2007/11/22 14:08 NyaRuRu

というわけで [] はアレなのですが,at が「動いて」いるのは結構すごいことです.はい.

# re: もすぬごく不安な Visual Studio 2008 2007/11/22 14:18 NyaRuRu

ちなみに,考えられる原因としては,多言語との互換性を優先したというものです.
IVector<TValue> はインデクサを持っています.しかし byref return は C# や Visual Basic ではサポートされていません.そのため,IVector<TValue> のインデクサで byref return を使ってしまうと,C# からは使えなくなってしまいます.
IVector<TValue> のインデクサが値による戻り値を採用するなら,対応する vector のインデクサも戻り値を採用するしかない,という判断なのかもしれません.

# re: もすぬごく不安な Visual Studio 2008 2007/11/22 15:44 επιστημη

参照/値を好きに選べるC++の流儀を.Netに持ち込むんだからどこかで擦り合せが要るんだけど...
にしても[]とat()は同じ挙動を示してほしっすね。

# ぢわぢわとvoteが溜まってます♪
# 組織票も悪いこっちゃないわな。大声出さんと聞こえんみたいだから。

タイトル
名前
URL
コメント