Компилятор avrgcc поддерживает C++, однако в его поставку не входит ни стандартная библиотека, ни реализация ABI: служебных функций, вызовы которых вставляет сам компилятор. В результате люди пытаются реализовать те части, которые им нужны, самостоятельно и зачастую делают это не очень хорошо. Например, часто предлагается отстрелить себе ногу определив пустую функцию __cxa_pure_virtual(void) {} или подложить себе грабли, написав заглушки для __cxa_guard_acquire, __cxa_guard_release и __cxa_guard_abort. В данной статье я предлагаю разобраться, чего не хватает для счастья, где это взять или как написать.
Я знаю, что немло людей считает, что C++ на микроконтроллере не нужен. Их я прошу прочитать последний раздел статьи перед тем, как писать комментарии.Читать полностью »
Метка «c++» - 66
Поддержка C++ на avr в gcc
2012-08-16 в 7:25, admin, рубрики: arduino, avr, c++, Программинг микроконтроллеров, стандарты, метки: avr, c++, стандартыUnity3D 3.x Получение текущего активного окна
2012-08-15 в 11:47, admin, рубрики: game development, GUI, reflection, unity3d, метки: c++, gui, reflection, unity3d Недавно перед нашей командой встала довольно простая задача. Нам нужно было сделать перетаскивание вещи из инвентаря в другие окна (эквип, сундук). Если два окна находятся друг над другом, то вещь должна упасть в то окно, которое выше.
Бегло осмотрев список свойств в классе GUI я не нашел чего-либо подходящего, потом я осмотрел GUIUtility, и даже заглянул в GUILayout. Вообщем такого свойства нигде не было. Гугление по этому запросу выдает несколько вопросов в Q&A и пару скудных постов на офф. форуме которые заканчиваются ответами в стиле «так сделать нельзя, но можно вручную отслеживать по какому окну нажали мышкой и заполнять переменную активного окна самостоятельно».
Нам не подошло ничего из того что там предлагали, но один парень натолкнул меня на интересную мысль. Мы пишем код на C#, а значит можем пользоваться всеми плюсами этого языка, в том числе и С# Reflection
Читать полностью »
Комбинаторная библиотека на C#
2012-08-15 в 10:44, admin, рубрики: комбинаторная библиотека, Программирование, производные функций, функциональное программирование, метки: c++, комбинаторная библиотека, производные функций, функциональное программирование Доброго времени суток, читатели!
В своей первой статье я бы хотел рассказать про такую интересную штуку, как комбинáторная библиотека (Combinator library). Все рассуждения постараюсь сделать максимально простыми и понятными.
Проблема
На самом деле не проблема, а попросту желание чего-нибудь интересного написать. А написать я решил систему для нахождения производных функций (статья несколько перекликается со статьями «Динамические мат. функции в C++» и «Вычисление производных с помощью шаблонов на С++», но я все же решил опубликовать её, так как надеюсь пролить свет на проблему несколько с другой стороны, да и все примеры будут на c#, а не на c++).
Собственно желания брать что-нибудь готовое не было никакого, тем более тогда терялся бы смысл всей затеи. И родилась идея, необычная для моего неопытного ума, реализацией которой я и занялся. Чуть позже, случайно прочитав про такой паттерн функционального программирования как «Комбинаторная библиотека», я понял что именно его и реализовал. Итак, что же это такое?
Читать полностью »
Комбинáторная библиотека на C#
2012-08-15 в 10:44, admin, рубрики: комбинаторная библиотека, Программирование, производные функций, функциональное программирование, метки: c++, комбинаторная библиотека, производные функций, функциональное программирование Доброго времени суток, читатели!
В своей первой статье я бы хотел рассказать про такую интересную штуку, как комбинáторная библиотека (Combinator library). Все рассуждения постараюсь сделать максимально простыми и понятными.
Проблема
На самом деле не проблема, а попросту желание чего-нибудь интересного написать. А написать я решил систему для нахождения производных функций (статья несколько перекликается со статьями «Динамические мат. функции в C++» и «Вычисление производных с помощью шаблонов на С++», но я все же решил опубликовать её, так как надеюсь пролить свет на проблему несколько с другой стороны, да и все примеры будут на c#, а не на c++).
Собственно желания брать что-нибудь готовое не было никакого, тем более тогда терялся бы смысл всей затеи. И родилась идея, необычная для моего неопытного ума, реализацией которой я и занялся. Чуть позже, случайно прочитав про такой паттерн функционального программирования как «Комбинаторная библиотека», я понял что именно его и реализовал. Итак, что же это такое?
Читать полностью »
ReSharper 7: релиз в деталях
2012-08-15 в 7:56, admin, рубрики: .net, css, html, jetbrains, JS, ReSharper, vb.net, winjs, WinRT, Блог компании JetBrains, Программирование, метки: c++, css, html, jetbrains, ReSharper, vb.net, winjs, winrt Две недели назад мы объявили о выходе ReSharper 7.0, лишь кратко перечислив те новинки, которые были реализованы в этом мажорном релизе.
Сегодня же подписчики MSDN и TechNet получат возможность скачать Visual Studio 2012, и это прекрасный повод, чтобы рассказать про новые возможности ReSharper 7.0 максимально подробно и обстоятельно.
Читать полностью »
Обратная сторона луны
2012-08-14 в 17:44, admin, рубрики: .net, c++, clr, memory, Программирование, метки: .net, c++, clr, memoryПри написании приложений, одной из важнейших вопросов являются потребление памяти и отзывчивость (скорость работы).
Считается, что сборщик мусора – черный ящик, работу которого нельзя предугадать.
А еще говорят, что GC в .NET практически не настраиваемый. А еще, что нельзя посмотреть исходники как классов .NET Framework, так и CLR, GC и т.п.
А я скажу как бы ни так!
В данной статье мы рассмотрим:
- структура организации размещения объектов в памяти
- CLR 4.5 Background Server GC
- правильная настройка сборщика мусора
- эффективный апгрейд приложений до .NET 4.0+
- правильное ручное управление памятью
In-memory key-value кэш для MS SQL
2012-08-14 в 12:43, admin, рубрики: .net, clr, MS SQL, Программирование, метки: .net, c++, clr, MS SQLДля чего надо.
Кэширование часто используемых нестатических данных, для генерации которых требуется некое неудовлетворительное время, например – ответ от некоего сервиса в сети. Родилось ввиду того, что очень удобно использовать single-value функции в запросах, но нет возможности записи из них в таблицу по понятным причинам.Читать полностью »
C# и AutoCAD. Некоторые приемы работы
2012-08-14 в 10:11, admin, рубрики: autocad, c-4, CAD/CAM, ObjectARX, Песочница, метки: Autocad, c++, ObjectARXЦель данной статьи.
Целью данной статьи является рассмотрение некоторых приемов работы в связке Autocad + C#.
В основном буду опираться на статью «Начало работы с Autocad с помощью C#». В рамках данной статьи будут рассмотрены некоторые замечания по особенностям работы с Autocad с помощью SDK — ObjectARX.
Читать полностью »
Вложенные функции на C++
2012-08-13 в 18:38, admin, рубрики: c++, function, functor, macros, метки: c++, function, functor, macrosПриветствую сообщество!
Я наткнулся на возможность сделать в С++ что-то похожее на объявление функций внутри функций. Выглядит это вот так:
#include <iostream>
int main()
{
inline_function(std::string s)
{
std::cout << "Hello, " << s << "!n";
}
with_name(make_hello);
make_hello("Vasiliy Pupkin!");
return 0;
}
В приведенном примере внутри метода main изготавливается вложенный «метод» с названием make_hello и затем вызывается с параметром «Vasiliy Pupkin». Разумеется, на экран будет выведено Hello, Vasiliy Pupkin!
.
К сожалению, перетащить название вверх у меня не получилось.
Здравствуйте, читатели.
Недавно я прочитал здесь статью об анонимных функциях в С++, и тут же у меня в голове возникла мысль: нужно срочно написать класс для работы с функциями, которые нам знакомы из математики. А именно, принимающими вещественный аргумент и возвращающими вещественное же значение. Нужно дать возможность обращаться с такими объектами максимально просто, не задумываясь о реализации.
И вот, как я это реализовал.
Читать полностью »