dimanche 30 mars 2014

Overload à la joie

Bug bête, et qui traine en production depuis 1 mois!

De quoi s'agit-t-il? D'un bon vieux problème de surcharge. Simplifié à l’extrême, cela revient à ça:

#include <iostream>
#include <string>

void f(bool b)
{
  std::cout << "Boolean : " << b << std::endl;
}

void f(const std::string & str)
{
  std::cout << "String : " << str << std::endl;
}

int main()
{
  f("abc");
  return 0;
}

Parce que la conversion d'un type de base vers un autre type de base est prioritaire sur la conversion d'un type de base vers un objet via son constructeur, le compilo transforme notre char * en bool, et pas en std::string. Et c'est le drame.

vendredi 7 mars 2014

Portal 2 sous Linux

Et au suivant! Portal 2 est enfin disponible sous Linux, en version Beta. Si vous le voyez dans votre Steam, n'oubliez pas de faire un clic droit et de sélectionner "Properties" => "Betas" => pour vous ajouter à la beta. En plus des fichiers de données, Steam télécharge alors le binaire Linux. Et ça marche! Pour une béta, la qualité est tout à fait là. Sur ma machine, pourtant pas toute jeune et avec les drivers AMD libres, je fais tourner la bête avec tous les paramètres vidéo à fond, c'est beau et fluide.

I'm in space! Spaaaace!

Maintenant, le prochain que je veux voir sous Linux, c'est Skyrim!