#include <iostream>
#include <array>
#define consteval constexpr
class Char4
{
public:
using Array = char[5];
using CppArray = std::array<char, 5>;
consteval Char4(const char (&x)[5]) : fData { x[0], x[1], x[2], x[3] } {}
constexpr std::string_view toSv() const { return { fData.asAr, 4 }; }
private:
union Ch {
struct asInts {
char a, b, c, d;
};
char asAr[4];
} fData;
};
template <size_t N>
class CArray4
{
public:
using CppArray = const std::array<Char4, N>;
constexpr size_t size() const { return N; }
const Char4& operator [] (size_t i) const { return fBuf[i]; }
template <class ... Args>
consteval CArray4(Args&& ... x)
: fBuf { x... }
{
static_assert(sizeof...(Args) == N, "CArray size mismatch");
}
private:
CppArray fBuf;
};
namespace {
CArray4<3> names { "alph", "brav", "char" };
}
int main()
{
std::cout << names.size() << std::endl;
std::cout << names[2].toSv() << std::endl;
return 0;
}
#include <stdio.h>
#include <iostream>
int main() {
int a = getchar();
while (a != '\n') {
std::cout << a << "-" << static_cast<char>(a) << std::endl;
a = getchar();
}
}
143-П
224-р
168-и
162-в
165-е
226-т
win32-g++: {
contains(QMAKE_HOST.arch, x86_64):{
# x64
LIBS += -lodbc32
} else {
LIBS += -lodbc32_merc
}
}
// SqlUnglitch.h
#ifdef _WIN32
#include "SqlWin/sql.h"
#include "SqlWin/sqlext.h"
#else
#include <sql.h>
#include <sqlext.h>
#endif
invoke atoi, month
.lea edi, [month]
всё верно — lea не разыменовывает, а грузит адрес. Хотя ассемблер, по идее, должен выдать обычный mov edi, month
. HWND window = nullptr
.std::string str;
, да и всё. Можно рассчитывать, что будет пустая строка.