Size: a a a

2020 July 20

ПК

Паша Калугин... in supapro.cxx
using namespace std -- говнокод?
источник

VR

Vladyslav Ryuzaki in supapro.cxx
Паша Калугин
using namespace std -- говнокод?
внутри скоупа - нет
источник

АК

Александр Караев... in supapro.cxx
поясню на примере:

 int f(int arg) {
 constexpr int t = arg * 2; // error
}


но

constexpr int f(int arg) {
 return arg * 2;
}

constexpr int t = f(10); // ok


то есть промежуточные вычисления в constexpr функциях должны производиться так, будто они могут быть выполнены в рантайме, а уже снаружи можно форсить constexpr'ость
источник

АК

Александр Караев... in supapro.cxx
Vladyslav Ryuzaki
а если мне нужно будет само значения атрибута?
а вообще в таких случаях значения гоняют через шаблонные параметры, правда полноценно с ними поработать получится лишь с C++20
источник

VR

Vladyslav Ryuzaki in supapro.cxx
Александр Караев
поясню на примере:

 int f(int arg) {
 constexpr int t = arg * 2; // error
}


но

constexpr int f(int arg) {
 return arg * 2;
}

constexpr int t = f(10); // ok


то есть промежуточные вычисления в constexpr функциях должны производиться так, будто они могут быть выполнены в рантайме, а уже снаружи можно форсить constexpr'ость
я ж не могу весь main сделать constexpr
источник

АК

Александр Караев... in supapro.cxx
Vladyslav Ryuzaki
я ж не могу весь main сделать constexpr
for_each<fields>([]<auto field>{
 // тут field - constexpr
});

правда для этого надо переписать многое
источник

VR

Vladyslav Ryuzaki in supapro.cxx
Александр Караев
for_each<fields>([]<auto field>{
 // тут field - constexpr
});

правда для этого надо переписать многое
и как будет это выглядеть примерно?
источник

VR

Vladyslav Ryuzaki in supapro.cxx
Александр Караев
а вообще в таких случаях значения гоняют через шаблонные параметры, правда полноценно с ними поработать получится лишь с C++20
Вроде шланг 11 поддерживает уже 20, так что можно попробовать
источник

АК

Александр Караев... in supapro.cxx
Vladyslav Ryuzaki
и как будет это выглядеть примерно?
для этого нужен C++20, самописный tuple, который будет удовлетворять требованиям к NTTP и аналогичные требования ко всем его членам..

советую начать с изучения такого примера - https://godbolt.org/z/hzwckf
источник

VR

Vladyslav Ryuzaki in supapro.cxx
Это работает? Как оно работает с двумя строками одной длины но разным содержанием?
источник

АК

Александр Караев... in supapro.cxx
Vladyslav Ryuzaki
Это работает? Как оно работает с двумя строками одной длины но разным содержанием?
fixed_string<3>{ 'a', 'b', 'c' } можно рассматривать как тройку шаблонных параметров <char, char, char>
источник

J

Jefferson in supapro.cxx
Подскажите, нужно конкатенировать около 40 std::string, как это сделать по-красоте? Или оператор "+" единственынй выход?
источник

АК

Александр Караев... in supapro.cxx
Jefferson
Подскажите, нужно конкатенировать около 40 std::string, как это сделать по-красоте? Или оператор "+" единственынй выход?
40 строк в массиве или это 40 переменных?
источник

J

Jefferson in supapro.cxx
string str = "1";
str += '"' + "2";
...
источник

🎄T

🎄🎊 R 🎅 Tb| ✡️ 🎊🎄... in supapro.cxx
Jefferson
Подскажите, нужно конкатенировать около 40 std::string, как это сделать по-красоте? Или оператор "+" единственынй выход?
А сами строки большие?
источник

J

Jefferson in supapro.cxx
Нет, до 10 символов
источник

VR

Vladyslav Ryuzaki in supapro.cxx
Александр Караев
fixed_string<3>{ 'a', 'b', 'c' } можно рассматривать как тройку шаблонных параметров <char, char, char>
Но в коде только один шаблонный параметр
источник

VR

Vladyslav Ryuzaki in supapro.cxx
Короче, попробую, как-то не выглядит работающим)
источник

АК

Александр Караев... in supapro.cxx
Vladyslav Ryuzaki
Но в коде только один шаблонный параметр
я сказал "можно рассматривать как"
источник

АК

Александр Караев... in supapro.cxx
Vladyslav Ryuzaki
Короче, попробую, как-то не выглядит работающим)
что там может не работать, не понимаю
источник