Я занимаюсь реорганизацией структуры, и я мог бы использовать некоторые рекомендации для дизайна. Рассмотрим следующее:
gl_utils.lib содержит структуру:
namespace gl_utils
{
struct LVec2
{
GLfloat x;
GLfloat y;
LVec2() {}
LVec2(GLfloat x, GLfloat y): x(x), y(y) {}
};
}
однако animation_utils.lib содержит объект с использованием структуры в другой статической библиотеке:
#include "gl_utils.h"
using namespace gl_utils;
class Part
{
public:
LVec2 Location;
float Rotation;
LVec2 Scaling;
int Index;
int Flip;
Part();
};
Это плохая идея? Есть ли безопасный способ создания библиотек друг на друге, или есть техника, которую я пропускаю?
Это прекрасно. Вы должны документировать его, так как окончательная исполняемая или разделяемая библиотека должна будет связываться с обе статическими библиотеками.
Если вы не хотите вводить зависимость от gl_utils для animation_utils, вы можете представить основную библиотеку, например, для хранения структуры LVec2 (и, возможно, других типов), поскольку она не связана исключительно с gl.
Вам все равно придется ссылаться на основную библиотеку, хотя это может сделать архитектуру еще более модульной.