C/C++ 雑談

1名無しさん@Next2ch:2015/03/02(月) 20:36:43.79 ID:/FSLjPKb

とりあえず取り急ぎ。

2名無しさん@Next2ch:2015/03/02(月) 20:50:41.69 ID:bIf5NoC/

人来ないね

3名無しさん@Next2ch:2015/03/03(火) 00:08:33.84 ID:WCP1QKXg

MSVCが超絶バージョンアップしないかなー。
constexpr付いたら超歓喜するんだけどな。

4名無しさん@Next2ch:2015/03/10(火) 02:12:21.16 ID:hEDv9hhe

カネないよ。

おれアマチュアです。アマチュアってカネかけたらだめだ。高価なパソコン、高価なツールをそろえてアマチュアといえるか?

5名無しさん@Next2ch:2015/03/10(火) 02:24:36.45 ID:13IHHFzl

ちゃんとこっちのURL向こうに貼ったん?

6名無しさん@Next2ch:2015/03/13(金) 18:18:39.60 ID:vjHIWzYI

VSEE使ってる。

7sage:2015/03/14(土) 07:42:07.26 ID:w2HQ/SgA

VC2015のconstexprは中途半端だな
SFINAEで定数式が必要なところにconstexpr関数を使ったときの動きがかなり不完全

8名無しさん@Next2ch:2015/03/15(日) 03:08:34.89 ID:d+Jzr4st

フィードバックプリーズ。それでよくなるかもしれんし。
そして2015が出ることがわかってよかった。thx

9名無しさん@Next2ch:2015/04/10(金) 11:12:20.39 ID:SjxDSEHm

「利用している言語についての質問では、
JavaScript(54.4%)、
SQL(48.0%)、
Java(37.4%)、
C#(31.6%)、
PHP(29.7%)」

「Stack Overflow」がユーザー動向に関する調査結果を公開、最もよく利用している言語はJavaScript、
習得したい言語はSwift、C++11、Rustなど:CodeZine
http://codezine.jp/article/detail/8630
2015/04/09 14:20

10名無しさん@Next2ch:2017/12/14(木) 20:50:27.09 ID:rgKWO5cA

C++14 では意図通り動いたコードが C++17 では無限再帰して落ちるようになった
ttps://gcc.gnu.org/bugzilla/show_bug.cgi?id=83345

struct Base
{
  virtual ~Base() {}
};

struct Proxy
{
  Proxy(const Base&) {}
};

struct Derived: Base
{
  operator Proxy()
  {
    return Proxy(*this);
  }

};

int main()
{
  Derived().operator Proxy();
}

11名無しさん@Next2ch:2017/12/14(木) 20:53:28.94 ID:rgKWO5cA

原因はおそらく return value optimization を必須にするために規格文面をあれこれいじったときの副作用
でもまだはっきりと理解できてない

12名無しさん@Next2ch:2017/12/15(金) 19:33:06.12 ID:6Sknau3+

これは GCC のバグだな

struct Source;

struct Target
{
  Target() = default;
  Target(Source const&){
    std::printf("OK\n");
    value = 0;
  }

  int value = -1;
};

struct Source
{
  operator Target(){
    std::printf("Bad\n");
    Target target;
    target.value = 1;
    return target;
  }
};

int main()
{
  Source source;
  Target target{source};
  std::printf("v = %d\n", target.value);
}

13名無しさん@Next2ch:2017/12/15(金) 19:39:54.89 ID:6Sknau3+

Target target{source} は direct-initialization であって
[over.match.ctor] より全てのコンストラクタがオーバーロードの候補となる

で overload resolution をするには implicit conversion sequence の優劣を比較するのだが
user-defined conversion sequence よりも standard conversion sequence の方が優先度が高い
だから上のプログラムは OK と表示しなければいけない (g++ -std=c++14 -pedantic ではそうなる) が
g++ -std=c++17 -pedantic では Bad と表示される

>>10 も同じバグに起因してると思う

……と bugzilla に報告しようと思ったら 5 年放ったらかしにしてたせいか
アカウント消えてた
どうせ誰か気づくだろうからここに書いてこの問題は俺の中で閉じた

14名無しさん@Next2ch:2017/12/15(金) 22:46:19.17 ID:4vqYXw1v

すごい人がいる


レスを書き込む