![]() |
![]() ![]() ![]() ![]() ![]() |
![]() |
Use in template codeBoost , Math Toolkit 2.5.0 , Tutorial
|
![]() |
Tip |
---|---|
Имейте в виду разницу между вариабельной версией, только< |
![]() |
Note |
---|---|
Вы всегда можете использоватькаквариабельную, так и шаблонно-функциональные версиипри условии, что вызовы полностью квалифицированы, например: double my_pi1 = boost::math::constants::pi<double>(); double my_pi2 = boost::math::double_constants::pi; |
![]() |
Warning |
---|---|
Может возникнуть соблазн просто определить using namespace boost::math::double_constants; using namespace boost::math::constants; Но если вы определите два пространства имен, это, конечно, создаст двусмысленность! double my_pi = pi(); // error C2872: 'pi' : ambiguous symbol double my_pi2 = pi; // Context does not allow for disambiguation of overloaded function Хотя ошибка выше довольно очевидна, сделать это случайно или, что еще хуже, создать ее в чужом коде тоже не слишком сложно. Поэтому разумно избежать этого риска, локализовав область применения таких определений, как показано выше. |
![]() |
Tip |
---|---|
Будьте очень осторожны с типом, предоставленным в качестве параметра. Например, предоставление целого числавместо типа с плавающей точкой может быть катастрофическим (функция C++). cout << "Area = " << area(2) << endl; // Area = 12!!! Вы должны получить предупреждение компилятора warning : 'return' : conversion from 'double' to 'int', possible loss of data Несоблюдение этого предупреждения может привести к очень неправильным ответам! Вы также можете избежать этого, будучи откровенным о типе< cout << "Area = " << area<double>(2) << endl; // Area = 12.566371 |
Статья Use in template code раздела Math Toolkit 2.5.0 Tutorial может быть полезна для разработчиков на c++ и boost.
Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.
реклама |