Skip to content

Conversation

DwarKapex
Copy link
Owner

No description provided.

Copy link

@azbyx azbyx left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Посмотрел Вашу работу, хочу отметить, что получилась довольно простая реализация N-матрицы. Мне понравилась Ваша идея применить в качестве ключа для map - vector. Так же, Вы предусмотрели реализацию для работы с константными значениями матрицы.
Недостатков не увидел.
Спасибо за возможность ознакомиться с Вашим кодом.

/// \brief Zero-dimention proxy to contain actual value of the element
template<>
class Proxy<0> {
public:
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

У меня вопрос.
Как у Вас получилось использовать полную специализацию шаблонного класса внутри скоупа класса?
У меня на g++ выходит ошибка:
error: explicit specialization in non-namespace scope 'class Matrix<T, defaultValue, Rank>.
А Вы каким компилятором пользовались?

Copy link
Owner Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Я пользую clang. Думаю, g++ тоже должно быть тоже просто. Попробуй либо вынести определение в cpp (авось сработает), либо создай stand-alone Proxy и сделай композицию внутри матрицы

Copy link

@azbyx azbyx Feb 11, 2021

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Чтобы реализовать данную функциональность оставаясь внутри класса, я просто добавил дополнительный шаблонный параметр(можно неполный тип), что позволило избежать полной специализации шаблонного класса внутри объемлющего класса. Такое ухищрение необходимо только для g++ и MSVC, так как clang, как оказалось, позволяет полную специализацию конкретно в таких случаях.
Спасибо, за помощь.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants