«implicit-conversion» etiketlenmiş sorular

Bir tür kısıtlamasını yerine getirmek için bir nesneyi, değişkeni veya değeri bir türden diğerine dönüştürmek, özellikle bu dönüşümü dil sözdizimi aracılığıyla talep etmeden.

2
Scala nerelerde etkilerini arar?
Bir örtülü Scala için yeni gelenler için soru gibi görünüyor: nereye implicits için derleyici bakmak yapar? Örtük demek istiyorum, çünkü soru hiçbir zaman tam olarak oluşmuş gibi görünmüyor, sanki bunun için kelimeler yokmuş gibi. :-) Örneğin, integralaşağıdaki değerler nereden geliyor? scala> import scala.math._ import scala.math._ scala> def foo[T](t: T)(implicit integral: …

4
Objective-C örtük dönüştürme 'NSUInteger' ('imzasız uzun') tamsayı hassasiyetini 'int' uyarısına kaybeder
Bazı alıştırmalar üzerinde çalışıyorum ve şunları belirten bir uyarı var: Örtük dönüşüm tamsayı hassasiyetini kaybeder: 'NSUInteger' (aka 'unsigned long') '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 = myColors.count; // <<< …


7
Neden 1'i kısa olarak geçebiliyorum ama int değişkeni i'yi geçemiyorum?
Neden birinci ve ikinci Yazma çalışıyor ama sonuncusu çalışmıyor? Bunların 3'üne de izin verip 1 mi, (int) 1 mi yoksa ben mi geçtiğimi tespit etmenin bir yolu var mı? Ve gerçekten neden sonuncusuna izin verilir? İkincisine izin verilir ama sonuncusu gerçekten aklımı başımdan alır. Derleme hatasını gösterme demosu using System; …


5
"İs_base_of" nasıl çalışır?
Aşağıdaki kod nasıl çalışır? 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'ın kabul etmesini engelleyin
Bin kelimeye bedel: #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
Örtülü dönüştürme ve tür sınıfı
Scala'da, mevcut veya yeni tipleri güçlendirmek için en az iki yöntem kullanabiliriz. Diyelim ki bir şeyin bir Int. Aşağıdaki özelliği tanımlayabiliriz. Örtük dönüştürme trait Quantifiable{ def quantify: Int } Ve sonra ör. Dizeler ve Listeler'i ölçmek için örtük dönüştürmeleri kullanabiliriz. implicit def string2quant(s: String) = new Quantifiable{ def quantify = …


10
Neden printf (“% f”, 0); tanımsız davranışlar mı veriyor?
İfade printf("%f\n",0.0f); 0 yazdırır. Ancak ifade printf("%f\n",0); rastgele değerler yazdırır. Bir tür tanımlanmamış davranış sergilediğimin farkındayım, ancak nedenini tam olarak anlayamıyorum. Tüm bitlerin 0 olduğu bir kayan nokta değeri, hala 0 floatdeğeriyle geçerlidir floatve intmakinemde aynı boyuttadır (bu bile alakalıysa). Neden printfbu davranışa neden olarak kayan noktalı değişmez değer yerine …

4
İade sırasında örtük dönüştürmeye izin verilmiyor
#include <optional> bool f() { std::optional<int> opt; return opt; } Derlemez: 'return': cannot convert from 'std::optional<int>' to 'bool' Referansa danışmak Bir açıklama bulmayı düşünürdüm, ama olması gerektiği gibi okudum. Örtük dönüşümler, T1 türünde bir ifade, bu türü kabul etmeyen, ancak başka bir T2 türünü kabul eden bağlamda kullanıldığında gerçekleştirilir; özellikle: …


2
Dönüş türünü açıkça belirtmesine rağmen lambda'ya çağrı belirsiz
Aşırı yüklenmiş bir fonksiyon, lambda türünün karar verilebilir olması durumunda std::function( her ikisini de almalı (bir yanıltıcı olursam lütfen beni düzeltin)) Her iki işlevi de almalıdır . tanımlandı? ( [&]() -> Type {}) Mevcut çözümüm için referans yakalamaya ihtiyacım olduğunu, kodun bunun için mantığı içerdiğini lütfen unutmayın. Aşağıdaki örnekte sorun …

3
Bir vektör öğesi olarak 0 tamsayısından işaretçiye örtük dönüşümlerden nasıl kaçınılır
JSON'da bir anahtar yolunun tüm düğüm adlarını toplamak istediğim bir durum var. "0" dizi indeksinin durumuna da izin verilsin, ancak alıntıları unutmak kolaydır, bu da dereference olduğunda çökmeye neden olur. Bu yüzden bunu reddetmek istiyorum. Misal: #include <vector> #include <iostream> int func(const std::vector<const char*>& pin) { return pin.size(); } int …
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.