template <typename U> friend class UniquePtr;
, то можно использовать правильный вариант, обращаясь к приватным данным другого класса(он другой, т.к. у них разные шаблонные параметры). class BinaryTree {
public:
struct Node {
int value;
Node* left = nullptr;
Node* right = nullptr;
};
Node* root = nullptr;
void removeNode(Node* node)
{
std::queue<Node*> removeQueue;
while (node) {
if (node->left)
removeQueue.push(node->left);
if (node->right)
removeQueue.push(node->right);
delete node;
node = nullptr;
if (!removeQueue.empty()) {
node = removeQueue.front();
removeQueue.pop();
}
}
}
void removeValue(int value)
{
Node* node = findNodeByValue(value);
if (node)
removeNode(node);
}
Node* findNodeByValue(int value)
{
Node* currentNode = root;
while (currentNode) {
if (currentNode->value == value)
break;
else if (value > currentNode->value)
currentNode = currentNode->right;
else if (value < currentNode->value)
currentNode = currentNode->left;
}
return currentNode;
}
};
к слову есть один ритуал - проснулся - растираешь всё тело холодной водой. где бы ты ни был, в самолете, в хостеле - это ритуал. а перед сном - холодной водой моешь ноги. такая мелкая штука, но работает отлично.
class Comment(models.Model):
article = models.ForeignKey(Article, on_delete=models.CASCADE)
author = models.ForeignKey(User, on_delete=models.CASCADE)
text = models.CharField(max_length=10000)
# ...
def __str__(self):
return self.text[,500]
@transaction.atomic # весь метод атомарный по отношению к БД
@login_required # выдаёт 404 если пользователь не авторизован
def addComment(request):
if request.method == 'POST':
form = CommentAddForm(request.POST)
if form.is_valid():
comment = form.save()
comment.author = request.user
comment.save()
# всяческие проверки и прочая логика
На чём живёшь?