Запитання з тегом «implicit-conversion»

Перетворення об’єкта, змінної чи значення з одного типу на інший, щоб задовольнити обмеження типу, без спеціального запиту на це перетворення за допомогою синтаксису мови.

2
Де Скала шукає наслідки?
Неявний питання новачків в Scala , здається: де ж компілятор шукає implicits? Я маю на увазі неявне, тому що питання ніколи не стає повністю сформованим, ніби не було для нього слів. :-) Наприклад, звідки integralберуться значення нижче? scala> import scala.math._ import scala.math._ scala> def foo[T](t: T)(implicit integral: Integral[T]) {println(integral)} foo: …

4
Неявна неявна конверсія Objective-C втрачає цілісну точність 'NSUInteger' (він же 'непідписаний довгий') до попередження 'int'
Я працюю над деякими вправами і отримую попередження, яке говорить: Неявне перетворення втрачає цілісну точність: 'NSUInteger' (він же 'довгий без підпису') до 'int' #import <Foundation/Foundation.h> int main (int argc, const char * argv[]) { @autoreleasepool { NSArray *myColors; int i; int count; myColors = @[@"Red", @"Green", @"Blue", @"Yellow"]; count = …


7
Чому я можу пропустити 1 як коротку, але не змінну int i?
Чому перший і другий записи працюють, але не останній? Чи є спосіб я дозволити всі 3 з них і виявити, чи було це 1, (int) 1 чи я пройшов? І справді, чому дозволено одне, але останнє? Друге дозволене, але не останнє насправді роздуває мою думку. Демонстрація, щоб показати помилку компіляції …


5
Як працює `is_base_of`?
Як працює наступний код? typedef char (&yes)[1]; typedef char (&no)[2]; template <typename B, typename D> struct Host { operator B*() const; operator D*(); }; template <typename B, typename D> struct is_base_of { template <typename T> static yes check(D*, T); static no check(B*, int); static const bool value = sizeof(check(Host<B,D>(), int())) …

2
Запобігання прийому функції const std :: string & від прийняття 0
Варто тисячі слів: #include<string> #include<iostream> class SayWhat { public: SayWhat& operator[](const std::string& s) { std::cout<<"here\n"; // To make sure we fail on function entry std::cout<<s<<"\n"; return *this; } }; int main() { SayWhat ohNo; // ohNo[1]; // Does not compile. Logic prevails. ohNo[0]; // you didn't! this compiles. return 0; …

3
Неявна конверсія проти класу типу
У Scala ми можемо використовувати принаймні два методи для модернізації існуючих або нових типів. Припустимо, ми хочемо висловити, що щось можна кількісно визначити за допомогою Int. Ми можемо визначити наступну рису. Неявне перетворення trait Quantifiable{ def quantify: Int } І тоді ми можемо використовувати неявні перетворення для кількісної оцінки, наприклад, …


10
Чому printf (“% f”, 0); дати невизначену поведінку?
Заява printf("%f\n",0.0f); відбитки 0. Однак заява printf("%f\n",0); друкує випадкові значення. Я усвідомлюю, що демонструю якусь невизначену поведінку, але не можу зрозуміти, чому саме. Значення з плаваючою комою, в якому всі біти дорівнюють 0, все ще є дійсним floatзі значенням 0. floatІ intмають однаковий розмір на моїй машині (якщо це навіть …

3
Як я можу зв’язати наслідки в Scala?
Шаблон pimp-my-library дозволяє мені, здавалося б, додати метод до класу, роблячи доступним неявне перетворення з цього класу в той, який реалізує метод. Однак Scala не дозволяє проводити два таких неявних перетворення, тому я не можу Aперейти від Cвикористання неявного Aдо Bі іншого неявного Bдо C. Чи є спосіб обійти це …

4
Неявне перетворення заборонено при поверненні
#include <optional> bool f() { std::optional<int> opt; return opt; } Не компілюється: 'return': cannot convert from 'std::optional<int>' to 'bool' Посилання на консультації, я б подумав знайти пояснення, але я прочитав це як слід. Неявні перетворення виконуються щоразу, коли вираз якогось типу T1 використовується в контексті, який не приймає цей тип, …


2
Виклик лямбда неоднозначний, незважаючи на те, що прямо вказано тип повернення
Перевантажена функція повинна приймати обох функторів, враховуючи тип лямбда, який можна вирішити (можна видалити до std::function(будь-ласка, виправте мене, якщо я помиляюся). Питання: Чому внизу є помилка компіляції, незважаючи на те, що тип лямбда явно виражений визначено? ( [&]() -> Type {}) Зауважте, що для мого поточного рішення мені потрібна система …

3
Як уникнути неявних перетворень від цілого числа 0 до вказівника, як елемента вектора
Існує ситуація, коли я хочу зібрати всі назви вузлів шляху до ключа в JSON. Розглянемо умову індексу масиву "0", "1" також дозволено, але легко забути лапки, що призвело б до краху при відхиленні. Тому я хочу відкинути це. Приклад: #include <vector> #include <iostream> int func(const std::vector<const char*>& pin) { return …
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.