Coder Social home page Coder Social logo

Comments (1)

apolukhin avatar apolukhin commented on August 27, 2024

Михаил Мальцев, 6 декабря 2016, 15:29
С placeholder-ами таких проблем быть не должно, т.к. они "extern const", а не "constexpr":
https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/src/c%2B%2B11/placeholders.cc

Anton Bikineev, 7 декабря 2016, 15:38
Михаил Мальцев,
Миша, это только в libstdc++ имплементации. Стандарт же говорит [20.14.10.4.2]:
Placeholders should be defined as:
constexpr unspecified _1{};
If they are not, they shall be declared as:
extern unspecified _1;

yndx-antoshkka, 7 декабря 2016, 15:49
Проверил логи заседания. GB28 было отправлено в LEWG для того, чтобы определить каким именно методом решать эту проблему: просто добавить недостающие inline, либо сделать чтобы constexpr для переменных автоматически добавлял Inline (как он сейчас делает для функций). В LEWG возникли вопросы по поводу ABI и решение было отложено на след заседание.

Если есть желание помочь с этой проблемой, стоит написать proposal, в котором исследовать влияние добавления inline на ABI для clang и gcc. В нём же, стоит попробовать сформулировать "патч" к стандарту, который говорит что constexpr автоматически добавляет inline и для переменных тоже. Готов всячески помогать при написании proposal (но сделать всё самостоятельно к концу января не смогу).

Anatoly Scheglov, 27 декабря 2016, 18:45
Уже предлагали всякие Inline Variables http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2015/n4424.pdf

yndx-antoshkka, 9 марта 2017, 17:39
Исправили в C++17. Пометили теги и все шаблонные переменные как inline в https://wg21.link/p0607.

Меня немного волнует, что эти переменные получили таким образом external linkage вместо internal linkage. Но волнует не настолько сильно, чтобы думать о том как это исправить.

from ideas.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.