Добрый день.
Пишу простой код, хочу сделать контроль доступа к данным в классе через отдельный класс:
template<class Tclass, Tclass* classptr> class ptr_storage_access_control_tmp {
public:
};
class a {
friend ptr_storage_access_control_tmp<a, this>;
public:
};
В строке
friend ptr_storage_access_control_tmp<a, this>;
транслятор выдает диагностику:
Ошибка (активно) E0258 оператор "this" можно использовать только внутри нестатической функции-члена
Вопрос:
Спасибо.
UPD1:
Да, забыл сказать, транслятор Visual Studio 2017.
Потому что значение this
известно только на этапе работы программы (а аргумент шаблона должен известен на этапе компиляции) и доступно только из нестатического метода. Если хотете дать доступ просто классу ptr_storage_access_control_tmp
:
template<class Tclass, Tclass* classptr> friend class
ptr_storage_access_control_tmp;
Виртуальный выделенный сервер (VDS) становится отличным выбором
Программирую софт на OpenSuse с фиксированым шрифтомПри запуске софта на другом дистрибутиве, к примеру на Ubuntu, выстовляется другой шрифт
Oбычно в индексах массивов, контейнеров используется беззнаковое числоК тому же unsigned(-1) компилятором преобразовывается на большое положительное...
Error:Execution failed for task ':app:transformDexArchiveWithExternalLibsDexMergerForDebug'