А кто там оценит? Где нужно скзаать, что я выкладвываю проект, давайте обсудим его? Возможно есть какие то сообщества, которые постоянно что то обсуждают в ключе архитектуры?
т.е. в начале хэдера, где нужно паковать по 1 я пишу #pragma pack(push, 1), а в конце #pragma pack(pop) и тогда только мой хэдер пакуется как мне нужно, а настройки остальных не меняются?
Спасибо за такой детальный пример! Скажите пожалуйста, для чего нужно поле j?
class MyCompare {
public:
MyCompare(int aJ) : j(aJ) {}
bool operator () (const Row& a, const Row& b) const
{ return (a.data[j] < b.data[j]); }
private:
const int j;
}
int someJ = 5;
std::sort(table.rows, table.rows + 10, MyCompare(someJ));
Благодарю за столь подробный пример! А вы не могли бы объяснить, как работает этот участок кода?
sort(begin(v), end(v), [&count /*closure*/](IntV::value_type &a, IntV::value_type &b){
++count;
return a < b;
});
С count понятно, это как раз пример применения замыкания. А вот каким образом результат сравнения a < b попадает в v и откуда берутся a и b?
хардовый i2c на rpi3 есть. Но почему появилось подозрение? На pri3 есть PWM (в описании процессора он есть), который работает под linux коряво из за того, что linux не rtos. По этому и подумал, может i2c и есть, но он какой нибудь эмулируемый и доверять ему не стоит. Мне нужно, чтобы интерфейс работал надёжно или работать через другой интерфейс. Пока мне нехватает информации, чтобы принять решение.
Николай Романович: понятно. но непонятно почему cout выводит повторяющиеся значения, ведь если он из потока char`ов вывел некоторую часть значений, то они должны выйти из буфера. А тут получается, что в некоторых случаях буфер не освобождается и "cout <<" выводит значение из буфера снова. я понимаю, что программа написана неверно в плане потокобезопасности. Но по поводу такого вывода от cout остаются лишь догадки, а хотелось бы понимать почему так.