Size: a a a

2020 August 07

W

Wild_Wind in supapro.cxx
Vlad Serebrennikov
не думаю, что от этой привычки надо отказываться
Я тоже так думаю.

Думал,
static constexpr std::string_view str = "bla-aaa";
изавит меня от
const char* str = "bla-blaaaaa";
Но нет.
string_view - не терминированна нулём, из-за чего парнойи ради приходится заворачивать в c_api_func(string{str_view_obj}.c_str()); // лишняя аллокация. Мне это не нравится.
источник

️️

️️ ️ in supapro.cxx
Wild_Wind
Я тоже так думаю.

Думал,
static constexpr std::string_view str = "bla-aaa";
изавит меня от
const char* str = "bla-blaaaaa";
Но нет.
string_view - не терминированна нулём, из-за чего парнойи ради приходится заворачивать в c_api_func(string{str_view_obj}.c_str()); // лишняя аллокация. Мне это не нравится.
а строки уже констэкспр? с 20го?
источник

🎄T

🎄🎊 R 🎅 Tb| ✡️ 🎊🎄... in supapro.cxx
Wild_Wind
Я тоже так думаю.

Думал,
static constexpr std::string_view str = "bla-aaa";
изавит меня от
const char* str = "bla-blaaaaa";
Но нет.
string_view - не терминированна нулём, из-за чего парнойи ради приходится заворачивать в c_api_func(string{str_view_obj}.c_str()); // лишняя аллокация. Мне это не нравится.
Можешь ассерт поставить если очень хочешь что он нулем терминирован
источник

🎄T

🎄🎊 R 🎅 Tb| ✡️ 🎊🎄... in supapro.cxx
️️ ️
а строки уже констэкспр? с 20го?
Давно уже
источник

DP

Denis Paukaev in supapro.cxx
Wild_Wind
Я тоже так думаю.

Думал,
static constexpr std::string_view str = "bla-aaa";
изавит меня от
const char* str = "bla-blaaaaa";
Но нет.
string_view - не терминированна нулём, из-за чего парнойи ради приходится заворачивать в c_api_func(string{str_view_obj}.c_str()); // лишняя аллокация. Мне это не нравится.
Сделай свой вью поверх обычного, с гарантией 0 at end )
источник

D

Danya in supapro.cxx
Denis Paukaev
Сделай свой вью поверх обычного, с гарантией 0 at end )
А каким образом?
источник

AS

Anatoly Shirokov in supapro.cxx
Denis Paukaev
Сделай свой вью поверх обычного, с гарантией 0 at end )
Чем это не string? Что сводит все усилия в ноль.
источник

W

Wild_Wind in supapro.cxx
️️ ️
а строки уже констэкспр? с 20го?
constexpr std::string у меня не воркает.
gcc-10.2
источник

️️

️️ ️ in supapro.cxx
вот и не понятно пока где?
источник

VS

Vlad Serebrennikov in supapro.cxx
только с 20 же
источник

️️

️️ ️ in supapro.cxx
Wild_Wind
constexpr std::string у меня не воркает.
gcc-10.2
^
источник

🎄T

🎄🎊 R 🎅 Tb| ✡️ 🎊🎄... in supapro.cxx
️️ ️
вот и не понятно пока где?
Так ты про std::string…
источник

VS

Vlad Serebrennikov in supapro.cxx
Wild_Wind
constexpr std::string у меня не воркает.
gcc-10.2
std::allocator в compile-time поддерживается лишь gcc 10, но std::string и std::vector нет и там
источник

W

Wild_Wind in supapro.cxx
Wild_Wind
constexpr std::string у меня не воркает.
gcc-10.2
int main(){
   constexpr std::string str = "a";
   return 0;
}
constexpr variable cannot have non-literal type 'const std::string' (aka 'const basic_string<char>')
источник

W

Wild_Wind in supapro.cxx
Wild_Wind
int main(){
   constexpr std::string str = "a";
   return 0;
}
constexpr variable cannot have non-literal type 'const std::string' (aka 'const basic_string<char>')
Пардон, это кланг 10.
источник

D

Danya in supapro.cxx
Denis Paukaev
Сделай свой вью поверх обычного, с гарантией 0 at end )
string_view{"Hello"}.substr(1,3)
Как над этим гарантировать?
источник

W

Wild_Wind in supapro.cxx
Wild_Wind
int main(){
   constexpr std::string str = "a";
   return 0;
}
constexpr variable cannot have non-literal type 'const std::string' (aka 'const basic_string<char>')
/usr/lib/gcc/x86_64-pc-linux-gnu/10.2.0/include/g++-v10/bits/basic_string.h:77: 'basic_string<char, std::char_traits<char>, std::allocator<char> >' is not literal because it is not an aggregate and has no constexpr constructors other than copy or move constructors

GCC
- тоже.
источник

Е

Егор in supapro.cxx
Wild_Wind
int main(){
   constexpr std::string str = "a";
   return 0;
}
constexpr variable cannot have non-literal type 'const std::string' (aka 'const basic_string<char>')
а почему static_string какой-то не взять
источник

️️

️️ ️ in supapro.cxx
так как std::string то в constexpr?
источник

Е

Егор in supapro.cxx
️️ ️
так как std::string то в constexpr?
в с++20 дин. алокаций в компилтайме завезли
источник