Обе скобки и скобки вокруг выражений в основном делают одно и то же?

Проще говоря, эти два for циклы функционируют одинаково:

for (int i = 0; i < (p_size < size ? p_size : size); i++);
for (int i = 0; i < {p_size < size ? p_size : size}; i++);

?

Цикл находится внутри метода (функции-члена), p_size это его параметр и size является атрибутом (переменная-член). Microsoft Visual Studio 2015 компилирует оба кода, но p_size не окрашен как другие параметры (в редакторе) в коде с помощью фигурных скобок.

4

Решение

Это действительный код:

for (int i = 0; i < (p_size < size ? p_size : size); i++);

Это неверный код:

for (int i = 0; i < {p_size < size ? p_size : size}; i++);

Наличие фигурных скобок в середине выражения недопустимо.

Я бы тоже вообще рекомендовал std::min:

for (int i = 0; i < std::min(p_size, size); i++);
8

Другие решения

Других решений пока нет …