I
Парни, подскажите, как выкрутиться здесь с стандартом C++1y? С 1z нормально компилится.
Просто не хочется явно писать конструктор от базового в дочернем классе.
Size: a a a
I
AT
bool/*std::optional/std::variant/std::unique_ptr/etc*/ f()
{
if (!check1()) {
return {};
}
if (!check2()) {
return {};
}
// ...
doSomething;
return true/*constructed object/smart pointer/etc*/;
}
bool обязательно возвращать именно false? Или нормально будет возвращать {}?AT
sizeof struct { unsigned int i : 24; } — это 4? (вообще не зависит от количества бит битового поля, а только от части unsigned int)АК
std::string_view s = "123". Имеем ли мы право cчитать, что s.data()[3] == '\0';? Или же это UB, потому что можно читать только [s.data(), s.data() + s.size())?EP
std::string_view s = "123". Имеем ли мы право cчитать, что s.data()[3] == '\0';? Или же это UB, потому что можно читать только [s.data(), s.data() + s.size())?АК
EP
АК
char buf[100] = {};
std::string_view s(buf, buf + 10);
s[30]; // valid?
s.data()[30]; // valid?AN
EP
char buf[100] = {};
std::string_view s(buf, buf + 10);
s[30]; // valid?
s.data()[30]; // valid?АК
TS
char buf[100] = {};
std::string_view s(buf, buf + 10);
s[30]; // valid?
s.data()[30]; // valid?s.data()[30] выглядит вполне валидноEP
АК
constexpr const_pointer data() const noexcept;data_
Returns:
.initializing data_ with str
constexpr basic_string_view(const charT* str);
# Preconditions: [str, str + traits :: length(str)) is a valid range.
# Effects: Constructs a basic_string_view,
and initializing size_ with traits :: length(str).Судя по всему, валидно.
# Complexity: O(traits::length(str))
v
std::string_view s = "123". Имеем ли мы право cчитать, что s.data()[3] == '\0';? Или же это UB, потому что можно читать только [s.data(), s.data() + s.size())?АК
"123" (с нулём, очевидно)v
"123" (с нулём, очевидно)v
"123" (с нулём, очевидно)