Home Forums GAMES在线课程(现代计算机图形学入门)讨论区 作业二中的自带插值代码IDE提示错误怎么办

Viewing 4 reply threads
  • Author
    Posts
    • #8943 Score: 0
      YRInc
      Participant
      1 pt

      C++苦手,求助大家。
      `auto[alpha, beta, gamma] = computeBarycentric2D(x, y, t.v);

      解除注释后VSCode对这行代码不高兴了,提示 auto type cannot appear in the top-level…以及computeBarycentric2D with {…} expected for aggregate object

      我看到computeBarycentric2D 是返回了一个{c1, c2, c3}类似于Python中的Tuple。应该是想一次返回三个,但是似乎auto[alpha, beta, gamma]不能正确接收并展开这三个数。

      我上网查询没太有头绪,多是C++11,C++03标准云云。实在没招了,求助同学们😭

    • #8946 Score: 0
      tripleSim
      Participant

      是不是你没有用C++17来编译,cmake文件里面特地指定了C++17

    • #8949 Score: 0
      YRInc
      Participant
      1 pt

      所言极是。发现VSCode默认的是C++14,改成17就好了,感恩。

    • #9228 Score: 0
      Noviorlu
      Participant
      1 pt

      能说一下是怎么改成17的吗?我也遇到这个问题了

    • #9229 Score: 0
      Noviorlu
      Participant
      1 pt

      看了一下网上大佬写的码,好像不用改C++17也可以用,就得这么写:
      float alpha, beta, gamma;
      std::tie(alpha, beta, gamma) = computerBarycentric2D(………

Viewing 4 reply threads
  • You must be logged in to reply to this topic.