I CppCon 2015 Vortrag Writing Good C++14... By Default von Herb Sutter gucke, ist er auf einige Lebensdauer Einschränkungen beziehen, zB:Ist die "Lifetime" -Restriktion in C++ implementiert?
template<class Key, class T, /*...*/> class map {
iterator insert(const_iterator pos[[lifetime(this)]], const value_type&);
template <class InIter> void insert(InIter first, InIter last [[lifetime(first)]]);
// ...
};
so dass
map<int,string> m = {{1,"one"}, {2,"two"}}, m2;
m.insert(m2.begin(), {3,"three"});// ERROR, m2.begin() points to m2, not m
m.insert(m.begin(), {3,"three"});// ok, m.begin() points to m
m.insert(m.begin(), m.end()));// 2 ERRORS: (a) params point to m, and (b) m is modifiable by m.insert
m.insert(m2.begin(), m.end()));// ERROR, param1 points to m2, but param2 points to m
m.insert(m2.begin(), m2.end());// ok, params point to m2, m2 not modifiable by m.insert
Ich frage mich, ist diese "Lebenszeit" ein Feature bereits implementiert, oder es ist immer noch auf der Wunschliste?
Oh Gott, C++ Entwurfskomitee, mach es halt, * mach es halt *. All diese Attribute ... sie sind wie die Hashtags des Codes; oder der C++ - Entwurf entspricht "Ah, scheiß drauf, lass es uns einfach einen Tag nennen und geh in den Pub". –
Also, es ist nur in der Vorschlagsphase für jetzt, oder? @JasonC – athos
Es scheint nicht in [die Liste der Standardattribute in cppreference.com] (http://en.cppreference.com/w/cpp/language/attributes) erscheinen, aber IDK, wie endgültig das ist. –