Evgenii
#include <auto>
#include <auto>
template <typename... AutoArgs>
auto main(AutoArgs... args) {
return auto::auto(args...);
}
Vladislav
#auto
Это программа на c++38 целиком
Stanislav
> Некоторые из проектов на Bit состоят в буквальном смысле из одной строки.
Anatoly
если серьезно, делают, только медленно, и, вроде, как очевидно, почему медленно
Constantine
Это программа на c++38 целиком
Есть инфа про этот стандарт
do class if inline
bool this delete define
this do int break sizeof public
try if struct for auto static
while
Surreal
Constantine
Дмитрий
))
Evgenii
🦥Alex Fails
Заклинание, оптимизирующее код
Ruslan
Constantine
Vladislav
> Atomic smart pointers (std::atomic_shared_ptr and std::atomic_weak_ptr)
больше смарт-поинтеров богу смарт-поинтеров!
Vladislav
(отсюда https://en.wikipedia.org/wiki/C%2B%2B20)
Alexey
А поддержка JSON идет в разделе networking с++20, надеюсь?
Alexey
а зачем json в коробке? Полно хороших сторонних библеотек есть
Было бы гораздо удобнее иметь стандартную реализацию работы с json\xml.
Есть куча разных библиотек, но чего-то я бы не сказал,что они удобные(
В Qt, например, можно работать с JSON, но это насилие над личностью.
Мне очень нравится как организована работа с JSON в golang, хотелось бы чего-то похожего в плюсах.
Alexey
🦥Alex Fails
Можнотзапилить подобный механизм в крестах
Vladislav
с интроспекцией в плюсах плоховато, чтобы именно так сделать
Vladislav
вот эта либа - огонь https://github.com/nlohmann/json
🦥Alex Fails
🦥Alex Fails
Алсо magic_get )))
Vladislav
тут они каким-то образом сделали, но я не знаю насколько гибко
Vladislav
https://github.com/nlohmann/json#arbitrary-types-conversions
🦥Alex Fails
Stanislav
Vladislav
Stanislav
как и автор fmt
🦥Alex Fails
Как я понял
Vladislav
не, см. пример по ссылке
Alexey
To make this work with one of your types, you only need to provide two functions:
to_json
from_json
Ну лол
🦥Alex Fails
Vladislav
Vladislav
можно конечно thrift юзать, он генерит код в том числе для json'а
Vladislav
еще можно на boost.hana накалякать
Крылатый
Имея модули и общую идеологию можно иметь бесконечно расширеяему стандартную библиотеку без оверхеда.
Крылатый
Vladislav
там даже пример есть https://github.com/boostorg/hana/blob/master/example/misc/from_json.cpp
.
Парнии
.
Есть у кого?хорошая литература по изучению computer scince
Vladislav
слишком общий вопрос, какая область конкретно интересует?
Alexey
using namespace std;
#define _NAME_OF_ARG(ARG) #ARG
int main(int argc, char *argv[])
{
struct Student{
char* name;
char *surname;
};
Student student;
std::cout << _NAME_OF_ARG(student.name)<<std::endl;
std::cout << _NAME_OF_ARG(student)<<std::endl;
std::cout<<typeid(student.surname).name()<<std::endl;
return 0;
}
Вот я по ходу выполнения программы узнаю тип переменной и её имя.
Если заморочиться со вложенными структурами, то можно сделать golang-подобный парсер json.
Alexey
Разметка уплыла(
Stanislav
Stanislav
есть же няшный https://github.com/apolukhin/magic_get
Vladislav
.
Vladislav
ох, они там как-то абьюзят aggregate initialization внутри
Stanislav
@antoshkka
Vladislav
правда имена полей так не выдернешь
🦥Alex Fails
но как, Холмс?
Я ж кидал сюда. Антон рассказывал на первой встрече рг21)
Vladislav
но вообще крутая штука, с ней можно компараторы/хеши для произвольных POD генерить
Vladislav
Stanislav
🦥Alex Fails
Бля. Надо б в основной канал запостить эти заметки
Stanislav
https://www.youtube.com/watch?v=MbbOsKMA3rk
Vladislav
Stanislav
https://www.youtube.com/watch?v=jDI5CHKFKd0
Stanislav
этот получше
Vladislav
транскрайб - это как?
Stanislav
🦥Alex Fails
Vladislav
кстати, гугловские автосабы внезапно почти хорошие
Vladislav
Vladislav
Крылатый
:D
Stanislav
хорошо что ладу седан не пишет
🦥Alex Fails
ща 10 лайков, и я вам кину линк на черновик транскрайба
🦥Alex Fails
Еееее 10 лайков
Constantine
какие подводные камни default для move constructor?
Surreal
Указатель на память, которая чистится в деструкторе.