- 1
int f(int = 7, int * = nullptr, int (*(*)(double))[3] = nullptr){
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
+24
int f(int = 7, int * = nullptr, int (*(*)(double))[3] = nullptr){
http://ideone.com/BcZ7Ja
+64
balance2N(nodeGet(0), nodeGet(0).getLine(0).getNodeConnectedWith(nodeGet(0)));
class Node {
private ArrayList<Line> children = new ArrayList<Line>();
public Line getLine (int index) {
return children.get(index);
}
}
class Line {
private Node[] parents = new Node[2];
public Node getNodeConnectedWith(Node nodeA) {
if (parents[0] == nodeA) {
return parents[1]; //return node another from this node (node on the other side)
} else { //if parents[1] == nodeA equals !(parents[0] == nodeA)
return parents[0];
}
}
}
Метод balance2N делает что-то с двумя нодами.
+127
Привет!
Сообщество, посмотри C++11 код, а не ошибочно ли выбраны символы для обжатия шаблонных параметров.
<сказка>
Итак, жили-были две функции:
void func0(bool=false); //ok
void func1(bool=8>=8); //ok
И на лексемы разбирались они успешно и без конфликтов.
И был у них друг помошник:
#define F(TYPE,NAME,VALUE)TYPE NAME=VALUE;
F(int,value,0);
#undef F
Лексер и его на лексемы разбирал.
Но пришли злые шаблоногородители и по нагородили шаблонов...
Нагородили шаблонные структуры типа таких:
template<bool>struct a{constexpr a(bool){}};
и переменные типа таких:
a<0> var=0;
map<int,int> m;
А лексер всё стоял и терпел. Он всё успешно на лексемы разбирал.
Но радилась как-то в коде функция типа такой:
void func2(a<0>=8>=8); // fail
И не выдержал лексер:
prog.cpp:4:18: warning: comparisons like ‘X<=Y<=Z’ do not have their mathematical meaning [-Wparentheses]
void func2(a<0>=8>=8); // fail
^
prog.cpp:4:12: error: parse error in template argument list
void func2(a<0>=8>=8); // fail
^
Не понял он что хотят от него.
void func2(a<0> = 8>=8 ); // это?
void func2(a< 0>=8 > =8); // или это?
... да как же вам объяснить?
А давайте я заменю "<" на "{", а ">" на "}".
И не понял лексер, что хотят от него.
void func2(a{0}=8>=8); // это?
void func2(a{0>=8}=8); // или это?
А потом уродилось в коде ещё и это:
#define F(TYPE,NAME,VALUE)TYPE NAME=VALUE;
F(a<0>,var,0); //ok
#undef F
Но лексер терпел.
Терпел, да не выдержал.
#define F(TYPE,NAME)TYPE NAME;
F(map<int,int>,m); //fail
#undef F
Решил он забить на дело гиблое:
prog.cpp:7:17: error: macro "F" passed 3 arguments, but takes just 2
F(map<int,int>,m); //fail
^
И ужёл он к другим стандартописателям.
</сказка>
tags: черновик, сказка, С++11, шаблоны, макросы, лексер
Символы для обжатия параметров шаблонов выбраны ошибочно?
+158
empty ( $php->p['h']{'p'}{'p'}['h']->p );
+154
function login()
{
$.ajax({
type:'post',
url:'index.php/main/login',
data:{x:1},
success:function(data){
$("body").html(data);
}
});
}
Функция из single page приложения
+15
#define TEST_MODE ON
...
#ifdef TEST_MODE
# include "fake_singelton.h"
#else
# include "work_singelton.h"
#endif
оттуда
+20
Ini ini(m_serviceProvider);
if( ini.load( gameInputStream ) == false )
{
LOGGER_ERROR(m_serviceProvider)("StartupConfigLoader::loadGame_ Invalid load game settings '%s'"
, _gameIniPath.c_str()
);
return false;
}
IniUtil::getIniValue( ini, "Project", "Name", _settings.projectName, m_serviceProvider );
IniUtil::getIniValue( ini, "Project", "Company", _settings.companyName, m_serviceProvider );
IniUtil::getIniValue( ini, "Project", "Codename", _settings.applicationSettings.projectCodename, m_serviceProvider );
IniUtil::getIniValue( ini, "Project", "Version", _settings.applicationSettings.projectVersion, m_serviceProvider );
IniUtil::getIniValue( ini, "Locale", "Default", _settings.defaultLocale, m_serviceProvider );
IniUtil::getIniValue( ini, "Game", "ContentResolution", _settings.applicationSettings.contentResolution, m_serviceProvider );
IniUtil::getIniValue( ini, "Game", "FixedContentResolution", _settings.applicationSettings.fixedContentResolution, m_serviceProvider );
IniUtil::getIniValue( ini, "Game", "PersonalityModule", _settings.personalityModule, m_serviceProvider );
IniUtil::getIniValue( ini, "Game", "AlreadyRunning", _settings.alreadyRunning, m_serviceProvider );
IniUtil::getIniValue( ini, "Game", "WindowModeCheck", _settings.applicationSettings.windowModeCheck, m_serviceProvider );
IniUtil::getIniValue( ini, "Window", "Size", _settings.applicationSettings.windowResolution, m_serviceProvider );
IniUtil::getIniValue( ini, "Window", "Bits", _settings.applicationSettings.bits, m_serviceProvider );
IniUtil::getIniValue( ini, "Window", "Fullscreen", _settings.applicationSettings.fullscreen, m_serviceProvider );
IniUtil::getIniValue( ini, "Window", "MaxFPS", _settings.maxfps, m_serviceProvider );
IniUtil::getIniValue( ini, "Window", "VSync", _settings.applicationSettings.vsync, m_serviceProvider );
Это оттуда уже другой. Они все сговорились что-ли? Ынтерпрайз головного мозга.
PS: boost::property_map не осилил.
+161
if ($pathRelative && $relativePath) {
Взято из либы Google DFP
+4
struct ServiceProvider1
{
ServiceProvider1(Service2& service1, Service3& service2, Service3& service3, Service4& service4, Service5& service5):
service1(service1),
service2(service2),
service3(service3),
service4(service4),
service5(service5),
{}
fun<Service1> service1;//fun - функциональный объект (operator() перегружен), хранящий ссылку на сервис, чтобы не писать кроме членов ещё и две функции - константную и не константную.
fun<Service2> service2;
fun<Service3> service3;
fun<Service4> service4;
fun<Service5> service5;
};
class Service1
{
public:
template<class ServiceProvider>
Service1(ServiceProvider serviceProvider):
service2(serviceProvider.service2()),//Ссылки на сервисы получаем.
service3(serviceProvider.service3()),
myMember1(serviceProvider),//эти мемберы сами внутри воспользуются провайдерами зависимостей
myMember2(serviceProvider),
myMember3(),
myMember4(myServiceProviderGeter<ServiceProvider>()),//Этому мембору понадобились новые зависимости, часть тех, что хранятся в ServiceProvider, а часть новых среди членов Service1.
myMember5(myServiceProviderGeter<ServiceProvider>())
myMember6(myServiceProviderGeter<ServiceProvider>())
{}
...
private:
template<class BaseServiceProvider>
struct MyServiceProvider: BaseServiceProvider
{
MyServiceProvider(BaseServiceProvider baseServiceProvider, Service6& service6, Service7& service7):
BaseServiceProvider(baseServiceProvider),
service6(service6),
service7(service7)
{}
fun<Service6> service6;
fun<Service7> service7;
};
template<class BaseServiceProvider> MyServiceProvider<BaseServiceProvider> myServiceProviderGeter(BaseServiceProvider baseServiceProvider) const
{
return MyServiceProvider<BaseServiceProvider>(baseServiceProvider, this->myMember2, this->myMember3);
}
};
...
ServiceProvider1 sp(...);
Servive1 service1(sp);
Service8 service8(sp);
Service9 service9(sp);
...
оттуда
−94
def f(l = []):
l.append(len(l))
return l
f()
f()
print f()
Есть мнения что выведет?
http://ideone.com/Q6Oc2I