Desertir 202 Опубликовано 19 Января 2015 @PlayMod, а тебе разве мешает? Тема заведомо непопулярна, однако у кого то когда то могут возникнуть вопросы именно по самому языку (например про новые стандарты). Да что уж там, давайте я и спрошу. В общем существует c++11, а так же c++14. Вопрос, начиная с какой версии Visual Studio уже "из коробки" поддерживается полностью первый и второй(второй вообще доделан до конца, ну т.е. выпущен)? Из коробки, т.е. без установки всяких c++ compiler nov 2012/2013 ctp? Просто у меня получилось скомпилить с новыми определениями методов (=delete/=default) только в 2015 превьюхе, а так же в 2013, а вот в старушке 2012 даже с вышеуказанными компиляторами не проканало. ТЧ 1.0004. SAP и Trans mod github Поделиться этим сообщением Ссылка на сообщение
Desertir 202 Опубликовано 26 Января 2015 http://www.g-truc.net/post-0706.html Это в дополнение к ответу на мой вопрос о поддержке стандартов C++ 1 ТЧ 1.0004. SAP и Trans mod github Поделиться этим сообщением Ссылка на сообщение
Desertir 202 Опубликовано 29 Января 2015 (изменено) Весьма "нубский" вопрос. У нас есть две разрядности приложений - 32 и 64. А еще есть х86 - платформа, на основании которой построено (или поддерживается, как это правильнее?) большинство процессоров (ПК), так? Я к тому, что x86 это одно, а x32 и x64 это другое. Почему тогда разработчики ставят в пару именно x86 и x64? Например либы в DirectX SDK. Разве x86 считается полным синонимом x32 в определенном (или даже без него?) контекте? Есть такая мини-статья, в принципе мои "познания" сходятся с тем, что там написано, и вполне логично. И в догонку еще такое нашел. Изменено 29 Января 2015 пользователем Desertir ТЧ 1.0004. SAP и Trans mod github Поделиться этим сообщением Ссылка на сообщение
Desertir 202 Опубликовано 31 Января 2015 И снова я с простенькими вопросами-уточнениями. Речь пойдет о подключении библиотеки к проекту VS. Итак, есть два (вроде) вида библиотек: статическая и динамическая. На сколько я понял, со статической все просто, нужен заголовочный файл и непосредственно статическая библиотека. На выходе мы имеем один файл (.exe например), в который эта статика непосредственно вкомпиллена, ну или как правильнее, это же линковщик делает. Со статикой верно? Далее, динамика, тут интереснее, файл заголовка остается по смыслу таким же, добавляется сама динамика (.dll), и к этому нужно добавить библиотеку импорта, которая имеет так же расширение .lib, что ввело меня в кратковременный ступор. В этом случае библиотека импорта так же вкомпилливается в наш файл, и он уже будет знать, куда ссылаться, функция там или переменная. С динамикой верно? Т.к. динамика несколько сложнее, еще вопросы. По сути нам надо создать библиотеку импорта и в свойствах проекта это можно указать для dll. Чтобы экспортировать из динамики у нас есть несколько способов, меня интересуют два, это с помощью .def-файла и __declspec(dllimport|dllimport). Собственно чем они отличаются? И можно или нужно ли их использовать вместе? Заголовок #pragma once #ifdef COMPILING_DLL //добавлен в св-вах проекта для длл #define DLLSPEC __declspec(dllexport) #else #define DLLSPEC __declspec(dllimport) #endif DLLSPEC int GetSum(int, int);Код библиотеки #include "Header.h" DLLSPEC int GetSum(int a, int { return a + b; }Приложение #include <iostream> #include "../DynamicLib/Header.h" //хедер из длл #pragma comment(lib, "DynamicLib.lib") //можно указать в св-вах проекта в Additional Dependencies int main() { std::cout << GetSum(1, 3) << std::endl; system("pause"); return 0; } И таки да, есть возможность добавить reference в св-вах проекта, если это все в одном солюшене. Я так понимаю, он просто добавляет все опции для линкера без нашего шаманства? ТЧ 1.0004. SAP и Trans mod github Поделиться этим сообщением Ссылка на сообщение
Desertir 202 Опубликовано 31 Января 2015 (изменено) Здесь на самом деле терминологическая путаница.Уверен? Я не очень. Статические библотеки - это файлы .hЦитата из статьи http://www.cplusplus.com/forum/articles/10627/ files with header extensions might be ignored by the compiler if you try to compile themСтатическая либа - файл с расширением .lib, хедеры используются в качестве include, т.е. вставляются препроцессором прямо в файл c(pp). Далее можно прочитать, что же делает компилятор. Вкомпилить dll в свой проект - это, в общем, объединение его с exe так, что отдельный dll становится не нужен.Sorry, но это вообще жесть. Я посчитаю, что я этого не читал. PS: похоже я несколько запоздал с ответом... но хорошо, что так все оперативно, @xStream, как всегда, спасибо Изменено 31 Января 2015 пользователем Desertir 3 ТЧ 1.0004. SAP и Trans mod github Поделиться этим сообщением Ссылка на сообщение
Desertir 202 Опубликовано 5 Февраля 2015 (изменено) Делаю Variadic templates (template<class ... Args>). В общем если определение такой функции находится в файле, где она вызывается, все ок. Переношу определение в другой cpp и линкер ломается, говорит "1 unresolved externals". //share.h #pragma once #include <string> template<typename... Args> void test(string name, Args... args); //main.cpp #include "share.h" void main() { test("%s\n", "Success"); system("pause"); } //works fine, go to test.cpp... template<typename... Args> void test(string name, Args... args) { printf(name.c_str(), args...); } //test.cpp #include "share.h" //...and not works template<typename... Args> void test(string name, Args... args) { printf(name.c_str(), args...); } error LNK2019: unresolved external symbol "void __cdecl test<char const *>(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >,char const *)" (??$test@PBD@@YAXV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@PBD@Z) referenced in function _main Я так понимаю, это магия этих пакетизированных типов, как правильно в таком случае написать код? Изменено 5 Февраля 2015 пользователем Desertir ТЧ 1.0004. SAP и Trans mod github Поделиться этим сообщением Ссылка на сообщение
Desertir 202 Опубликовано 29 Марта 2015 (изменено) @Elz, открой файл нотепадом и глянь эту строку. Почему то xml тег побился, или вообще левый появился, у меня такого нет (ни <#text> ни <text>) Изменено 29 Марта 2015 пользователем Desertir ТЧ 1.0004. SAP и Trans mod github Поделиться этим сообщением Ссылка на сообщение
Desertir 202 Опубликовано 11 Апреля 2015 (изменено) @Elz, похоже никто не в теме. Свершилось чудо, а именно релиз мега крутой надстройки ReSharper для С++. Теперь код и на C++ можно "писать" в несколько кликов. Конечно были EAP версии, и я ими пользовался, но тем не менее релиз - долгожданное событие. Изменено 11 Апреля 2015 пользователем Desertir 1 ТЧ 1.0004. SAP и Trans mod github Поделиться этим сообщением Ссылка на сообщение
Desertir 202 Опубликовано 18 Апреля 2015 @Карлан, а чего тут объяснять? Есть ячейка памяти с определенным номером 0x1234DEAD (для x32/x86). Переменная это именованная ячейка 0x1234DEAD + некоторый объем других ячеек, в зависимости от типа переменной. Ссылка это тоже самое, только название переменной другое. Ссылка связана с тем же участком памяти и используется так же, как и обычная переменная. Указатель сам себе переменная, которая хранит цифру. Эта цифра и есть 0x1234DEAD. А вот где и как их применять - отдельный вопрос, объяснить просто будет трудно и будет очень много слов. Проще задавать конкретные вопросы. PS: надеюсь не сказал нигде глупость. ТЧ 1.0004. SAP и Trans mod github Поделиться этим сообщением Ссылка на сообщение
Desertir 202 Опубликовано 18 Апреля 2015 char &addr = s;И как компилятор тебе указатель в ссылку превратит? Разыменовываем и вперед. Я специально не стал упоминать оператор присваивания, там еще надо объяснять, когда будет вызван конструктор копирования, а когда нет. ТЧ 1.0004. SAP и Trans mod github Поделиться этим сообщением Ссылка на сообщение
Desertir 202 Опубликовано 18 Апреля 2015 в каких там int* a или int *a, int& a, int &aЭто из раздела "табы или пробелы". Пиши int * myVeryNiceIntegerPointer Кроме этих мантр тебе никто ничего не скажет, надо просто брать, и писать чтото свое, а потом спрашивать, почему не работает. Или почему работает. 1 ТЧ 1.0004. SAP и Trans mod github Поделиться этим сообщением Ссылка на сообщение
Desertir 202 Опубликовано 18 Апреля 2015 2 Desertir: m1VeЯyKee\/\/11IntigerP001nteЯ - так круче.Речь не об этом. Была. пишу потому-что не работаетТогда не нужно абстрактных вопросов, кидаешь неработающий код, а знающие подскажут. ТЧ 1.0004. SAP и Trans mod github Поделиться этим сообщением Ссылка на сообщение
Desertir 202 Опубликовано 26 Ноября 2017 @WinCap ага, но тут не только это можно задействовать. @AndreySol гуглим printf table c++. Находим ответ на SO про left-justify flag. А еще вот такая штука есть. 1 ТЧ 1.0004. SAP и Trans mod github Поделиться этим сообщением Ссылка на сообщение