Pull to refresh
13
Дмитрий Ховрин@stalker320

Разработчик игр

34
Subscribers
Send message

А где что-то вроде этого потерялось?

with app.app_context():
  db.create_all()

Или это из новой версии?

Я думаю мы всегда просто неправильно понимали using namespace, я вот нашёл интересный вариант использования в gdextension для C++. Вот моя интерпретация этого подхода:

// prog.hpp
#ifndef PROG_HPP
#define PROG_HPP

namespace myns {
  class MyClass {
    MyClass();
    ~MyClass();
  };
} // namespace myns

#endif
// prog.cpp
#include "prog.hpp"

using namespace myns;

MyClass::MyClass() {}
MyClass::~MyClass() {}

Вместо

#include "prog.hpp"

myns::MyClass::MyClass() {}
myns::MyClass::~MyClass() {}

Или даже некого

myns::mytype myns::MyClass::sum(
  myns::mytype a,
  myns::mytype b
) {}

Мне кажется это громоздко, хотя если твой подход программирования предусматривает использование using, то это будет выглядеть как-то так, что мне тоже кажется уместным:

#include "prog.hpp"
#include "mytypedef.hpp"

using myns::MyClass;
using myns::mytype;

MyClass::MyClass() {}
MyClass::~MyClass() {}

mytype MyClass::sum(mytype a, mytype b) {}

А корень вышел 2,969848...

В майнкрафте теперь трёхмерный шум Перлина* до какой-то версии использовался двухмерный.

В крайнем случае можно использовать if/else if

Короче твой смайлик отвалился...

В случае с вектором лучше возвращать "ссылку" на элемент, чем его значение

Это вполне легко сделать, но для меня это показалось избыточным, когда нужно было просто достать значение элемента.

Спасибо, учту. Думаю я даже могу найти применение этому теперь.

  1. То есть адрес указателя int* ptr; будет храниться в стеке, в то время, как в хипе будут храниться сами данные?

про packed-структуры слышал, но по мне так это какая-то шляпа, тем более наличие свободных байтов во время тестов структур позволяет их более плотно упорядочить простой перестановкой строк типов, хотя наверное я просто не сталкивался с необходимостью в их упаковке...

И кстати, разве ссылка не на статью по C++? Или в C правила те же?

Учту при редактировании. Спасибо за ссылку

А, понятно. Спасибо.

интеловский получается LITTLE_ENDIAN(..., 2^3, 2^2, 2^1, 2^0), а мотороллерный - BIG_ENDIAN(2^0, 2^1, 2^2, 2^3, ...), если я правильно понял, что ты имел в виду.

Кстати, не в курсе про htonl()htons()ntohl() и ntohs() . Я просто видел упоминания вместе с byte order, но так и не понял зачем нужно и как использовать.

Судя по тому, что я видел, когда прощупывал Vulkan, это делают достаточно часто, иначе бы для этого не выделили бы параметр почти во всех функциях.

Кстати, что за "костыльный" Byte order и причём тут union? (Вроде это же больше со struct связано)

Да не, лучше могло и не появиться. Спасибо за книгу!

Спасибо за уточнение. Но можно уточнить у вас, как у знающего?

В частности на микроконтроллерах AVR указатели на память программ могут быть 16-разрядными и 24-разрядными.

В пределах одной программы 16-разрядные и 24-разрядные одновременно? Или есть константный размер указателя, который определяется при запуске из операционной системы, 16 разрядов, или 24 разряда?

Information

Rating
Does not participate
Location
Москва, Москва и Московская обл., Россия
Date of birth
Registered
Activity

Specialization

Десктоп разработчик, Разработчик игр
Git
Python
Java
C++
C
SQL
Godot Engine