← All posts tagged C++

Не собирается у меня Yaml-cpp, пока немного исходники не поправишь. В MS VS (2008 Express), MinGW — всё нормально.
Короче ругается вот на это:
template <typename T, typename U>
struct is_same_type {
enum { value = false };
};

template <typename T>
struct is_same_type<T, T> {
enum { value = true };
};

template <typename T, bool check>
struct is_index_type_with_check {
enum { value = false };
};

template <> struct is_index_type_with_check<std::size_t, true> { enum { value = true }; };

#define MAKE_INDEX_TYPE(Type) \
template <> struct is_index_type_with_check<Type, is_same_type<Type, std::size_t>::value> { enum { value = true }; }

MAKE_INDEX_TYPE(int);
MAKE_INDEX_TYPE(unsigned); // вот тут говорит, что уже определено
MAKE_INDEX_TYPE(short);
MAKE_INDEX_TYPE(unsigned short);
MAKE_INDEX_TYPE(long);
MAKE_INDEX_TYPE(unsigned long);

Самое интересное. что если изменить определение is_index_type_with_check на
template <> struct is_index_type_with_check<std::size_t, false> { enum { value = true }; };
то всё работает ( и в студии, и в MinGW...)
Вопрос — почему начинает работать в RAD Studio (бывший Borland Builder)?.
p.s. Это из-за SFINAE в RAD Studio 2010, или это всё-таки карма?

Дошёл до того, что при написании кода на шаблонах похоже нужны буду макросы. Однако :) Не то, чтобы я был прям очень маньяк в написании кода, но некоторые решения в последнее время меня самого повергают в недоумевающе-блаженное состояние. До тех пор пока в один прекрасный момент код не перестаёт работать.

Решил с какого-то перепуга сдать экзамен на Интуите по C++. Ну, что, начал в воскресенье, сегодня сдал экзамен :) Особо сложно было ответить на все 37 вопросов правильно, не с первого раза это удалось.
Ну, за диплом никто это считать наверное не будет, зато можно будет похвастаться (перед кем? не понятно...).
Собственно "диплом" intuit.ru

Что за фигня? Есть dll, есть класс для работы с ней (на C++). С помощью swig генерю биндинги, устанавливаю.
Но попытка передать любой параметр заканчивается AV. При этом данные из них я могу получить (хотя и странные, к примеру — в dll в конструкторах всё зануляется, а в питоне на выходе получаю отнюдь не нулевые значения).