Size: a a a

2020 July 15

Д

Дмитрий in supapro.cxx
Егор
17 стандарт стоит?
string_view обычный работает
источник

AB

Artöm Bakri Al-Sarmi... in supapro.cxx
Дмитрий
Народы, как в компайлтайме перевести define в constexpr char[]? В плане у меня есть #define FOO 2, и я хочу написать constexpr char bar[] = FOO;
Нужен макро stringify
источник

AB

Artöm Bakri Al-Sarmi... in supapro.cxx
Найди его реализацию и используй
источник

Е

Егор in supapro.cxx
Дмитрий
string_view обычный работает
Код выше и для constexpr char[] сработает
источник

Д

Дмитрий in supapro.cxx
Спасибо👍 Буду пробовать
источник

AS

Anatoly Shirokov in supapro.cxx
Дмитрий
Народы, как в компайлтайме перевести define в constexpr char[]? В плане у меня есть #define FOO 2, и я хочу написать constexpr char bar[] = FOO;
#define MACRO_STR(s) STR(s)
#define STR(s) #s
#define FOO 2

int main() {
   constexpr const char text[] = MACRO_STR(FOO);
}
источник

Д

Дмитрий in supapro.cxx
Работает, спасибо!
источник

AS

Anatoly Shirokov in supapro.cxx
Егор
Так?
#define STR(x) #x

constexpr std::string_view foo = STR(kek);
если kek это макрос, то не сработает, будет "kek"
источник

Е

Егор in supapro.cxx
Anatoly Shirokov
если kek это макрос, то не сработает, будет "kek"
а, вот зачем еще один
источник

AS

Anatoly Shirokov in supapro.cxx
Егор
а, вот зачем еще один
да, для форсирования макроподстановки
источник

ПК

Побитый Кирпич... in supapro.cxx
Rock hero
Уважаемые объясните вещь такую часто вижу в коде std::и что то там  но зачем копипастят постоянно этот стд если можно  объявить  using namespace std;  ?? пережитки прошлого или что это
using namespace std = минус нога с большой вероятностью, рекомендуется так не делать
источник

D

Dmitriy in supapro.cxx
Побитый Кирпич
using namespace std = минус нога с большой вероятностью, рекомендуется так не делать
Всё-таки, думаю, тут на усмотрение разработчика и с большой осторожностью. В маленьком .cpp, где используется много средств из std:: - почему бы и нет?)
А прочие namespace в том же файле указывать явно при обращении к функциям/переменным/классам.
источник

ПК

Побитый Кирпич... in supapro.cxx
Dmitriy
Всё-таки, думаю, тут на усмотрение разработчика и с большой осторожностью. В маленьком .cpp, где используется много средств из std:: - почему бы и нет?)
А прочие namespace в том же файле указывать явно при обращении к функциям/переменным/классам.
Разве что если code style отличается от code style стандартной библиотеки, иначе минус нога
источник

DB

Dimmu Borgir in supapro.cxx
Anatoly Shirokov
что такое this? лучше объяснить на примере трансляции С++ в C:

// C++
struct foo {
  int d;
  void boo(int a);
};
на заре С++ Страуструп транслировал это в С в своем CFront:
struct foo {
  int d;
};

void boo(struct foo* this, int a) {
}

так вот, this - неявный параметр метода, который содержит указатель на объект, в контексте которого он вызывается
понятно. спасибо бро)
источник

D

Dmitry in supapro.cxx
Всем привет)
источник

D

Dmitry in supapro.cxx
Кто-нибудь может ответить на парочку вопросов по поводу экспорта С++ кода в Сшную длл?
источник

AS

Anatoly Shirokov in supapro.cxx
Dmitry
Кто-нибудь может ответить на парочку вопросов по поводу экспорта С++ кода в Сшную длл?
что ты под "экспортом С++" понимаешь?
источник

DB

Dimmu Borgir in supapro.cxx
Александр Водянников
       Country* temp = new Country[count + 1];
       for (int i = 0; i < count; i++)
       {
           temp[i] = countries[i];
       }
       delete[] countries;
       countries = temp;

что за логика ...
выделяю память на 1 шаг потом меняю ссылку
источник

D

Dmitry in supapro.cxx
Anatoly Shirokov
что ты под "экспортом С++" понимаешь?
dllexport
источник

AS

Anatoly Shirokov in supapro.cxx
Dmitry
dllexport
тебе надо получить экспортируемые символы, в С++ они специальным образом "манглируются" и чтобы их использовать в С потребуется знать их манглированные имена
источник