Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Croessmah
Эксперт CЭксперт С++
13514 / 7672 / 866
Регистрация: 27.09.2012
Сообщений: 18,888
Записей в блоге: 3
Завершенные тесты: 1
#1

Стандарт C++ поддержка Concepts и Reflection - C++

06.07.2013, 21:18. Просмотров 768. Ответов 3
Метки нет (Все метки)

Собственно вопрос, когда будет поддержка Concepts и Reflection?
Или в новом стандарте опять откажутся от их поддержки, как это было в C++11.
Известно ли что-нибудь по данному вопросу?
Просто с моим знанием английского многое может быть неоднозначным, поэтому гуглить смысла нет
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
06.07.2013, 21:18
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Стандарт C++ поддержка Concepts и Reflection (C++):

Concepts (C++0x) - C++
Концепты По-моему должно было быть довольно мощное средство... Однако... Как вы относитесь к такому решению коммитета?

Concepts TS - C++
Здравствуйте, У меня такой вопрос: Вот есть у нас TS по концептам (n4553.pdf), и в этом самом TS сказано что если у нас есть функция...

Стандарт - C++
Нашел в сети стандарт c++. Добавлено через 7 минут И ещё PDF о различиях стандартов. Не знаете, есть ли стандарт на русском? Где?...

Стандарт C++11 опубликован! - C++
Как стало известно, ISO опубликовал документ стандарта C++11! Мои поздравления всем плюсовикам! Теперь C++11 - полностью и на сто...

Стандарт ANSI - C++
если использовать #include <queue> #include <vector> это уже не стандарт ANSI??

Стандарт языка С++ - C++
Можно ли данный документ считать стандартом языка С++?

3
Issues
430 / 365 / 37
Регистрация: 06.08.2012
Сообщений: 961
06.07.2013, 22:03 #2
вот такое только нашел:
N3580 - Concepts Lite - Constraining templates with predicates

Well, this is one of the papers that might not be part of the next minor standard, which seems to disapoint a few of you out there. The concepts approach for C++11 failed, it was dropped, as it was to complex to be adopted fully to the standard for C++11. Since then a lot of people have had their thoughts on how to integrate concepts into the language, as its a feature that would enhance C++ for sure. This proposal now concentraits on template constraints, which shall be applied to force the correctness of template use, not definition. The idea is to
let programmers directly state the requirements for template arguments as part of the templates interface
support function overloading and class template specialization based on constraints
fundamentally improving diagnostics by checking template arguments in terms of stated intent at the point of use
do all of this without any runtime overhead or longer compile times

Sounds good, so lets see a little example:
template<Sortable Cont>
void sort(Cont& container);

Here, Sortable is the constraint. It is in this case defined to require a random access iterator and the operator<. The Sortable constraint acts as type of Cont here, but is defined else where. So this is not the definition of a constraint, it is the use of a constraint. A alternative syntax allows to specifiy the constraints more exactly with require:
template<typename Cont>
requires Sortable<Cont>()
void sort(Cont& cont)

This allows to explicit state the requirements for a template after its interface definition. A constraint is now defined as:
"A constraint is simply an unconstrained, constexpr function template that takes no arguments and returns bool. It is —in the most literal sense— a predicate on template arguments. This also means that the evaluation of constraints in a requires clause is the same as constexpr evaluation."

So, a more complex constraint definition could look like this:
template<typename T> concept Equality_comparable()
{
return has_eq<T>::value
&& is_convertible<eq_result<T>,bool>::value
&& has_ne<T>::value
&& is_convertible<ne_result<T>,bool>::value;
}

To aid the implementation of concepts, the authors also introduce a way to implement constraints as a requires expression:
template<typename T>
constexpr bool Equality_comparable()
{
return requires (T a, T b) {
bool = {a == b};
bool = {a != b};
};
}

This goes on for more details see the paper. The authors state, that constraints are not concepts, and that this is only the first step in improving the language at compile time, and that full featured constraints are still the long time goal for the C++ Standard. Regarding C++14, there is a goal of getting at least a minor version of concepts lite into the C++14 standard, at least this is stated in the Meeting Minutes from the last telco in March. Bristol might bring further clarification here. Also a little spoiler, there will be most likely a talk about this topic at Meeting C++ 2013!
Добавлено через 34 минуты
и вот ещё что:
We had a first meeting of the Reflection Study Group; lots of interest, good plans - but that's for C++17 at the earliest. It still requires a lot of work and discussions. Mixins were not discussed as there was no proposal for them. Class generation through reflection was discussed as part of reflection, though. Static if was discussed, too. As I said, the summary will come up soon!
1
diagon
Higher
1930 / 1196 / 49
Регистрация: 02.05.2010
Сообщений: 2,925
Записей в блоге: 2
06.07.2013, 22:03 #3
В С++14 их вроде как не будет.
А следующий стандарт нескоро выйдет, где-то в 2x видимо.

Не по теме:

Концепты и рефлексия - вещи, конечно, удобные, но меня больше огорчают лямбды с их жутко избыточным синтаксисом, который прямо-таки заставляет разбивать лямбду на 3 или более строк. В с++14 их немного допилили, но до лямбд в шарпе все равно далеко. Вот если бы разрешили опускать auto, return и всякие скобки, было бы действительно удобно. Хотя без рефлексии тоже очень грустно...

1
Issues
06.07.2013, 22:05     Стандарт C++ поддержка Concepts и Reflection
  #4

Не по теме:

diagon, думаю, концепты будут в 14, а рефлексия в 17.

0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
06.07.2013, 22:05
Привет! Вот еще темы с ответами:

Новый стандарт с++ - C++
В 2009 году должен быть выйти новый стандарт. Хотелось бы узнать какие новшевства он принес в язык. Стал язык удобнее или нет. И какие...

Push_back и стандарт С++ - C++
vector&lt;int&gt; vA; vA.push_back(s); В случае, если в vA нет свободного места, выделяется новое, старые данные перемещаются в новую...

Новый стандарт C++ - C++
Скажите Ожидается поддержка нового стандарта C++ ? и что это за стондарт ? раскожите !!!

Стандарт C++ вышел на русском - C++
Небезызвестный Евгений Зуев выполнил таки свое обещание и перевел Стандарт. Книжка доступна только (настолько мне известно) здесь. Цена...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
06.07.2013, 22:05
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru