asm( // Внимание на скобку!
"Строка, содержащая твой код"
);
asm(R"(
mov ecx,6
lea edx,b[0]
oncemore:
add [edx],3
add edx,1
loop oncemore
)");
struct CountingSwap
{
int count = 0;
template <typename T>
void operator()(T& lhs, T& rhs)
{
using std::swap;
swap(lhs, rhs);
++count;
}
};
int bubbleSort(int list[], int n)
{
CountingSwap swap;
for (int i=n-1; i>0; i--)
for (int k=0; k<i; k++)
if (list[k] > list[k+1])
swap(list[k], list[k+1]);
return swap.count;
}
стараюсь предерживаться стандарта, но вот в 11 не нашел ни слова о том как создается таблица виртуальных функций в таком случаиС точки зрения стандарта таблицы виртуальных функций не существует, а выбирается функция магией.
struct base
{
virtual void foo() {}
};
struct derived: base
{
virtual void bar() {}
};
std::cout << sizeof(base) << '\n'
<< sizeof(derived) << '\n'
(представляем 32битную машину и указатели по 4 байта)4
4
разименовать его и записать в него значениеА куда значение будет записано? Куда указывает указатель, если его не направить на конкретную переменную?
define _SILENCE_STDEXT_HASH_DEPRECATION_WARNINGS
Может ли n быть больше нуля, если перед этим мы делаем count = 0?
static unsigned long count = 0;
зачем здесь mutexПодумайте, что случится. если два потока наткнутся на инкремент одновременно юез синхронизации. Особенно при существовании кэша, присутствии оптимизаций, консолидирующих запись в память и тому подобного. На самом деле тут лучше использовать атомик, ну да ладно.
Мужики, посоветуйте какую нибудь легкую прогу для написание кода и компиляции. Язык C++.Компилятор. Любой.
Требуемые возможности к проге:Это требования не к компилятору, а к умственным способностям программиста.
- Работа с файлами текстовыми, txt, xml, json (чтение, запись)
- Таймер
- Арифметика
- Работа с sqlite
class Base
{
pubic:
virtual Base* clone() const = 0;
};
class Derived: public Base
{
public:
virtual Base* clone() const override
{
return new Derived(*this);
}
};
class Base
{
pubic:
virtual Base* clone() const = 0;
};
template <typename T>
struct BaseHelper: Base
{
virtual Base* clone() const override
{
return new T(static_cast<const T&>(*this));
}
}
class Derived: public BaseHelper<Derived>
{
};