Platform::String from cxx to std::string and const char

Tag

, ,

Recently I do a lot of Cxx code for Windows Store App. At first I would avoid Cxx as much as I can, but at some point (especially when accessing windows API) I must use it.

Cxx has Platform::String but I’m not sure what is the main different with std::string, you can check it here. You can easily make get value from Platform::String for your std::string , here it is

Platform::String ^myPatString = "Hurrah";
std::string myStdString(myPatString->Begin(),myPatString->End());  // Platform::String to std::string
const char* myCharString = myStdString->c_str(); // std::string to const char

Easy peasy

Saat matahari bersinar esok, hiduplah

“Nina bobo o nina bobo.” Ibu bernyanyi lirih sambil menepuk-nepuk lembut buah hatinya.
“Tidurlah Nina, jangan khawatirkan gelap malam ataupun mimpi kelam, karena Ibu tahu sejak mendengar tangismu untuk pertama kali bahwa kamu tak akan menyerah pada waktu, tak akan tersesat pada keputus asaan ataupun takluk pada bayangan masa suram.
Karena Ibu tahu kamu selalu tumbuh setiap hari, semakin mampu melihat betapa kuatnya kekuatan cinta, betapa terangnya senyuman mampu menyinari dunia, dan uluran tangan dapat menyentuh hati yang sedingin kaca.
Karena semua telah tertulis dengan rapi, janganlah takut untuk membagi sinarmu.
Aku mencintaimu anakku”

Explicit keyword in C++

Ever wonder what is the meaning of explicit keyword in C++? I found good explanation from StackOverflow.

 

 

In C++, the compiler is allowed to make one implicit conversion to resolve the parameters to a function. What this means is that the compiler can use single parameter constructors to convert from one type to another in order to get the right type for a parameter. Here’s an example class with a constructor that can be used for implicit conversions:

class Foo
{
public:
  // single parameter constructor, can be used as an implicit conversion
  Foo (int foo) : m_foo (foo) 
  {
  }

  int GetFoo () { return m_foo; }

private:
  int m_foo;
};

Here’s a simple function that takes a Foo object:

void DoBar (Foo foo)
{
  int i = foo.GetFoo ();
}

and here’s where the DoBar function is called.

int main ()
{
  DoBar (42);
}

The parameter is not a Foo object, but an int. However, there exists a constructor for Foo that takes an int so this constructor can be used to convert the parameter to the correct type.

The compiler is allowed to do this once for each parameter.

Prefixing the explicit keyword to the constructor prevents the compiler from using that constructor for implicit conversions. Adding it to the above class will create a compiler error at the function call DoBar (42). It is now necessary to call for conversion explicitly with DoBar (Foo (42))

The reason you might want to do this is to avoid accidental construction that can hide bugs. Contrived example:

  • You have a MyString(int size) class with a constructor that constructs a string of the given size. You have a function print(const MyString&), and you call it with print(3). You expect it to print “3”, but it prints an empty string of length 3 instead.

Kepulangan ketiga

Kepulangan ke-tigaku bukan seperti kepulangan Ke-limamu
Bukan berarti telah tiga tahun perantauanku di ranah para raja
Kepulangan ke-tigaku tidak penuh perenungan kenangan masa lalu
Tidak ada kenangan senja yang sengaja kucerna saat ini

Tidak seperti kepulangan ke-limamu yang penuh kenangan
Kepulangan ke-tigaku tidak membicarakan pernikahan, kisah cinta atau putus harapan
Tidak pula perlu kujelaskan bagaimana jalanan suram atau tempat-tempat penuh romansa masa lalu

Kampungku indah dan kubuat indah
Tak ada kisah cinta yang suram di sini, tak ada memori pahit di tanah ini

Mulai dari munculnya matahari dari sudut langit timur
Hingga wangi rumput yang baru dipotong, kesan manis kotoran sapi ataupun ranting segar yang terbakar
Teriakan Ibu pada anaknya yang tak segera mandi
Sampai terasa hangat matahari pagi begitu masuk pagar rumah

Semua tentang hari ini, masa kini dan senyum orang-orang yang penuh kasih
Besok pagi mentari akan menyapa lagi

21:28 18/08/2014
Terinspirasi puisi Kepulangan Kelima Irwan Bajang dari Album Kepulangan Kelima

Ikuti

Get every new post delivered to your Inbox.

Bergabunglah dengan 1.359 pengikut lainnya.